Files
cozystack/packages/system/gpu-operator/templates/kernel-module-config.yaml
Aleksei Sviridkin a60c2e6e68 fix(gpu-operator): name kernel-module ConfigMap after the driver reference
The wrapper chart named the kernel-module ConfigMap from its own
kernelModuleConfig.name key, while the NVIDIA driver mounts the ConfigMap
referenced by gpu-operator.driver.kernelModuleConfig.name. The two keys
defaulted to the same value but were never linked, so overriding only the
driver reference left the driver pointing at a ConfigMap that is never
rendered and the NVreg_NvLinkDisable=1 parameters were silently dropped.

Derive the ConfigMap name from the driver's effective reference, falling
back to the wrapper key when unset, so the rendered ConfigMap and the
driver reference can no longer diverge. Add helm-unittest coverage for the
rendered name, namespace, data key, and the create=false no-op.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
2026-06-02 14:34:02 +03:00

26 lines
1.0 KiB
YAML

{{- if .Values.kernelModuleConfig.create }}
{{- /*
Name the ConfigMap after the driver's effective kernelModuleConfig
reference (gpu-operator.driver.kernelModuleConfig.name) — that is the
name the operator mounts into the driver pod. Falling back to the
wrapper's own kernelModuleConfig.name keeps the two from ever diverging:
overriding only the driver reference would otherwise leave the driver
pointing at a ConfigMap that is never rendered.
*/}}
{{- $gpuOperator := index .Values "gpu-operator" | default dict -}}
{{- $driver := index $gpuOperator "driver" | default dict -}}
{{- $driverKmc := index $driver "kernelModuleConfig" | default dict -}}
{{- $name := $driverKmc.name | default .Values.kernelModuleConfig.name -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/name: gpu-operator
data:
nvidia.conf: |
{{- .Values.kernelModuleConfig.content | nindent 4 }}
{{- end }}