This is a Helm chart package to manage NMOS Registry deployment on your Kubernetes cluster.
NMOS Registry Helm Chart
Basic Introduction
This is a Helm chart package to manage NMOS Registry deployment on your Kubernetes cluster.
Prerequisites
- Image pull secret
- Create a secret to pull images from the NGC registry in the same namespace as the pod that uses it:
where:
kubectl create secret docker-registry <secret-name> --docker-server=nvcr.io '--docker-username=$oauthtoken' --docker-password=<API-KEY> --docker-email=<your-email> -n <your-namespace><secret-name>is a short name likealice-ngc-secretto be used on your local system when deploying applications<API-KEY>is your NGC API Key<your-email>is the e-mail address you used to sign up for NGC<your-namespace>is the Kubernetes namespace in which you are going to deploy applications, often justdefaultwhen you're getting started
- Create a secret to pull images from the NGC registry in the same namespace as the pod that uses it:
- Prometheus Log Exporter
- If
prometheusExporteris enabled, and the Prometheus and Grafana Operators are installed, NMOS metrics are collected and can be visualised in the NMOS dashboard.
- If
Installation
Using NGC CLI and NGC Web UI
Please see the NGC Helm Charts documentation for general guidance.
Using Helm Dashboard
This Helm chart can be installed on your Kubernetes cluster using the Helm Dashboard UI once the Helm Dashboard Helm Chart is installed.
Using Helm
-
Login to the NGC registry
helm registry login nvcr.io -
Add repo on your local system
helm repo add <your-repo-name> https://helm.ngc.nvidia.com/nvidia/holoscan-for-media/ '--username=$oauthtoken' --password=<API-KEY>where:
<your-repo-name>is a short name likeholoscan-for-mediato be used on your local system to indicate the chart repository on NGC specified by the URL<API-KEY>is your NGC API Key
-
Update the repo or fetch particular chart
helm repo updateor
helm pull <your-repo-name>/nmos-cpp-registrywhere:
<your-repo-name>is the short name you used in thehelm repo addcommand above
-
Now you can see all the charts available
helm search repo -
You are ready to install NMOS Registry using its Helm chart
Install using below command if the image pull secret was created beforehand as mentioned in prerequisites
helm install --set imagePullSecrets[0].name=<secret-name>,highSpeedNetwork.name=media-a-rx-net-static,highSpeedNetwork.ip=<ip-address>,prometheusExporter.enabled=<prom-enabled> <release-name> <your-repo-name>/nmos-cpp-registryelse
helm install --set imageCredentials.password=<API-KEY>,highSpeedNetwork.name=media-a-rx-net-static,highSpeedNetwork.ip=<ip-address>,prometheusExporter.enabled=<true-or-false> <release-name> <your-repo-name>/nmos-cpp-registrywhere:
<secret-name>is the short name you used in thekubectl create secretcommand above<API-KEY>is your NGC API Key<ip-address>is a static IP address on the high-speed secondary network of your cluster you want to allocate to this particular installation of this application<prom-enabled>istrueorfalsedepending on whether you want to collect logs from the application<release-name>is a short name, likehelm-dashboard, which should be unique on your local system, to indicate this particular installation of this application<your-repo-name>is the short name you used in thehelm repo addcommand above
-
After installation you can check the status
kubectl get all -o wide -
Once the pod is running you can use the NMOS Registry
Access it through the high-speed secondary network, at
http://<ip-address>:<http_port>/where:<ip-address>is the IP address specified in thehelm installcommand above<http_port>is 8010 by default; it can be overridden in theRegistryConfigin thehelm installcommand (see thevalues.yamlfile)
-
Other commands to manage the installed application
helm status <release-name> helm get all <release-name> helm uninstall <release-name>where:
<release-name>is the short name you used in thehelm installcommand above
Additional Open-Source Software
This Helm chart will download and install additional third-party open-source container images. Review the license terms of these open source projects before use.
Security Considerations
Helm chart requires Vector sidecar to be run as privileged. This is so that Vector can write checkpoints for reading log files. In default configuration Vector sidecar is not enabled.
High Speed Network Configuration
Single Network Attachment (Default)
For a single high-speed network attachment, use the dictionary format:
highSpeedNetwork:
name: "media-a-rx-net-static"
ip: "192.0.2.1/24"
Multiple Network Attachments
For multiple high-speed network attachments, use the list format:
highSpeedNetwork:
- name: "media-a-rx-net-static"
ip: "192.0.2.1/24"
- name: "media-b-rx-net-static"
ip: "198.51.100.1/24"
For networks with static IP address management, the ip property is required as well as the network name.