Platform Verification#

After a successful installation, you can list and check various Kubernetes resources.

The following pods should be visible in the omni-streaming namespace:

  • Application & Profile Manager

  • memcached

  • Resource Management Control Plane

  • Streaming Session Manager

  • Streaming AWS NLB Manager (for AWS deployments only)

The examples use omni-streaming; substitute your namespace throughout. Confirm the Streaming Manager is scoped to it: the session_namespace Helm value (rendered as nv.svc.streaming.session.namespace in the streaming ConfigMap) must match the namespace where session pods run. Deployments in a namespace other than omni-streaming require release 1.12.1 or later.

To view the namespace, run the following command:

kubectl get pods -n omni-streaming

This should display the following output:

NAME                          READY   STATUS   RESTARTS   AGE
applications-7c7bf6d74b-q5hvq  2/2    Running     0       2m38s
memcached-service-r3-0         1/1    Running     0       55m
rmcp-c77f5f65-pw87c            1/1    Running     0       45m
streaming-749986b679-nkrmt     1/1    Running     0       5m2s
nlb-8124745472-abldo           1/1    Running     0       2m25s

The following ingress objects should be visible in the omni-streaming namespace:

$ kubectl get ingress -n omni-streaming
NAME         CLASS    HOSTS ADDRESS                                        PORTS
applications <none> * k8s-omnistre-applicat-...eu-west-1.elb.amazonaws.com   80
streaming    <none> * k8s-omnistre-streamin-1.eu-west-1.elb.amazonaws.com    80

The following API documentation endpoints /docs should be accessible using the ingress URL for both services, for example:

http://<application-endpoint-url>/docs
http://<streaming-endpoint-url>/docs

Verifying Flux#

Streaming sessions are created as Flux HelmRelease resources, so the Flux controllers must be healthy and the Helm repository ready:

kubectl get pods -n flux-operators
kubectl get helmrepositories -n omni-streaming

The HelmRepository (ngc-omniverse) must report READY=True; if it does not, sessions cannot be created.

Verifying a Streaming Session#

Each streaming session is a Flux HelmRelease; list them with:

kubectl get helmrelease -n omni-streaming

The session pod runs two containers (an Envoy signaling proxy and the Kit application), so logs must be requested by container name. The Kit container is named <streamingKit.name>-<session-id> (kit-app-<session-id> with the shipped profiles); list the names with:

kubectl get pod <session-pod> -n omni-streaming -o jsonpath="{.spec.containers[*].name}"
kubectl logs <session-pod> -n omni-streaming -c kit-app-<session-id>
kubectl logs <session-pod> -n omni-streaming -c envoy-sidecar

If a HelmRelease exists but no pod is scheduled, check the Flux helm-controller and source-controller logs in the flux-operators namespace and the HelmRepository status.