API Gateway (Ingress)#
Introduction#

Ingress is the API Gateway to all Jetson Platform Services APIs. It acts as a reverse proxy, where are incoming API requests pass through it, which it then forwards to the appropriate microservice based on path prefix.
The endpoint is unprotected and unencrypted because it is mostly used internally (within the corporate network). Each request to a specific service should be prefix with the service name(/vst/ /emdx/ /grafana/ …). The default port is 30080.
Here is a sample request to VST through Ingress. curl localhost:30080/vst/api/device/list
Configuration#
To expose a service to the outside through ingress, create an ingress configuration file as follow.
my-svc-nginx.conf
location /genai/ {
rewrite ^/genai/?(.*)$ /$1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log /var/log/nginx/access.log timed_combined;
proxy_pass http://localhost:5010;
}
In the example file, we expose an app thorugh ingress with genai prefix. our app is running on port 5010 internaly. Make sure no other services is listening on the same port you choose. This config file(my-svc-nginx.conf) should be copied at /opt/nvidia/jetson/services/ingress/config/. The next step is to restart ingress as follow:
sudo systemctl restart jetson-ingress
Start and Stop Service#
sudo systemctl start jetson-ingress
sudo systemctl stop jetson-ingress
sudo systemctl restart jetson-ingress