Helm chart for deploying the Reference Media Functions Operator on Kubernetes.
Reference Media Functions Operator Helm Chart
Basic Introduction
This Helm chart deploys the Reference Media Functions Operator on a Kubernetes cluster. It installs the operator CRDs, RBAC resources, ServiceAccount, and Deployment.
Prerequisites
-
Kubernetes cluster
- Multus CNI and the network attachments required by your media function resources
- The
topo-aware-scheduler, or setmediaFunction.schedulerNameto an empty string to use the default scheduler
-
Rivermax license
- Request a developer license from Rivermax
- Store the license file in the namespace where media function workloads will run:
kubectl create secret generic rivermax-license --from-file=rivermax.lic -n <your-namespace>
-
Image pull secret
- Create a secret for the operator and media function images in each namespace where those pods will run:
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 namespace where the operator and media function resources will run
- Create a secret for the operator and media function images in each namespace where those pods will run:
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>/reference-media-functions-operator -
View the available charts:
helm search repo <your-repo-name> -
Install the Reference Media Functions Operator.
If the image pull secret was created beforehand:
helm install \ --namespace <your-namespace> --create-namespace \ --set image.imagePullSecrets[0].name=<secret-name> \ --set mediaFunction.imagePullSecrets[0].name=<secret-name> \ <release-name> <your-repo-name>/reference-media-functions-operatorAlternatively, let the chart create image pull secrets in the release namespace:
helm install \ --namespace <your-namespace> --create-namespace \ --set image.imageCredentials.password=<API-KEY> \ --set mediaFunction.imageCredentials.password=<API-KEY> \ <release-name> <your-repo-name>/reference-media-functions-operatorwhere:
<secret-name>is the secret created in the prerequisites<release-name>is a unique name for this installation, such asreference-media-functions-operator<your-namespace>is the namespace in which the operator will be installed
Image pull secrets are namespace-scoped. Create the media function secret in every namespace where you create media function resources.
-
Check the deployment status:
kubectl get pods -n <your-namespace> kubectl get deployment -n <your-namespace> -
Check media function resources:
kubectl get nvidiasrtgatewaymediafunctions,nvidiavideoflippermediafunctions,nvidiastreamdelaymediafunctions,nvidiacolorpatternmediafunctions,nvidiafileplayermediafunctions -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>
Values
| Value | Description | Default |
|---|---|---|
image.repository | Operator container image | nvcr.io/nvidia/holoscan-for-media/reference-media-functions-operator |
image.tag | Operator image tag | "" (chart appVersion) |
image.imagePullSecrets[0].name | NGC secret for pulling the operator image | Not set |
mediaFunction.image | Container image for media function pods | nvcr.io/nvidia/holoscan-for-media/nvds-nmos-bin:0.8.0 |
mediaFunction.imagePullSecrets[0].name | NGC secret for pulling media function images | Not set |
mediaFunction.schedulerName | Scheduler for media function pods | topo-aware-scheduler |
mediaFunction.rivermaxLicenseSecretName | Secret containing the Rivermax license | rivermax-license |
Network attachments and transport settings are configured on each media function Custom Resource rather than as Helm values.
Uninstallation
Remove media function resources before uninstalling the operator:
kubectl delete nvidiasrtgatewaymediafunctions,nvidiavideoflippermediafunctions,nvidiastreamdelaymediafunctions,nvidiacolorpatternmediafunctions,nvidiafileplayermediafunctions --all -A
kubectl delete nvidiafileplayercontexts --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.