Omniverse Development for Self-Hosted Deployments#
This guide provides developers with a structured path for creating, deploying, and integrating Cloud Functions using NVCF.
Overview#
Developing Omniverse applications for NVCF involves three main areas:
Kit Development: Build Omniverse Kit applications configured for NVCF streaming and Cloud Function deployment.
Cloud Function Deployment: Containerize your applications, create Cloud Functions, and deploy them to NVCF clusters.
Web Client Development: Create client applications that invoke Cloud Functions and handle streaming connections.
Preparing Your Kit Application#
Follow these steps to prepare an Omniverse Kit application for NVCF:
1. Build Your Kit Application#
Configure your Kit application for NVCF streaming:
Configure and build your Kit app from template
Include the NVCF streaming application layer
Test locally before containerization
See Developing and Containerizing Apps for detailed instructions on developing Kit applications.
2. Containerize Your Application#
Package your Kit application as a container:
Create a Dockerfile based on the Kit App Template
Include all required dependencies and extensions
Configure the container entry point for NVCF
See Developing and Containerizing Apps for containerization best practices.
3. Push to Registry#
Upload your container to the appropriate registry:
Push to NGC Container Registry
Push to Amazon ECR
Push to Azure ACR
See Deploying Kit Apps for registry configuration.
Creating and Deploying Cloud Functions#
1. Obtain Credentials#
Before creating Cloud Functions, gather the required credentials:
Cluster Information: Know which control plane and cluster to target
NVCF CLI Admin Token: Allows the CLI to authenticate with your NVCF cluster
NVCF API Key: For authentication with the NVCF control plane
For self-hosted deployments, contact your Platform Engineering team for cluster details.
2. Create a Cloud Function#
Register your containerized application as a Cloud Function with a function definition file.
3. Deploy the Cloud Function#
Deploy your function to a target cluster with a deployment specification file.
4. Invoke the Cloud Function#
Cloud Functions support multiple invocation methods:
HTTP Polling: Send requests and poll for results
HTTP Streaming: Receive streamed responses
gRPC: Use bidirectional streaming for real-time applications
See Deploying Kit Apps for basic steps to create and deploy a container-based streaming function, using NVCF CLI.
Web Client Development#
Create client applications that connect to your NVCF-deployed Kit applications.
Using the Web Streaming Library#
The Omniverse Web Streaming Library provides WebRTC connectivity for Omniverse Streaming:
Establish streaming connections to Cloud Functions
Handle video and audio streams
Send user input to the Kit application
See Web Streaming Client to create a web-streaming client and intermediary proxy, including containerization for cloud deployment.
Working with the Intermediary Proxy#
The intermediary proxy handles client authentication and function invocation:
Purpose
Authenticates client requests against your Identity Provider (IdP)
Manages NVCF credentials for function invocation
Routes requests to the appropriate Cloud Function
Integration Points
Configure IdP integration for client authentication
Store NVCF credentials securely
Specify target function IDs for request routing
Note
Platform Engineers typically deploy the intermediary proxy. Coordinate with your infrastructure team for endpoint URLs and authentication requirements.
Developer Troubleshooting#
Common Issues#
Container fails to start
Verify the container runs locally with
docker runCheck that all dependencies are included in the image
Review container logs for missing libraries or configuration
Function deployment fails
Confirm you have the correct cluster permissions
Verify the container image is accessible from the cluster
Check that GPU resources are available
Check the NVCF API key is valid
Streaming connection fails
Ensure LLS (Low Latency Streaming) is deployed on the cluster
Verify network connectivity to the streaming endpoints
Check WebRTC configuration in your client application
Client cannot connect
Confirm the intermediary proxy is running and accessible
Verify authentication credentials are correct
Check that the target function is deployed and active
Debugging Tips#
Check function status: Use the NVCF CLI or API to verify your function is active
Review logs: Access container logs through the NVCF CLI
Test locally first: Always verify your Kit application runs correctly in a local container
Validate credentials: Ensure your NVCF API key has the required permissions
Development Workflow Summary#
Phase |
Activity |
Documentation |
|---|---|---|
Development |
Build Kit application with NVCF application layer |
|
Packaging |
Containerize the application |
|
Deployment |
Push container and create Cloud Function |
|
Integration |
Build web client with streaming |
|
Testing |
Validate end-to-end functionality |
See Troubleshooting above |
Quick Links#
Kit Development
Developing for Omniverse Streaming on NVCF - Complete Kit development guide
Developing and Containerizing Apps - Containerizing Kit applications
Deploying Kit Apps - Deploying to NVCF
Web Development
Web Streaming Client - Web client sample project
Reference
NVCF CLI - NVCF command-line interface
Troubleshooting / FAQ - Troubleshooting guide
Next Steps#
Start with Developing and Containerizing Apps to prepare your Kit application
Review Web Streaming Client for web client examples
Coordinate with your Platform team using Self-Hosted Cluster Deployment and Operations