---
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

title: "Prerequisites"
description: ""
---

Before installing the NeMo Platform Helm chart, prepare Kubernetes access, storage, and NGC credentials.

## Kubernetes cluster access

Install and configure these tools on the machine where you run the install:

- `kubectl` configured for the target cluster
- `helm` 3.x
- Permission to create namespaces, secrets, RBAC resources, services, deployments, persistent volume claims, and cluster-scoped resources required by chart dependencies

Set a namespace variable used by the examples:

```sh
export NMP_NAMESPACE=nemo-platform
kubectl create namespace "$NMP_NAMESPACE"
```

Review the [system requirements](/documentation/reference/system-requirements) before choosing node types. For storage and persistent volume configuration, including ReadWriteMany and StorageClass requirements, see [Persistent Volumes](/documentation/self-managed-deployment/setup/helm/persistent-volumes).

## Cluster requirements

The chart can run on local or managed Kubernetes clusters when the required storage, networking, and image access are available.

| Cluster | Minimum setup |
| --- | --- |
| `minikube` | Single-node smoke testing. Enable or provide a StorageClass and use port-forwarding or the ingress addon for API access. |
| `kind` | Single-node smoke testing. Provide a static PersistentVolume or StorageClass for the shared PVC and use port-forwarding for API access. |
| EKS | Configure EFS or another RWX storage backend for shared jobs storage. Use GPU node groups and NVIDIA GPU Operator or device plugin for GPU workloads. Configure EFA only for multi-node GPU jobs. |
| AKS, GKE, OKE, or on-prem | Configure an RWX-capable StorageClass, GPU node support, ingress or Gateway API, and any cloud-specific high-performance networking before enabling multi-node jobs. |
| OpenShift | Apply the OpenShift security context overrides in [OpenShift](/documentation/self-managed-deployment/setup/helm/openshift). |

## Create NGC API key and secrets

You need an NGC account and an NGC API key that can access the NeMo Platform chart and container images in the `nvidia/nemo-platform` org. NeMo Platform images are hosted under paths such as `nvcr.io/nvidia/nemo-platform/nmp-api` and `nvcr.io/nvidia/nemo-platform/safe-synthesizer-tasks`.

To learn more about using Helm charts in the NGC Catalog console, refer to the [Helm Charts](https://docs.nvidia.com/ngc/gpu-cloud/ngc-catalog-user-guide/index.html#helm-charts) section in the NGC Catalog User Guide.

1. Create an NGC API key following [Generating NGC API Keys](https://docs.nvidia.com/ngc/latest/ngc-private-registry-user-guide.html#generating-ngc-api-keys).

   Include permissions that allow access to NGC Catalog artifacts and the NVIDIA private registry. At minimum, include the NGC Catalog and Public API Endpoints permissions shown in the NGC API key UI. If your organization uses scoped service keys, ensure the key can read the `nvidia/nemo-platform` org.

2. Store the key in your shell environment.

   ```sh
   export NGC_API_KEY=<your-ngc-api-key>
   ```

3. Create the image pull secret.

   This secret lets Kubernetes pull container images from `nvcr.io`.

   ```sh
   kubectl create secret docker-registry nvcrimagepullsecret \
     --docker-server=nvcr.io \
     --docker-username='$oauthtoken' \
     --docker-password="$NGC_API_KEY" \
     --namespace "$NMP_NAMESPACE"
   ```

4. Create the NGC API secret.

   This secret is mounted into platform services that need to authenticate to NGC APIs for model and artifact access.

   ```sh
   kubectl create secret generic ngc-api \
     --from-literal=NGC_API_KEY="$NGC_API_KEY" \
     --namespace "$NMP_NAMESPACE"
   ```

5. Confirm both secrets exist.

   ```sh
   kubectl get secret nvcrimagepullsecret ngc-api -n "$NMP_NAMESPACE"
   ```

For more information about other secrets you might configure through the Helm chart, see [Manage Secrets](/documentation/get-started/core-concepts/manage-secrets).
