@@ -99,7 +99,12 @@ func (ctrl *Controller) syncFeatureHandler(key string) error {
99
99
}
100
100
}
101
101
102
- rawCfgIgn , err := generateKubeConfigIgnFromFeatures (cc , ctrl .templatesDir , role , ctrl .featureGateAccess , nodeConfig , apiServer )
102
+ featureGates , err := generateFeatureMap (ctrl .featureGateAccess , openshiftOnlyFeatureGates ... )
103
+ if err != nil {
104
+ return fmt .Errorf ("could not generate features map: %w" , err )
105
+ }
106
+
107
+ rawCfgIgn , err := generateKubeConfigIgnFromFeatures (cc , ctrl .templatesDir , role , featureGates , nodeConfig , apiServer )
103
108
if err != nil {
104
109
return err
105
110
}
@@ -174,8 +179,9 @@ func (ctrl *Controller) deleteFeature(obj interface{}) {
174
179
// generateFeatureMap returns a map of enabled/disabled feature gate selection with exclusion list
175
180
//
176
181
//nolint:gocritic
177
- func generateFeatureMap (featuregateAccess featuregates.FeatureGateAccess , exclusions ... osev1.FeatureGateName ) (* map [string ]bool , error ) {
182
+ func generateFeatureMap (featuregateAccess featuregates.FeatureGateAccess , exclusions ... osev1.FeatureGateName ) (map [string ]bool , error ) {
178
183
rv := make (map [string ]bool )
184
+
179
185
if ! featuregateAccess .AreInitialFeatureGatesObserved () {
180
186
return nil , fmt .Errorf ("initial feature gates are not observed" )
181
187
}
@@ -197,11 +203,11 @@ func generateFeatureMap(featuregateAccess featuregates.FeatureGateAccess, exclus
197
203
for _ , excluded := range exclusions {
198
204
delete (rv , string (excluded ))
199
205
}
200
- return & rv , nil
206
+ return rv , nil
201
207
}
202
208
203
- func generateKubeConfigIgnFromFeatures (cc * mcfgv1.ControllerConfig , templatesDir , role string , featureGateAccess featuregates. FeatureGateAccess , nodeConfig * osev1.Node , apiServer * osev1.APIServer ) ([]byte , error ) {
204
- originalKubeConfig , err := generateOriginalKubeletConfigWithFeatureGates (cc , templatesDir , role , featureGateAccess , apiServer )
209
+ func generateKubeConfigIgnFromFeatures (cc * mcfgv1.ControllerConfig , templatesDir , role string , featureGates map [ string ] bool , nodeConfig * osev1.Node , apiServer * osev1.APIServer ) ([]byte , error ) {
210
+ originalKubeConfig , err := generateOriginalKubeletConfigWithFeatureGates (cc , templatesDir , role , featureGates , apiServer )
205
211
if err != nil {
206
212
return nil , err
207
213
}
@@ -227,12 +233,17 @@ func generateKubeConfigIgnFromFeatures(cc *mcfgv1.ControllerConfig, templatesDir
227
233
func RunFeatureGateBootstrap (templateDir string , featureGateAccess featuregates.FeatureGateAccess , nodeConfig * osev1.Node , controllerConfig * mcfgv1.ControllerConfig , mcpPools []* mcfgv1.MachineConfigPool , apiServer * osev1.APIServer ) ([]* mcfgv1.MachineConfig , error ) {
228
234
machineConfigs := []* mcfgv1.MachineConfig {}
229
235
236
+ featureGates , err := generateFeatureMap (featureGateAccess , openshiftOnlyFeatureGates ... )
237
+ if err != nil {
238
+ return nil , fmt .Errorf ("could not generate features map: %w" , err )
239
+ }
240
+
230
241
for _ , pool := range mcpPools {
231
242
role := pool .Name
232
243
if nodeConfig == nil {
233
244
nodeConfig = createNewDefaultNodeconfig ()
234
245
}
235
- rawCfgIgn , err := generateKubeConfigIgnFromFeatures (controllerConfig , templateDir , role , featureGateAccess , nodeConfig , apiServer )
246
+ rawCfgIgn , err := generateKubeConfigIgnFromFeatures (controllerConfig , templateDir , role , featureGates , nodeConfig , apiServer )
236
247
if err != nil {
237
248
return nil , err
238
249
}
0 commit comments