From 59c4bf5bbf54d706c8aa27cf1e5f690a752cab8f Mon Sep 17 00:00:00 2001 From: guptaNswati Date: Tue, 29 Oct 2024 21:52:48 +0000 Subject: [PATCH] mount imex nodes config --- assets/state-driver/0500_daemonset.yaml | 27 ++++++++++++++++++++++ controllers/object_controls.go | 7 ++++++ manifests/state-driver/0500_daemonset.yaml | 27 ++++++++++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/assets/state-driver/0500_daemonset.yaml b/assets/state-driver/0500_daemonset.yaml index 13f83884a..8d014fe91 100644 --- a/assets/state-driver/0500_daemonset.yaml +++ b/assets/state-driver/0500_daemonset.yaml @@ -88,6 +88,25 @@ spec: - name: run-mellanox-drivers mountPath: /run/mellanox/drivers mountPropagation: HostToContainer + - name: check-imex-config + image: "FILLED BY THE OPERATOR" + command: ["/bin/bash", "-c"] + args: + - | + IMEX_NODES_CONFIG_FILE=/etc/nvidia-imex/nodes_config.cfg + if [[ -f /host/${IMEX_NODES_CONFIG_FILE} ]]; then + echo "Copying host IMEX nodes config" + cp /host/${IMEX_NODES_CONFIG_FILE} ${IMEX_NODES_CONFIG_FILE} + fi + securityContext: + privileged: true + volumeMounts: + - name: host-etc + mountPath: /host/etc + subPath: etc + readOnly: true + - name: imex-config + mountPath: /etc/nvidia-imex containers: - image: "FILLED BY THE OPERATOR" imagePullPolicy: IfNotPresent @@ -132,6 +151,8 @@ spec: mountPath: /sys/module/firmware_class/parameters/path - name: nv-firmware mountPath: /lib/firmware + - name: imex-config + mountPath: /etc/nvidia-imex startupProbe: exec: command: @@ -335,3 +356,9 @@ spec: hostPath: path: /run/nvidia/driver/lib/firmware type: DirectoryOrCreate + - name: host-etc + hostPath: + path: /etc + type: Directory + - name: imex-config + emptyDir: {} diff --git a/controllers/object_controls.go b/controllers/object_controls.go index 2b4a92528..dab526823 100644 --- a/controllers/object_controls.go +++ b/controllers/object_controls.go @@ -3138,6 +3138,13 @@ func transformDriverContainer(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicy if image != "" { driverContainer.Image = image } + // update image for driver IMEX init container + for i, initCtr := range obj.Spec.Template.Spec.InitContainers { + if initCtr.Name == "check-imex-config" { + obj.Spec.Template.Spec.InitContainers[i].Image = image + break + } + } // update image pull policy driverContainer.ImagePullPolicy = gpuv1.ImagePullPolicy(config.Driver.ImagePullPolicy) diff --git a/manifests/state-driver/0500_daemonset.yaml b/manifests/state-driver/0500_daemonset.yaml index 26dfecf15..5c347fcb9 100644 --- a/manifests/state-driver/0500_daemonset.yaml +++ b/manifests/state-driver/0500_daemonset.yaml @@ -178,6 +178,25 @@ spec: - name: run-mellanox-drivers mountPath: /run/mellanox/drivers mountPropagation: HostToContainer + - name: check-imex-config + image: "FILLED BY THE OPERATOR" + command: ["/bin/bash", "-c"] + args: + - | + IMEX_NODES_CONFIG_FILE=/etc/nvidia-imex/nodes_config.cfg + if [[ -f /host/${IMEX_NODES_CONFIG_FILE} ]]; then + echo "Copying host IMEX nodes config" + cp /host/${IMEX_NODES_CONFIG_FILE} ${IMEX_NODES_CONFIG_FILE} + fi + securityContext: + privileged: true + volumeMounts: + - name: host-etc + mountPath: /host/etc + subPath: etc + readOnly: true + - name: imex-config + mountPath: /etc/nvidia-imex containers: - image: {{ .Driver.ImagePath }} imagePullPolicy: {{ default "IfNotPresent" .Driver.Spec.ImagePullPolicy }} @@ -292,6 +311,8 @@ spec: mountPath: /sys/devices/system/memory/auto_online_blocks - name: nv-firmware mountPath: /lib/firmware + - name: imex-config + mountPath: /etc/nvidia-imex {{- if and .AdditionalConfigs .AdditionalConfigs.VolumeMounts }} {{- range .AdditionalConfigs.VolumeMounts }} - name: {{ .Name }} @@ -644,6 +665,12 @@ spec: hostPath: path: /run/nvidia/driver/lib/firmware type: DirectoryOrCreate + - name: host-etc + hostPath: + path: /etc + type: Directory + - name: imex-config + emptyDir: {} {{- if and .AdditionalConfigs .AdditionalConfigs.Volumes }} {{- range .AdditionalConfigs.Volumes }} - name: {{ .Name }}