Install NeMo Platform Helm Chart
This setup deploys the full platform to Kubernetes. If you are just getting started on a workstation, use the local setup guide first.
Complete Prerequisites before installing the chart.
Set install variables
Use a pinned chart version for every install and upgrade. For a stable release, use the chart version from the release notes or NGC Catalog. For nightly GHCR charts, the release workflow uses the latest stable SemVer release tag and appends a nightly timestamp, falling back to k8s/helm/Chart.yaml if no release tag is available.
Create the namespace if you have not already created it:
Fetch the chart
Stable NGC
Direct archive
Nightly GHCR
Add the NeMo Platform Helm repository and inspect the values for the pinned stable chart version:
Configure values
At minimum, make sure the chart can use the image pull secret and NGC API secret from Prerequisites:
Review the NeMo Platform Helm Chart reference before installing. The most common cluster-specific settings are:
Local single-node clusters
For minikube or kind, the default StorageClass often does not satisfy a ReadWriteMany claim. For a single-node QA smoke test, create a static hostPath PV and a matching StorageClass:
Add the StorageClass to values.yaml:
For local API access without ingress, use port-forwarding after the release is ready:
EKS example
For EKS, use a ReadWriteMany-capable StorageClass for jobs storage. The example below assumes an EFS CSI StorageClass named efs-sc and an EBS CSI StorageClass named gp3:
If you store Files service data in S3, configure the file storage backend and make AWS credentials available through IRSA or another boto3-supported credential source:
For multi-node GPU jobs on EKS, also configure EFA networking as described in Multinode Networking.
Install Volcano
Install the Volcano scheduler before installing the chart. This is required for customization jobs that leverage multiple nodes.
After applying Volcano, wait for the admission webhook to finish initializing before proceeding. The webhook registers immediately with failurePolicy: Fail, but TLS certificate generation runs asynchronously. If you proceed before the webhook is ready, pod creation can fail with certificate errors.
Install the chart
Install from the NGC Helm repository:
To install a nightly chart from GHCR, use the OCI reference:
If you pulled the chart archive directly, install from the archive:
The installation process can take approximately 10 minutes for image downloads, container startup, and service readiness. Pods might appear in pending or restarting states while dependencies initialize.
Verify the deployment
Check the release and pod status:
Wait for the API deployment to become available:
For a local smoke test, port-forward the API service and call the readiness endpoint:
Leave the shell open while running CLI commands through the forwarded port. The trap stops the port-forward when the shell exits; to stop it earlier, run kill "$NMP_PORT_FORWARD_PID".
Configure the CLI to use the deployed API:
Upgrade the chart
Update NMP_HELM_CHART_VERSION, review the release notes for required values changes, and run:
For a release installed from GHCR with NMP_HELM_CHART_REF, use the Helm OCI reference:
Uninstall the platform
To uninstall the Helm release:
helm uninstall intentionally does not remove all resources.
- PVCs are preserved to prevent accidental data loss. Delete them manually if no longer needed.
- CRDs are not removed by Helm design (upstream issue) to avoid destroying custom resources across the cluster.
- Completed jobs, secrets, and the namespace may also remain.
If you need a complete teardown for CI/CD pipelines or reinstalling in the same namespace, delete the namespace after helm uninstall and inventory CRDs before deleting any cluster-wide API definitions:
Deleting CRDs removes all custom resources of those types cluster-wide. Only do this if no other workloads depend on them.
Troubleshooting
Volcano admission webhook blocks pod creation
Symptom: Pod creation fails cluster-wide with an error like:
Cause: The Volcano MutatingWebhookConfiguration registers with failurePolicy: Fail before the volcano-admission-init job finishes generating TLS certificates. This affects all namespaces, not just Volcano workloads.
Fix: Wait for the webhook to become functional, then restart the admission deployment to force certificate regeneration:
Verify the webhook is accepting requests before retrying your Helm install: