@@ -182,30 +182,17 @@ func getOperatorConfig(kClient runtimeclient.Client) (*sriovnetworkv1.SriovOpera
182182 return defaultConfig , nil
183183}
184184
185- func initFeatureGates (kClient runtimeclient. Client ) (featuregate.FeatureGate , error ) {
185+ func initFeatureGates (defaultConfig * sriovnetworkv1. SriovOperatorConfig ) (featuregate.FeatureGate , error ) {
186186 fnLogger := log .Log .WithName ("initFeatureGates" )
187- // Init feature gates once to prevent race conditions.
188- defaultConfig , err := getOperatorConfig (kClient )
189- if err != nil {
190- fnLogger .Error (err , "Failed to get default SriovOperatorConfig object" )
191- return nil , err
192- }
193187 featureGates := featuregate .New ()
194188 featureGates .Init (defaultConfig .Spec .FeatureGates )
195189 fnLogger .Info ("Enabled featureGates" , "featureGates" , featureGates .String ())
196190
197191 return featureGates , nil
198192}
199193
200- func initLogLevel (kClient runtimeclient. Client ) error {
194+ func initLogLevel (defaultConfig * sriovnetworkv1. SriovOperatorConfig ) error {
201195 fnLogger := log .Log .WithName ("initLogLevel" )
202- // Init feature gates once to prevent race conditions.
203- defaultConfig , err := getOperatorConfig (kClient )
204- if err != nil {
205- fnLogger .Error (err , "Failed to get default SriovOperatorConfig object" )
206- return err
207- }
208- fnLogger .V (2 ).Info ("DEBUG" , defaultConfig )
209196 snolog .SetLogLevel (defaultConfig .Spec .LogLevel )
210197 fnLogger .V (2 ).Info ("logLevel sets" , "logLevel" , defaultConfig .Spec .LogLevel )
211198 return nil
@@ -292,17 +279,28 @@ func runStartCmd(cmd *cobra.Command, args []string) error {
292279 return err
293280 }
294281
295- fg , err := initFeatureGates (kClient )
282+ operatorConfig , err := getOperatorConfig (kClient )
283+ if err != nil {
284+ setupLog .Error (err , "Failed to get operator config object" )
285+ return err
286+ }
287+
288+ // init feature gates
289+ fg , err := initFeatureGates (operatorConfig )
296290 if err != nil {
297291 setupLog .Error (err , "failed to initialize feature gates" )
298292 return err
299293 }
300294
301- if err := initLogLevel (kClient ); err != nil {
295+ // init log level
296+ if err := initLogLevel (operatorConfig ); err != nil {
302297 setupLog .Error (err , "failed to initialize log level" )
303298 return err
304299 }
305300
301+ // init disable drain
302+ vars .DisableDrain = operatorConfig .Spec .DisableDrain
303+
306304 // Init manager
307305 setupLog .V (0 ).Info ("Starting SR-IOV Network Config Daemon" )
308306 nodeStateSelector , err := fields .ParseSelector (fmt .Sprintf ("metadata.name=%s,metadata.namespace=%s" , vars .NodeName , vars .Namespace ))
0 commit comments