Cluster install values

TauGrid distribution chart configurable values

This page documents the Helm values accepted by tau cluster install. The distribution chart bundles Kueue, KubeRay, the Tau core controller, GPU monitoring, the taugrid-core services chart, and a portable baseline queue into a single versioned release. Portal is enabled by default for the operator quickstart; Stellar, lifecycle recorder, and image prewarm remain disabled until the platform opts in.

Print this reference from your terminal:

tau cluster explain-values

The Helm release namespace is the only namespace setting for TauGrid system workloads and Services. tau cluster install defaults it to tau-system; --namespace <name> moves the Kueue, KubeRay, Tau controller, Portal, GPU monitoring, and other enabled first-party workloads together. The first-party charts follow their Helm release namespace, and the deprecated gpu-monitoring.namespace override must remain empty. Cluster-scoped resources remain cluster-scoped, and Kueue keeps its Kubernetes API aggregation binding in kube-system.

MultiKueue capability

KeyTypeDefaultDescription
kueue.aksExtension.enableMultiKueuebooltrueInstall the pinned Kueue MultiKueue controller capability

The standard installation includes MultiKueue API/controller support and read-only prerequisite observation. Operators separately create worker credentials, AdmissionChecks, MultiKueueConfigs, MultiKueueClusters, dedicated queues, and profiles. TauCluster.status.conditions[MultiKueueReady] reports the health of those actual operator-owned prerequisites. See Multi-cluster execution before publishing a MultiKueue profile.

Components

Toggle sub-charts with components.<key>.enabled:

KeyDefaultDescription
components.kueue.enabledtrueKueue job scheduler
components.kuberayOperator.enabledtrueKubeRay operator
components.tauCoreController.enabledtrueTau core controller (TauWorkspace, TauCluster)
components.taugridCore.enabledtrueInclude the services chart, including the default Portal
components.gpuMonitoring.enabledunsetGPU monitoring follows components.tauCoreController.enabled until explicitly set

Baseline Queue

A portable Kueue queue bootstrapped on first install. These quotas bound concurrent Kueue admission; Kubernetes scheduling still enforces real capacity. Production operators should replace them with deliberate capacity policy.

KeyTypeDefaultDescription
baselineQueue.enabledbooltrueCreate the ClusterQueue, LocalQueue, ResourceFlavors, and Topology
baselineQueue.namestringjobqueueLocalQueue name (DNS label)
baselineQueue.namespaceSelectorobjectmatchExpressions: [{key: tau.azure.com/workspace, operator: Exists}]Namespaces that receive the LocalQueue
baselineQueue.topology.enabledbooltrueCreate a Topology object for hostname-level scheduling
baselineQueue.topology.namestringdefault-node-topologyTopology object name
baselineQueue.topology.requiredLevelstringkubernetes.io/hostnameRequired topology level copied from managed GPU flavors to generated pod templates; custom levels are rendered above the always-present hostname leaf
baselineQueue.flavor.*objecttaugrid-default-cpu, Linux, no tolerationsCPU/memory flavor; keep GPU labels and tolerations out
baselineQueue.resourceslistcpu: 100000, memory: 100TiCPU/memory admission quota
baselineQueue.gpu.enabledbooltrueAdd GPU resources and flavors to the node-resource group
baselineQueue.gpu.coveredResourceslistnvidia.com/gpuGPU resources covered by the node-resource group
baselineQueue.gpu.flavorslistgeneric taugrid-default-gpuGPU flavors and per-flavor quotas

CPU, memory, and GPU share one Kueue resource group so each GPU pod set receives one node flavor across all of its requested resources. taugrid-default-cpu has zero GPU quota, while the generic taugrid-default-gpu has CPU/memory plus GPU quota and supports gpu_class: any on a fresh install. When hardware is known, replace the GPU flavor list with class-specific flavors and label matching nodes with the canonical A10, A100, H100, H200, GB200, or GB300 class from policy.gpu_class. Only GPU flavors carry topologyName and the managed kueue.x-k8s.io/podset-required-topology metadata annotation. Connected TauGrid submission copies that requirement onto generated GPU pod templates when no explicit placement policy is present. Raw Kubernetes manifests remain expert-controlled. The CPU/memory flavor remains non-TAS. For upgrades with saved legacy values, remove GPU resources from baselineQueue.resources and move all GPU class/series labels and GPU-node tolerations out of baselineQueue.flavor before adding their replacements under baselineQueue.gpu.flavors. Declare GPU-node taints under each flavor’s nodeTaints. TauGrid fails template rendering if the old mixed values would duplicate GPU coverage or constrain CPU-only admission. Replace the generic GPU flavor with class-specific flavors rather than keeping both: exact class quota must not fall back to an unlabeled ResourceFlavor.

Portal

The following are defaults of the TauGrid umbrella distribution used by tau cluster install. The standalone taugrid-core chart keeps Portal disabled, so platforms that install that child chart directly must opt in explicitly. Portal follows the Helm release namespace selected by tau cluster install --namespace; the CLI default is tau-system.

KeyTypeDefaultDescription
taugrid-core.portal.enabledbooltrueInstall the operator Portal
taugrid-core.portal.serviceAccount.createbooltrueCreate the dedicated Portal ServiceAccount
taugrid-core.portal.serviceAccount.namestringtau-portalPortal ServiceAccount name
taugrid-core.portal.rbac.createbooltrueCreate cluster-wide read-only Kubernetes RBAC for Portal

These defaults make the Portal shell, Runs and run-detail views, Cluster Nodes view, and live Ray discovery available to an operator through the ClusterIP Service. See Configure Portal to separately configure Kusto-backed boards, the scoped computed Jobs board, KueueViz, an authenticated researcher endpoint, and a durable experiment store.

baselineQueue.gpu.flavors

Declare GPU-node taints (for example sku=gpu:NoSchedule) in each GPU flavor’s nodeTaints. This makes the flavor ineligible for CPU-only pods if generic CPU quota is exhausted. TauGrid injects sku=gpu and nvidia.com/gpu tolerations into GPU workloads, so those workloads remain eligible. Keep a matching taint out of the flavor’s tolerations: repeating it there would make Kueue automatically tolerate it for every pod and remove the CPU-isolation guard.

# taugrid-values.yaml
baselineQueue:
  gpu:
    flavors:
      - name: a100-pool
        nodeLabels:
          kubernetes.io/os: linux
          tau.azure.com/gpu-class: a100-80gb
        nodeTaints:
          - key: sku
            value: gpu
            effect: NoSchedule
        tolerations: []
        resources:
          - name: nvidia.com/gpu
            nominalQuota: "1"

Sub-Chart Pass-Through

The remaining top-level keys pass values directly to embedded sub-charts:

PrefixSub-chartCommon overrides
kueue.*Kueue v0.18controllerManager.manager.image, managerConfig
kuberay-operator.*KubeRay v1.6image, configuration, podAnnotations
tau-core-controller.*Tau controllerimage, tauCluster.nodeLabelRules
taugrid-core.*Services chartprewarm.enabled, stellar.enabled, portal.enabled
gpu-monitoring.*GPU monitoringgpuSkus, daemonset, metricsCollector, namespace

Example: GPU Cluster

TauGrid’s controller derives the node contract from node.kubernetes.io/instance-type and repairs drift:

AKS VM sizeGPU seriesGPU class
Standard_NC24ads_A100_v4nc24ads-a100-v4a100-80gb
Standard_ND96amsr_A100_v4ndm-a100-v4a100-80gb
Standard_NC40ads_H100_v5nc-h100-v5h100-95gb
Standard_ND96isr_H200_v5nd-h200-v5h200-141gb

Use tau-core-controller.tauCluster.extraNodeLabelRules for another reviewed VM size. Setting nodeLabelRules replaces the built-in catalog. CPU-only clusters and GPU pools scaled to zero remain ready when no catalog entry currently matches.

# taugrid-values.yaml: H200 cluster with GPU taints
baselineQueue:
  gpu:
    flavors:
      - name: h200-pool
        nodeLabels:
          kubernetes.io/os: linux
          kueue.azure.com/gpu-series: nd-h200-v5
          tau.azure.com/gpu-class: h200-141gb
        nodeTaints:
          - key: sku
            value: gpu
            effect: NoSchedule
        tolerations: []
        resources:
          - name: nvidia.com/gpu
            nominalQuota: "8"

See Also