@@ -37,6 +37,7 @@ import (
3737const (
3838 ownerKey = ".metadata.controller.qat"
3939 initcontainerName = "intel-qat-initcontainer"
40+ qatConfigVolume = "intel-qat-config-volume"
4041)
4142
4243var defaultNodeSelector = deployments .QATPluginDaemonSet ().Spec .Template .Spec .NodeSelector
@@ -96,10 +97,7 @@ func (c *controller) NewDaemonSet(rawObj client.Object) *apps.DaemonSet {
9697 daemonSet .Spec .Template .Spec .NodeSelector = devicePlugin .Spec .NodeSelector
9798 }
9899
99- if devicePlugin .Spec .InitImage == "" {
100- daemonSet .Spec .Template .Spec .InitContainers = nil
101- daemonSet .Spec .Template .Spec .Volumes = removeVolume (daemonSet .Spec .Template .Spec .Volumes , "sysfs" )
102- } else {
100+ if devicePlugin .Spec .InitImage != "" {
103101 setInitContainer (& daemonSet .Spec .Template .Spec , devicePlugin .Spec )
104102 }
105103
@@ -129,7 +127,7 @@ func (c *controller) UpdateDaemonSet(rawObj client.Object, ds *apps.DaemonSet) (
129127 if ds .Spec .Template .Spec .InitContainers != nil {
130128 ds .Spec .Template .Spec .InitContainers = nil
131129 ds .Spec .Template .Spec .Volumes = removeVolume (ds .Spec .Template .Spec .Volumes , "sysfs" )
132- ds .Spec .Template .Spec .Volumes = removeVolume (ds .Spec .Template .Spec .Volumes , "qat-config" )
130+ ds .Spec .Template .Spec .Volumes = removeVolume (ds .Spec .Template .Spec .Volumes , qatConfigVolume )
133131 updated = true
134132 }
135133 } else {
@@ -220,7 +218,7 @@ func setInitContainer(dsSpec *v1.PodSpec, dpSpec devicepluginv1.QatDevicePluginS
220218 {
221219 Image : dpSpec .InitImage ,
222220 ImagePullPolicy : "IfNotPresent" ,
223- Name : "init-sriov-numvfs" ,
221+ Name : initcontainerName ,
224222 Env : []v1.EnvVar {
225223 {
226224 Name : "ENABLED_QAT_PF_PCIIDS" ,
@@ -254,20 +252,35 @@ func setInitContainer(dsSpec *v1.PodSpec, dpSpec devicepluginv1.QatDevicePluginS
254252 mode := int32 (0440 )
255253
256254 if dpSpec .ProvisioningConfig != "" {
257- dsSpec . Volumes = append ( dsSpec . Volumes , v1.Volume {
258- Name : "qat-config" ,
255+ qatVol := v1.Volume {
256+ Name : qatConfigVolume ,
259257 VolumeSource : v1.VolumeSource {
260258 ConfigMap : & v1.ConfigMapVolumeSource {
261259 LocalObjectReference : v1.LocalObjectReference {Name : dpSpec .ProvisioningConfig },
262260 DefaultMode : & mode ,
263261 },
264262 },
265- })
263+ }
264+
265+ volumeUpdated := false
266+
267+ // update ProvisioningConfig volume
268+ for idx , vol := range dsSpec .Volumes {
269+ if vol .Name == qatConfigVolume {
270+ dsSpec .Volumes [idx ] = qatVol
271+ volumeUpdated = true
272+ }
273+ }
274+
275+ // or add if it's completely missing
276+ if ! volumeUpdated {
277+ dsSpec .Volumes = append (dsSpec .Volumes , qatVol )
278+ }
266279
267280 for i , initcontainer := range dsSpec .InitContainers {
268281 if initcontainer .Name == initcontainerName {
269282 dsSpec .InitContainers [i ].VolumeMounts = append (dsSpec .InitContainers [i ].VolumeMounts , v1.VolumeMount {
270- Name : "qat-config" ,
283+ Name : qatConfigVolume ,
271284 MountPath : "/qat-init/conf" ,
272285 })
273286 }
0 commit comments