@@ -37,6 +37,7 @@ import (
37
37
const (
38
38
ownerKey = ".metadata.controller.qat"
39
39
initcontainerName = "intel-qat-initcontainer"
40
+ qatConfigVolume = "intel-qat-config-volume"
40
41
)
41
42
42
43
var defaultNodeSelector = deployments .QATPluginDaemonSet ().Spec .Template .Spec .NodeSelector
@@ -96,10 +97,7 @@ func (c *controller) NewDaemonSet(rawObj client.Object) *apps.DaemonSet {
96
97
daemonSet .Spec .Template .Spec .NodeSelector = devicePlugin .Spec .NodeSelector
97
98
}
98
99
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 != "" {
103
101
setInitContainer (& daemonSet .Spec .Template .Spec , devicePlugin .Spec )
104
102
}
105
103
@@ -129,7 +127,7 @@ func (c *controller) UpdateDaemonSet(rawObj client.Object, ds *apps.DaemonSet) (
129
127
if ds .Spec .Template .Spec .InitContainers != nil {
130
128
ds .Spec .Template .Spec .InitContainers = nil
131
129
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 )
133
131
updated = true
134
132
}
135
133
} else {
@@ -220,7 +218,7 @@ func setInitContainer(dsSpec *v1.PodSpec, dpSpec devicepluginv1.QatDevicePluginS
220
218
{
221
219
Image : dpSpec .InitImage ,
222
220
ImagePullPolicy : "IfNotPresent" ,
223
- Name : "init-sriov-numvfs" ,
221
+ Name : initcontainerName ,
224
222
Env : []v1.EnvVar {
225
223
{
226
224
Name : "ENABLED_QAT_PF_PCIIDS" ,
@@ -254,20 +252,35 @@ func setInitContainer(dsSpec *v1.PodSpec, dpSpec devicepluginv1.QatDevicePluginS
254
252
mode := int32 (0440 )
255
253
256
254
if dpSpec .ProvisioningConfig != "" {
257
- dsSpec . Volumes = append ( dsSpec . Volumes , v1.Volume {
258
- Name : "qat-config" ,
255
+ qatVol := v1.Volume {
256
+ Name : qatConfigVolume ,
259
257
VolumeSource : v1.VolumeSource {
260
258
ConfigMap : & v1.ConfigMapVolumeSource {
261
259
LocalObjectReference : v1.LocalObjectReference {Name : dpSpec .ProvisioningConfig },
262
260
DefaultMode : & mode ,
263
261
},
264
262
},
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
+ }
266
279
267
280
for i , initcontainer := range dsSpec .InitContainers {
268
281
if initcontainer .Name == initcontainerName {
269
282
dsSpec .InitContainers [i ].VolumeMounts = append (dsSpec .InitContainers [i ].VolumeMounts , v1.VolumeMount {
270
- Name : "qat-config" ,
283
+ Name : qatConfigVolume ,
271
284
MountPath : "/qat-init/conf" ,
272
285
})
273
286
}
0 commit comments