> This page is for version 1.0.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 1.0.0 (Latest) (default): https://docs.nvidia.com/nim/alpamayo/1.0.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nim/alpamayo/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nim/alpamayo/_mcp/server.

# 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](https://github.com/NVIDIA/gpu-operator) installed.

For supported GPUs and profile constraints, refer to [Support Matrix](/nim/alpamayo/support-matrix).

## Prerequisites

Create an `NGC_API_KEY` and authenticate to NGC as described in [Quickstart Guide](/nim/alpamayo/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](https://catalog.ngc.nvidia.com/orgs/nim/helm-charts/nim-wfm). The following prompt avoids a hidden placeholder in subsequent commands:

```bash
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:

```bash
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:

```bash
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.

```yaml
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](/nim/alpamayo/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:

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

Wait for the pod to become ready:

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

## Run Inference

Port-forward the HTTP service:

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

Then verify readiness:

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

For request examples, refer to [Quickstart Guide](/nim/alpamayo/quickstart-guide) and [API Reference](/nim/alpamayo/api-reference).

## Troubleshooting

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

```bash
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:

```bash
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.