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#

  1. Create a new file called application-profile.yaml.

  2. Set the ApiVersion and Kind as 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: '0.2.0'
    25      sessionId: session_id
    26      name: kit-app
    27      resources:
    28        requests:
    29          nvidia.com/gpu: "1"
    30        limits:
    31          cpu: "3"
    32          memory: "20Gi"
    33          nvidia.com/gpu: "1"
    34      env:
    35        - name: USD_PATH
    36          value: "/app/data/Forklift_A/Forklift_A01_PR_V_NVD_01.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 Application and ApplicationVersion this 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 ApplicationProfile is configurable and the example shown above highlights a few common types of configuration options.

    spec.chartMappings:

    Defines mapping between spec.chartValues settings and the Helm chart values they should override.

    spec.chartValues:

    The values to apply to the helm chart that will be installed.

  3. Install the application profile using kubectl:

    kubectl apply -f application-profile.yaml -n omni-streaming
    
  4. List the created application profile:

    kubectl describe applicationprofiles.omniverse.nvidia.com nlb -n omni-streaming
    
  5. List using the APS endpoint:

    curl http://{ingress url of the AP service}/cfg/apps/usd-viewer/versions/0.2.0/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 YAML files you can use for reference.