Deploy with Helm#

Alpamayo1.5 NIM can be deployed on Kubernetes with the NVIDIA NIM WFM Helm chart. To use Helm, you need a Kubernetes cluster with supported NVIDIA GPU nodes and the GPU Operator installed.

For supported GPUs and profile constraints, refer to Support Matrix.

Prerequisites#

Create an NGC_API_KEY and authenticate to NGC as described in Quickstart Guide.

After you have an NGC API key, download the nim-wfm Helm chart from NGC. Select the chart version from the NGC Catalog. The following prompt avoids a hidden placeholder in subsequent commands:

read -r -p 'NIM WFM chart version shown in NGC Catalog: ' NIM_WFM_VERSION
test -n "$NIM_WFM_VERSION"

helm fetch "https://helm.ngc.nvidia.com/nim/charts/nim-wfm-${NIM_WFM_VERSION}.tgz" \
   --username='$oauthtoken' \
   --password=$NGC_API_KEY

You can inspect the chart README and values before deploying:

helm show readme "nim-wfm-${NIM_WFM_VERSION}.tgz"
helm show values "nim-wfm-${NIM_WFM_VERSION}.tgz"

Create Kubernetes Secrets#

Create one secret for pulling the container image and one secret for model asset downloads:

kubectl create secret docker-registry ngc-secret \
   --docker-server=nvcr.io \
   --docker-username='$oauthtoken' \
   --docker-password=$NGC_API_KEY

kubectl create secret generic ngc-api \
   --from-literal=NGC_API_KEY=$NGC_API_KEY

Configure Values#

Create a custom-values.yaml file. The following example deploys one trajectory sample value with a persistent model cache. The NIM automatically selects a compatible profile for the visible GPU.

image:
  repository: nvcr.io/nim/nvidia/alpamayo1.5
  tag: 1.0.0

imagePullSecrets:
  - name: ngc-secret

model:
  name: nvidia/alpamayo1.5
  ngcAPISecret: ngc-api
  apiPort: 8000
  nimCache: /opt/nim/.cache

persistence:
  enabled: true
  size: 150Gi

resources:
  limits:
    nvidia.com/gpu: 1

startupProbe:
  failureThreshold: 360

env:
  - name: NIM_ALPAMAYO_TRAJ_SAMPLES
    value: "1"

To request a specific precision, add NIM_PRECISION with one of bf16, fp8, or w4a16. Refer to Support Matrix for supported GPU and precision combinations.

Do not set NGC_API_KEY or NIM_CACHE_PATH through the env list. Use model.ngcAPISecret for the NGC key and model.nimCache for the cache path inside the container. Configure persistence to provide writable storage at that path.

The generic nim-wfm chart exposes the HTTP API service port. Alpamayo1.5 NIM also listens on gRPC port 50051 for low-latency trajectory serving. If your production clients use gRPC, expose port 50051 with your cluster service configuration or a chart version that supports an additional service port.

Launch the NIM#

Install the chart with your custom values:

helm install alpamayo-nim "nim-wfm-${NIM_WFM_VERSION}.tgz" \
   -f custom-values.yaml

Wait for the pod to become ready:

kubectl get pods
kubectl logs -f statefulset/alpamayo-nim-nim-wfm

Run Inference#

Port-forward the HTTP service:

kubectl port-forward service/alpamayo-nim-nim-wfm 8000:http-api

Then verify readiness:

curl -sS http://localhost:8000/v1/health/ready

For request examples, refer to Quickstart Guide and API Reference.

Troubleshooting#

If the pod is stuck in Pending, check scheduling events:

kubectl describe pod <pod-name>

Common causes are missing GPU resources, node taints without matching tolerations, and storage configuration issues.

If startup fails before readiness, inspect the container logs:

kubectl logs -f <pod-name>

Large first-run model downloads and model materialization can take time. Use a persistent cache volume and increase startupProbe.failureThreshold if your cluster has slow model storage or network access.