@@ -18,6 +18,8 @@ import (
18
18
logf "sigs.k8s.io/controller-runtime/pkg/log"
19
19
)
20
20
21
+ const allowedTopologyEnvVarName = "ALLOWED_TOPOLOGIES"
22
+
21
23
var nodeConfig lvm.LvmNodesDevicePvVgConfig
22
24
var appInstances []* k8stest.FioApplication
23
25
var targetNode , key string
@@ -243,11 +245,13 @@ func customTopologyWfcTest(decor string, engine common.OpenEbsEngine, volType co
243
245
label := fmt .Sprintf ("%s=%s" , productConfig .LocalEngineComponentPodLabelKey ,
244
246
productConfig .LvmEngineComponentDsPodLabelValue )
245
247
246
- // Restart lvm daemonset pods after applying node label with key
247
- // so that csinode kubernetes object for local.csi.openebs.io plugin driver picks
248
- // that particular topology key for scheduling volume
249
- err = k8stest .DeletePodsByLabel (label , common .NSOpenEBS ())
250
- Expect (err ).To (BeNil (), "failed to restart lvm daemonset pods with label %s" , label )
248
+ updatedEnvVarValue := fmt .Sprintf ("kubernetes.io/hostname,%s" , key )
249
+
250
+ // we have to set env in the daemonset yaml for lvm-local like this
251
+ // kubectl set env daemonset/openebs-lvm-localpv-node -n openebs ALLOWED_TOPOLOGIES=kubernetes.io/hostname,key
252
+ // this updation will automatically restart daemonset pods
253
+ _ , err = k8stest .UpdateDemonsetContainerEnv (productConfig .LvmEngineDaemonSetName , productConfig .LvmEnginePluginContainerName , common .NSOpenEBS (), allowedTopologyEnvVarName , updatedEnvVarValue )
254
+ Expect (err ).To (BeNil (), "failed to update env values" )
251
255
252
256
// verify lvm daemonset to be ready
253
257
Eventually (func () bool {
0 commit comments