Skip to content

feat: parameterize environment variables in Helm chart#1624

Open
ben-gutman wants to merge 1 commit intoNVIDIA:mainfrom
ben-gutman:feat/parameterize-env-variables
Open

feat: parameterize environment variables in Helm chart#1624
ben-gutman wants to merge 1 commit intoNVIDIA:mainfrom
ben-gutman:feat/parameterize-env-variables

Conversation

@ben-gutman
Copy link

@ben-gutman ben-gutman commented Feb 16, 2026

Description

This PR parameterizes 15 hardcoded environment variables across the 3 DaemonSet templates (device-plugin, gpu-feature-discovery, mps-control-daemon), moving them to `values.yaml` for greater configurability.

Motivation

The chart currently hardcodes several ENV variables that users might need to customize for different Kubernetes environments:

  • Config paths for alternative container runtimes
  • Node labels for custom device plugin configurations
  • NVIDIA device visibility and capability settings

This change makes the chart more flexible while maintaining full backward compatibility.

Changes

  • values.yaml: Added `configManager` and `env` sections with 15 new configurable parameters
  • templates/daemonset-*.yml: Updated init, sidecar, and main containers to use values from values.yaml
  • Chart.yaml: Bumped version to 0.19.0

Backward Compatibility

✅ 100% backward compatible - All defaults match original hardcoded values exactly.

Users upgrading from 0.18.0 will see no behavior change unless they explicitly override values.

Testing

  • `helm template` renders successfully with default values
  • `helm template` renders successfully with custom overrides
  • `helm lint` passes without warnings

Example Usage

  # values.yaml override example
  configManager:
    init:
      nodeLabel: "custom.io/device-config"
  env:
    nvidia:
      visibleDevices: "0,1"
      driverCapabilities: "compute"

Signed-off-by: Ben Gutman ben.gutman@gong.io

Moves 15 hardcoded ENV variables to values.yaml for configurability:
- Config-manager init container settings (NODE_LABEL, CONFIG_FILE_*, signals)
- Sidecar container settings (ONESHOT, SEND_SIGNAL, process names)
- Main container NVIDIA runtime settings (VISIBLE_DEVICES, DRIVER_CAPABILITIES, etc.)

All default values match original hardcoded values for 100% backward compatibility.
Enables users to customize paths, labels, and NVIDIA settings for diverse environments.

Chart version bumped to 0.19.0 (minor) as this adds new configuration features.

Signed-off-by: Ben Gutman <98455608+ben-gutman@users.noreply.github.com>
@copy-pr-bot
Copy link

copy-pr-bot bot commented Feb 16, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant