Creating an Application Profile#
We now need to create an application-profile.yaml file to define how our Omniverse Kit App is deployed and managed. This file specifies important configuration details such as resource limits, container image overrides, load balancer configuration, authentication, etc., ensuring the application is properly set up for streaming.
Creating an application profile#
- Create a new file called - application-profile.yaml.
- Set the - ApiVersionand- Kindas indicated below:- Sample profile, with updated resource and env settings.#- 1apiVersion: omniverse.nvidia.com/v1 2kind: ApplicationProfile 3metadata: 4 name: default 5spec: 6 name: Default profile 7 description: Updated memory and CPU settings. 8 supportedApplications: 9 - name: "usd-viewer" 10 versions: 11 - "*" 12 chartMappings: 13 container: streamingKit.image.repository 14 container_version: streamingKit.image.tag 15 name: streamingKit.name 16 chartValues: 17 global: 18 imagePullSecrets: 19 - name: regcred 20 streamingKit: 21 image: 22 repository: nvcr.io/nvidia/omniverse/usd-viewer 23 pullPolicy: Always 24 tag: '107.3.2' 25 sessionId: session_id 26 name: kit-app 27 service: 28 type: "LoadBalancer" 29 resources: 30 limits: 31 cpu: "8" 32 memory: "30Gi" 33 nvidia.com/gpu: "1" 34 requests: 35 nvidia.com/gpu: "1" 36 env: 37 - name: USD_PATH 38 value: "'${omni.usd_viewer.samples}/samples_data/stage01.usd'" - Specify the ID, name and description of the - ApplicationProfile:- metadata.name:
- The ID of the profile 
- spec.name:
- A human-readable name for the profile 
- spec.description:
- A description for the profile 
 - Indicate which - Applicationand- ApplicationVersionthis profile applies to:- spec.supportedApplications:
- A list of name(s) and version(s) for which this profile can be used. - The name(s) must match the application id. 
- The versions are a list of supported versions that can be used with this profile. 
- Wildcards are supported at various levels in the version. 
 
 - The - ApplicationProfileis configurable and the example shown above highlights a few common types of configuration options.- spec.chartMappings:
- Defines mapping between - spec.chartValuessettings and the Helm chart values they should override.
- spec.chartValues:
- The values to apply to the helm chart that will be installed. 
 
- Install the application profile using kubectl: - kubectl apply -f application-profile.yaml -n omni-streaming 
- List the created application profile: - kubectl describe applicationprofiles.omniverse.nvidia.com nlb -n omni-streaming 
- List using the APS endpoint: - curl http://{ingress url of the AP service}/cfg/apps/usd-viewer/versions/107.3.2/profiles 
Additional information#
- Application Profiles
- This configuration guide contains information about some of the common sections you might want to configure in an - ApplicationProfile.
- Omniverse Kit App Streaming - Samples and Resources
- This resource contains various example - ApplicationProfile- YAMLfiles you can use for reference.
