Skip to content

Support dynamic toleration injection for pre-built OCI bundles #1371

Description

@atif1996

Problem

When AICR generates a static OCI bundle, GPU node tolerations are baked in at build time via --accelerated-node-toleration. Once the image is built there is no mechanism to inject additional tolerations at install time without rebuilding the bundle.

This becomes a blocker when customers add arbitrary taints to their GPU nodes (e.g., reserved-by:NoSchedule during application upgrades). The GPU Operator daemonsets — driver, toolkit, device-plugin, DCGM, GFD, etc. — cannot schedule on those nodes, causing driver upgrades to stall.

Request

Extend the dynamic value mechanism (--dynamic component:path) to support node scheduling toleration paths, so that daemonsets.tolerations (and equivalent paths registered under nodeScheduling.accelerated.tolerationPaths in recipes/registry.yaml) can be left as HelmRelease dynamic placeholders at bundle time and filled at install/deploy time.

Proposed change

  • pkg/bundler/bundler.go:applyNodeSchedulingOverrides() — when a toleration path is marked as dynamic, emit a placeholder in the HelmRelease rather than baking in the toleration values
  • New flag or extension to existing --dynamic to mark accelerated/system node toleration paths for install-time injection
  • At install time: the operator passes the additional taint(s) as a HelmRelease value override

Context

This was surfaced from a customer issue on an mk8s-managed cluster (vclpksojdd-dgxc-k8s-aws-use1-prod) where reserved-by:NoSchedule was added to GPU nodes. The platform needs a consistent way to handle arbitrary customer taints across both AOR-managed (mk8s) and AICR-managed clusters.

Wildcard tolerations (operator: Exists with no key) are not an option because they bypass the Skyhook node hardening gate (skyhook.nvidia.com=runtime-required:NoSchedule, sync-wave 019).

Metadata

Metadata

Assignees

Fields

No fields configured for Enhancement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions