Helm-Based Task Creation
Helm-Based Task Creation
A Helm task deploys a Helm chart onto a GPU instance for the duration of the job. Use this approach when your workload requires multiple coordinated containers or a more complex Kubernetes resource configuration than a single container image allows.
Prerequisites
Before creating a Helm task:
-
Chart version strings must not contain hyphens. For example,
v1is valid;v1-testcauses installation failures. -
The task system injects the following values before rendering the chart, so templates can reference them as
.Values.nvctTaskIdetc. without any other setup. Declaring them with empty defaults invalues.yamlis recommended so templates compile cleanly during local development:Minimal
values.yaml: -
Pull secrets are attached to the default ServiceAccount at runtime. Pods that use the default ServiceAccount can pull images without any pull-secret configuration in the chart. For private registries, register credentials first with
nvcf-cli registry-credential add— see CLI for details.
Creating a Helm task
Example JSON configuration
Progress updates
The chart must write to nvctProgressFilePath throughout the job. See
Container-Based Task Creation for the
progress file schema and heartbeat requirements.
Because Kubernetes may restart containers, use a Job with backoffLimit: 0 and
restartPolicy: Never for the workload container. A restarted container that
writes a lower percentComplete than a previous write causes a task failure —
the value must be non-decreasing across all writes.
Security constraints
The supported object types below apply to all policies. The remaining rules
(volume types, object count, hooks, CRDs) apply only when using the Default
policy; Unrestricted bypasses those checks.
Supported Kubernetes object types:
- ConfigMap
- Secret
- Service (type
ClusterIPor headless only) - Deployment, ReplicaSet, StatefulSet
- Job, CronJob
- Pod
- ServiceAccount
The rendered chart may contain at most 300 objects across these types.
Allowed Pod volume types:
configMapsecretprojected(sources of the above types)emptyDir
Helm chart hooks are not executed and are ignored if present.
CustomResourceDefinitions in the chart are skipped on installation.
Helm validation policy
The helmValidationPolicy field controls which Kubernetes resource types the
chart is permitted to create. It is nested inside gpuSpecification.
To permit additional resource types beyond the default set, supply them in
extraKubernetesTypes:
Differences from container tasks
Runtime limits, secrets, result handling, and monitoring work the same way as container tasks. Note: result upload is not yet supported in this release. See Container-Based Task Creation for details on those fields.