Appendix - Sim2Deploy Azure Cloud Quickstart
Deployment Config File Samples
config.yml
# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-NvidiaProprietary # # NVIDIA CORPORATION, its affiliates and licensors retain all intellectual # property and proprietary rights in and to this material, related # documentation and any modifications thereto. Any use, reproduction, # disclosure or distribution of this material and related documentation # without an express license agreement from NVIDIA CORPORATION or # its affiliates is strictly prohibited. name: 'my-deployment-name' spec: infra: csp: 'azure' backend: tenant_id: '########' subscription_id: '########' client_id: '########' client_secret: '########' resource_group_name: '########' storage_account_name: '########' container_name: '########' provider: tenant_id: '########' subscription_id: '########' client_id: '########' client_secret: '########' configs: access_cidrs: - 'my-org-ip-cidr' location: 'West US 2' coturn_settings: password: '########' ## Password for Turn Server isaacsim: create_isaac: true ###Set to false if isaacsim is not required size: 'Standard_NV72ads_A10_v5' clusters: app: private_instance: true master: size: 'Standard_NC96ads_A100_v4' labels: {} taints: [] nodes: {} ports: app: port: 31080 path: /api/v2.1/analytics/livez grafana: port: 32300 path: login prometheus: port: 30090 path: graph kibana: port: 31560 path: /api/status features: cns: true platform: true app: true secrets: ssh_public_key: 'ssh-rsa PUBLIC KEY BITS comment' ssh_private_key: |- -----BEGIN RSA PRIVATE KEY----- PEM KEY BITS -----END RSA PRIVATE KEY----- platform: configs: grafana_port: 'grafana' prometheus_port: 'prometheus' secrets: ngc_cli_api_key: 'my-ngc-key' app: configs: app_port: 'app' ### Values files for app chart(supported values are based on k8s-values shipped MTMC, RTLS, MTMC-RTLS-SDG, people-analytics). helm_values_dir: source_directory: "{{ playbook_dir }}/k8s-helm-values/MTMC-RTLS-SDG" ### IsaacSim Configs isaacsim_configs: isaac_image: 'nvcr.io/nvidia/isaac-sim:4.0.0' secrets: ngc_cli_api_key: 'my-ngc-key' ### App Configs for helm deployment helm_configs: ### Helm Chart NGC URLs for deploying different app charts app_chart_url: https://helm.ngc.nvidia.com/nfgnkvuikvjm/mdx-v2-0 nvstreamer_app_chart_url: https://helm.ngc.nvidia.com/rxczgrvsg8nx/vst-1-0 vst_app_chart_url: https://helm.ngc.nvidia.com/rxczgrvsg8nx/vst-1-0 wdm_ds_app_chart_url: https://helm.ngc.nvidia.com/nfgnkvuikvjm/mdx-v2-0 ###App helm chart versions for deploying different app charts app_chart_version: 1.0.37 nvstreamer_app_chart_version: 0.2.32 vst_app_chart_version: 1.0.30 wdm_ds_app_chart_version: 0.0.33 ### Chart Ref can be any app chart ref name(eg: mdx-people-analytics or mdx-rtls-app) for deploying different app charts app_chart_ref: nv-mdx/mdx-mtmc-app ### Deploy name can be any app name(eg: mdx-people-analytics or mdx-rtls-app) for deploying different app charts app_deploy_name: mdx-mtmc-app #### Helm K8s Values file path for defined charts app_values: "/mnt/helm-values/MTMC-RTLS-SDG/mtmc-rtls-app-override-values.yaml" nvstreamer_app_values: "/mnt/helm-values/MTMC-RTLS-SDG/nvstreamer-with-ingress-values.yaml" vst_app_values: "/mnt/helm-values/MTMC-RTLS-SDG/vst-app-with-ingress-values.yaml" wdm_ds_app_values: "/mnt/helm-values/MTMC-RTLS-SDG/wdm-deepstream-mtmc-rtls-values.yaml"
Parameter Explanation
Explanation of each and every entry of
config.ymlfile are explained in below table:RTLS and SDG Deploy Template for Azure CSP Parameter name
Type
Optional
Description
name
string
A unique name to identify the project. This is important to tear down resources later.
spec
map
Configuration specifications for Azure Subscription for connecting to backend for state management and infra provisioning.
spec > infra
map
Configuration specifications for infrastructure provisioning and maintaing state in azure csp.
spec > infra > backend
map
Backend configuration.
spec > infra > backend > tenant_id
string
Azure tenant id of the state storage account.
spec > infra > backend > subscription_id
string
Azure subscription id of the state storage account.
spec > infra > backend > client_id
string
Azure client id of the app registration with access to subscription.
spec > infra > backend > client_secret
string
Azure client secret of the app registration with access to subscription for authentication.
spec > infra > backend > resource_group_name
string
Azure resource group name of the state storage account.
spec > infra > backend > storage_account_name
string
Azure storage account name of the state storage account.
spec > infra > backend > container_name
string
Azure storage account container name of the container for state storage in the state storage account.
spec > infra > provider
map
Provider configuration.
spec > infra > provider > tenant_id
string
Azure tenant id where application will be deployed.
spec > infra > provider > subscription_id
string
Azure subscription id where application will be deployed.
spec > infra > provider > client_id
string
Azure client id of the app registration with access to subscription.
spec > infra > provider > client_secret
string
Azure client secret of the app registration with access to subscription for authentication.
spec > infra > configs
map
Infra related configuration in order to provision user defined infra.
spec > infra > configs > access_cidrs
array
CIDR ranges from where VM ssh access and application UI and APP will be able to access. So as to limit the access to corp vpn network and not open to internet.
spec > infra > configs > location
string
Azure region in which resources will be created.
spec > infra > configs > coturn_settings
map
COTURN instance configs used for configuring turn server.
spec > infra > configs > coturn_settings > password
string
Password used to connect to COTURN server.
spec > infra > configs > isaacsim
map
IsaacSim Infra related configs like VM size.
spec > infra > configs > isaacsim > create_isaac
string
Flag to control enabling deployment of isaacsim app. Defaults to true for sim2deploy.
spec > infra > configs > isaacsim > size
string
VM type to provision IsaacSim App vm. Defaults to Nvidia 2x A10 GPU type Standard_NV72ads_A10_v5.
spec > secrets
map
Secrets required to manage infra configs.
spec > secrets > ssh_public_key
string
Content of the public key of the ssh key-pair used for instance access.
spec > secrets > ssh_private_key
string
Content of the private key of the ssh key-pair used for instance access. Please make sure spacing is followed while pasting contents of private key.
spec > platform
map
Configuration specifications for platform to download app related resources.
spec > platform > secrets
map
Secrets required to manage platform configs to run application on provisioned infra.
spec > platform > secrets > ngc_cli_api_key
string
NGC API key with access to deployment artifacts.
spec > app
map
Configuration specifications for managing app to be configured on the provisioned infra.
spec > app > secrets
map
Secrets required to manage app configs like downloading app based artifacts.
spec > app > secrets > ngc_cli_api_key
string
NGC API key with access to deployment artifacts.
spec > app > isaacsim_configs
map
Configs required to deploy isaacsim application.
spec > app > isaacsim_configs > isaac_image
string
Docker image for IsaacSim application to run docker app on IsaacSim VM. Defaults to image tag 4.0.0.
spec > app > helm_configs
map
yes
Configs required to deploy MDX app for k8s setup. It helps to user provide charts for different apps and override values to be used while app deployment using deploy script.
Sample Output for RTLS + SDG Workflow deploy Script
=========================================================================================== access_urls: app: app: http://<App-gw-public-ip>:31080/ui/rtls/ grafana: http://<App-gw-public-ip>:32300/login kibana: http://<App-gw-public-ip>:31560/app/kibana prometheus: http://<App-gw-public-ip>:30090/graph sdg_details: sdg_info: | ************************************************************ * Isaac Sim is deployed at <IsaacSim-VM-Public-IP> * ************************************************************ * To connect to Isaac Sim via SSH: ssh -i <key-path/ssh.pem> -o StrictHostKeyChecking=no ubuntu@<IsaacSim-VM-Public-IP> * To connect to Isaac Sim via noVNC: 1. Open http://<IsaacSim-VM-Public-IP>:6080/vnc.html?host=<IsaacSim-VM-Public-IP>&port=6080 in your browser. 2. Click "Connect" and use password "<generated-pass>" * To connect to Isaac Sim via NoMachine: 0. Download NoMachine client at https://www.nomachine.com/download, install, and launch it. 1. Click "Add" button. 2. Enter Host: "<IsaacSim-VM-Public-IP>". 3. In "Configuration" > "Use key-based authentication with a key you provide", select file "<key-path/ssh.pem>". 4. Click "Connect" button. 5. Enter "ubuntu" as the username when prompted. ssh_command: app: bastion: ssh -i <key-path/ssh.pem> -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ubuntu@<Basion-VM-Public-IP> coturn: ssh -i <key-path/ssh.pem> -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ubuntu@<Coturn-VM-Public-IP> isaacsim: ssh -i <key-path/ssh.pem> -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ubuntu@<IsaacSim-VM-Public-IP> master: ssh -i <key-path/ssh.pem>-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ProxyCommand="ssh -i <key-path/ssh.pem> -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p ubuntu@<RTLS-VM-Public-IP>" ubuntu@<RTLS-VM-Private-IP> ===========================================================================================
Tear Down Deployment
To tear down all the infrastructure along with application that we created through above scripts,
run ./envbuild.sh uninstall -c all command for RTLS + SDG app infra teardown.
Important
Both install and uninstall Options needs to be run with care. We recommend dry-run with flag -d option to see the changes before install.