Helm Values Reference

View as Markdown

The nvca-operator Helm chart is configured through a standard Helm values file (values.yaml) passed to helm upgrade -f values.yaml. This page documents all available parameters.

The parameters listed below are a snapshot and may not reflect the latest chart version. Always refer to the values.yaml and values.schema.json included in your chart version for the authoritative list of parameters and defaults:

How Values Are Structured

The chart values are organized into two layers:

  1. Shared parameters (top-level) — These control the operator image, authentication, node placement, network policies, observability, agent resources, and agent runtime config. Examples: image, ngcConfig, nodeSelector, networkPolicy, agent, agentConfig.
  2. “selfManaged.*“ — Used when ngcConfig.clusterSource is "self-managed". These define the backend configuration including NVCA version, feature gates, cluster attributes, and manual GPU config.

The key field is “ngcConfig.clusterSource“:

  • "self-managed" — The operator reads backend configuration from selfManaged.* values.
1# --- Shared parameters (all modes) ---
2image:
3 repository: "nvcr.io/nvidia/nvcf-byoc/nvca-operator"
4ngcConfig:
5 clusterSource: "helm-managed" # ← This determines which section below is used
6 serviceKey: "<your-key>"
7nodeSelector:
8 key: "node.kubernetes.io/instance-type"
9 value: "m5.2xlarge"
10
11# --- Only read when clusterSource is "helm-managed" ---
12helmManaged:
13 cloudProvider: "aws"
14 clusterRegion: "us-west-2"
15 nvcaVersion: "2.97.0"
16 featureGateValues: ["DynamicGPUDiscovery"]
17
18# --- Only read when clusterSource is "self-managed" ---
19# selfManaged:
20# nvcaVersion: "2.97.0"
21# featureGateValues: ["DynamicGPUDiscovery"]

The helmManaged and selfManaged sections share many of the same fields (nvcaVersion, featureGateValues, gpuManualInstanceConfigB64, clusterAttributes). The difference is that helmManaged also requires cluster identity fields (cloudProvider, clusterRegion, clusterGroupID, clusterGroupName) that self-managed deployments get from their own control plane.

Shared Parameters

These parameters apply to all deployment modes.

NVCA Operator

1## Container images
2image:
3 repository: "nvcr.io/nvidia/nvcf-byoc/nvca-operator" # Operator image path
4 tag: "" # Defaults to chart version
5 pullPolicy: IfNotPresent
6
7nvcaImage:
8 repositoryOverride: "" # Override NVCA agent image path (staging/testing only)
9 pullPolicy: IfNotPresent
10
11## Image pull secrets
12generateImagePullSecret: true # Auto-generate from ngcConfig.serviceKey
13imagePullSecretName: "nvca-operator-image-pull" # Name of the generated secret
14imagePullSecrets: [] # Additional pre-existing pull secrets
15
16## Service account
17serviceAccount:
18 create: true
19 annotations: {}
20 name: "" # Auto-generated if empty
21
22## Operator settings
23replicaCount: 1
24systemNamespace: nvca-operator
25logLevel: info # debug, info, warn, error
26priorityClassName: "" # K8s PriorityClassName for eviction preference
27k8sVersionOverride: "" # Override K8s version NVCA registers with
28enableGXCache: true # Enable GXCache support
29ddcsIPAllowList: "" # Comma-separated CIDRs for DDCS access control
30nvcaHelmRepositoryPrefix: "" # Restrict Helm repos to specific org/team

NGC Authentication

1ngcConfig:
2 username: '$oauthtoken'
3 serviceKey: "" # NGC Cluster Key or NAK/SAK
4 serviceKeySecretName: "ngc-service-key" # K8s Secret name if serviceKey not set inline
5 serviceKeySecretKeyName: "ngcServiceKey" # Key within the Secret
6 apiURL: https://api.ngc.nvidia.com # NGC API URL (override for self-hosted)
7 clusterSource: ngc-managed # "ngc-managed", "helm-managed", or "self-managed"

Node Selector

1nodeSelector:
2 key: node.kubernetes.io/instance-type # Label key for operator pod placement
3 value: "" # Label value (empty = no constraint)

Network Policies

1networkPolicy:
2 clusterNetworkCIDRs: # CIDRs that workload pods are NOT allowed to access
3 - "10.0.0.0/8"
4 - "172.16.0.0/12"
5 - "192.168.0.0/16"
6 - "100.64.0.0/12"
7 customPolicies: [] # Custom NetworkPolicy definitions for function namespaces

OpenTelemetry

1otel:
2 enabled: false
3 lightstep:
4 serviceName: "" # Lightstep service name
5 accessToken: "" # Lightstep API token

Agent Configuration

1agent:
2 cacheMountOptionsEnabled: true
3 cacheMountOptions: "ro,norecovery,nouuid"
4 workerDegradationPeriod: "" # e.g., "90m", "1h30m"
5 secretMirrorNamespace: nvca-operator # Namespace to mirror custom secrets from
6 secretMirrorLabelSelector: "" # Label selector for mirrored secrets
7 customAnnotations: {} # Extra annotations on the agent pod
8 functionEnvOverrides: {} # Override infra container images for functions
9 taskEnvOverrides: {} # Override infra container images for tasks
10 overrideEnvironmentVariables: {} # Override env vars on the NVCA agent container
11 resources:
12 limits:
13 cpu: 1000m
14 memory: 4Gi
15 requests:
16 cpu: 100m
17 memory: 200Mi
18
19## Merge custom YAML into the generated NVCA agent config at runtime
20agentConfig:
21 mergeConfig: ""
22 # Example:
23 # mergeConfig: |
24 # agent:
25 # logLevel: debug
26
27## OTel Collector sidecar (for K8s event collection)
28otelCollector:
29 enabled: false
30 imageRepository: "" # Auto-calculated if empty
31 imageTag: 0.143.2

Helm-Managed Parameters

Only used when ngcConfig.clusterSource: "helm-managed".

1helmManaged:
2 ## Cluster identity (REQUIRED, immutable after initial registration)
3 cloudProvider: "" # e.g., "aws", "gcp", "azure", "ON-PREM", "NCP"
4 clusterRegion: "" # e.g., "us-west-2"
5 clusterGroupID: "" # Unique cluster group identifier
6 clusterGroupName: "" # Human-readable cluster group name
7
8 ## Backend configuration
9 nvcaVersion: "" # NVCA agent version (REQUIRED)
10 clusterDescription: "" # Defaults to cluster name if empty
11 featureGateValues: [] # e.g., ["DynamicGPUDiscovery", "CachingSupport"]
12 gpuManualInstanceConfigB64: "" # Base64-encoded GPU config (manual instance only)
13 clusterAttributes: [] # e.g., ["CacheOptimized", "NVLinkOptimized"]
14
15 ## Authentication (optional)
16 oAuthClientID: "" # OAuth2/OIDC client ID (for internal NVIDIA clusters)
17 oAuthClientSecretKey: "" # Secret key for OAuth client
18
19 ## Image overrides (advanced, usually auto-calculated)
20 imageCredHelper:
21 imageRepository: ""
22 imageTag: 0.5.0
23 otelCollector:
24 imageRepository: ""
25 imageTag: 0.143.2

Self-Managed Parameters

Only used when ngcConfig.clusterSource: "self-managed" (self-hosted NVCF).

1selfManaged:
2 nvcaVersion: "" # NVCA agent version (REQUIRED)
3 featureGateValues: ["DynamicGPUDiscovery"] # Default includes GPU discovery
4 gpuManualInstanceConfigB64: "" # Base64-encoded GPU config (manual instance only)
5 clusterAttributes: [] # e.g., ["CacheOptimized"]
6
7 ## Image overrides (advanced, usually auto-calculated)
8 imageCredHelper:
9 imageRepository: ""
10 imageTag: 0.5.0
11 otelCollector:
12 imageRepository: ""
13 imageTag: 0.143.2

The selfManaged and helmManaged sections share the same backend fields. The key differences are:

  • selfManaged does not have cluster identity fields (cloudProvider, clusterRegion, clusterGroupID, clusterGroupName) — these come from the self-hosted control plane.
  • selfManaged.featureGateValues defaults to ["DynamicGPUDiscovery"]. To disable a feature, remove it from the list (set to []).
  • helmManaged.featureGateValues defaults to []. To disable a feature, prefix it with - (e.g., ["-DynamicGPUDiscovery"]).
  • NVCA Configuration — how to use these values to configure specific features (caching, network policies, manual instance config, etc.)
  • Agent config merging — using agentConfig.mergeConfig for runtime config overrides