Helm chart for deploying the NMOS Connections Operator on Kubernetes.
NMOS Connections Operator Helm Chart
Basic Introduction
This Helm chart deploys the NMOS Connections Operator on a Kubernetes cluster.
It installs the operator CRDs, RBAC resources, ServiceAccount, and Deployment.
It can also create the singleton NMOSConnectionsOperatorConfig used to
configure NMOS registry access and reconciliation behavior.
Prerequisites
-
Kubernetes cluster
- An NMOS registry reachable from the operator pod when using NMOS-controlled endpoints
- Multus CNI when
highSpeedNetworkscontains one or more secondary network attachments
-
Image pull secret
- Create a secret to pull images from the NGC registry in the same namespace as the operator:
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, such asngc-secret, used when installing the chart<API-KEY>is your NGC API Key<your-email>is the email address associated with your NGC account<your-namespace>is the Kubernetes namespace in which the operator will be installed
- Create a secret to pull images from the NGC registry in the same namespace as the operator:
Installation
Using NGC CLI and NGC Web UI
See the NGC Helm Charts documentation for general guidance.
Using Helm Dashboard
This Helm chart can be installed using the Helm Dashboard Helm Chart.
Using Helm
-
Log in to the NGC registry:
helm registry login nvcr.io -
Add the NGC Helm repository:
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 local name for the repository, such asholoscan-for-media<API-KEY>is your NGC API key
-
Update the repository or fetch this chart:
helm repo updateor
helm pull <your-repo-name>/nmos-connections-operator -
View the available charts:
helm search repo <your-repo-name> -
Install the NMOS Connections Operator.
If the image pull secret was created beforehand:
helm install \ --namespace <your-namespace> --create-namespace \ --set image.imagePullSecrets[0].name=<secret-name> \ --set-string config.nmosUrl=http://<registry-host>:<query-port> \ <release-name> <your-repo-name>/nmos-connections-operatorAlternatively, let the chart create the image pull secret:
helm install \ --namespace <your-namespace> --create-namespace \ --set image.imageCredentials.password=<API-KEY> \ --set-string config.nmosUrl=http://<registry-host>:<query-port> \ <release-name> <your-repo-name>/nmos-connections-operatorwhere:
<secret-name>is the secret created in the prerequisites<registry-host>and<query-port>identify the NMOS Registry Query API<release-name>is a unique name for this installation, such asnmos-connections-operator<your-namespace>is the namespace in which the operator will be installed
-
Check the deployment status:
kubectl get pods -n <your-namespace> kubectl get deployment -n <your-namespace> -
Check NMOS connection resources:
kubectl get nmosconnections,mediaendpoints -A -
Manage the installed application:
helm status <release-name> -n <your-namespace> helm get all <release-name> -n <your-namespace> helm uninstall <release-name> -n <your-namespace>
NMOS Registry Configuration
Set config.nmosUrl to the base URL of the NMOS registry. The URL must be
reachable using the operator pod's routing and include the registry port.
config:
nmosUrl: "http://registry.example.com:8010"
If config is omitted, the chart does not create an
NMOSConnectionsOperatorConfig, and the operator uses its built-in defaults.
High Speed Network Configuration
highSpeedNetworks defines Multus attachments for the operator pod. Each entry
can specify a NetworkAttachmentDefinition, a static IP address, and an SR-IOV
resource pool.
highSpeedNetworks:
- name: media-a-rx-net-static
namespace: default
ip: 192.168.20.200/24
resourceName: openshift.io/media_a_rx_pool
Omit namespace to use the Helm release namespace. Set highSpeedNetworks to
[] to use only the default pod network.
Uninstallation
Remove connection resources before uninstalling the operator:
kubectl delete nmosconnections --all -A
kubectl delete mediaendpoints --all -A
helm uninstall <release-name> -n <your-namespace>
License
By downloading and using this software, you accept the terms and conditions of the NVIDIA AI Product Agreement.