diff --git a/pkg/plugins/generic/generic_plugin.go b/pkg/plugins/generic/generic_plugin.go index c5b8c35963..db978d6911 100644 --- a/pkg/plugins/generic/generic_plugin.go +++ b/pkg/plugins/generic/generic_plugin.go @@ -194,17 +194,20 @@ func needDrainNode(desired sriovnetworkv1.Interfaces, current sriovnetworkv1.Int for _, ifaceStatus := range current { configured := false for _, iface := range desired { - if iface.PciAddress == ifaceStatus.PciAddress { - // TODO: no need to perform further checks if ifaceStatus.NumVfs equals to 0 - // once https://github.com/kubernetes/kubernetes/issues/109595 will be fixed - configured = true - if utils.NeedUpdate(&iface, &ifaceStatus) { - glog.V(2).Infof("generic-plugin needDrainNode(): need drain, PF %s request update", iface.PciAddress) - needDrain = true - return + if ifaceStatus.NumVfs != 0 { + if iface.PciAddress == ifaceStatus.PciAddress { + configured = true + if utils.NeedUpdate(&iface, &ifaceStatus) { + glog.V(2).Infof("generic-plugin needDrainNode(): need drain, PF %s request update", iface.PciAddress) + needDrain = true + return + } + glog.V(2).Infof("generic-plugin needDrainNode(): no need drain, expect NumVfs %v, current NumVfs %v", iface.NumVfs, ifaceStatus.NumVfs) } - glog.V(2).Infof("generic-plugin needDrainNode(): no need drain, expect NumVfs %v, current NumVfs %v", iface.NumVfs, ifaceStatus.NumVfs) + } else { + glog.V(2).Infof("generic-plugin needDrainNode(): no need drain, current NumVfs is 0") } + } if !configured && ifaceStatus.NumVfs > 0 { glog.V(2).Infof("generic-plugin needDrainNode(): need drain, %v needs to be reset", ifaceStatus)