@@ -133,9 +133,9 @@ type Controller struct {
133133
134134 fgHandler ctrlcommon.FeatureGatesHandler
135135
136- queue workqueue.TypedRateLimitingInterface [string ]
137- imgQueue workqueue.TypedRateLimitingInterface [string ]
138- // criocpQueue workqueue.TypedRateLimitingInterface[string]
136+ queue workqueue.TypedRateLimitingInterface [string ]
137+ imgQueue workqueue.TypedRateLimitingInterface [string ]
138+ criocpQueue workqueue.TypedRateLimitingInterface [string ]
139139}
140140
141141// New returns a new container runtime config controller
@@ -168,7 +168,8 @@ func New(
168168 queue : workqueue .NewTypedRateLimitingQueueWithConfig (
169169 workqueue .DefaultTypedControllerRateLimiter [string ](),
170170 workqueue.TypedRateLimitingQueueConfig [string ]{Name : "machineconfigcontroller-containerruntimeconfigcontroller" }),
171- imgQueue : workqueue .NewTypedRateLimitingQueue (workqueue .DefaultTypedControllerRateLimiter [string ]()),
171+ imgQueue : workqueue .NewTypedRateLimitingQueue (workqueue .DefaultTypedControllerRateLimiter [string ]()),
172+ criocpQueue : workqueue .NewTypedRateLimitingQueue (workqueue .DefaultTypedControllerRateLimiter [string ]()),
172173 }
173174
174175 mcrInformer .Informer ().AddEventHandler (cache.ResourceEventHandlerFuncs {
@@ -203,7 +204,7 @@ func New(
203204
204205 ctrl .syncHandler = ctrl .syncContainerRuntimeConfig
205206 ctrl .syncImgHandler = ctrl .syncImageConfig
206- // ctrl.syncCRIOCPHandler = ctrl.syncCRIOCredentialProviderConfig
207+ ctrl .syncCRIOCPHandler = ctrl .syncCRIOCredentialProviderConfig
207208 ctrl .enqueueContainerRuntimeConfig = ctrl .enqueue
208209
209210 ctrl .mcpLister = mcpInformer .Lister ()
@@ -243,7 +244,7 @@ func (ctrl *Controller) Run(workers int, stopCh <-chan struct{}) {
243244 defer utilruntime .HandleCrash ()
244245 defer ctrl .queue .ShutDown ()
245246 defer ctrl .imgQueue .ShutDown ()
246- // defer ctrl.criocpQueue.ShutDown()
247+ defer ctrl .criocpQueue .ShutDown ()
247248 listerCaches := []cache.InformerSynced {ctrl .mcpListerSynced , ctrl .mccrListerSynced , ctrl .ccListerSynced ,
248249 ctrl .imgListerSynced , ctrl .icspListerSynced , ctrl .idmsListerSynced , ctrl .itmsListerSynced , ctrl .clusterVersionListerSynced }
249250
@@ -259,7 +260,9 @@ func (ctrl *Controller) Run(workers int, stopCh <-chan struct{}) {
259260 klog .Info ("added CRIOCredentialProviderConfig observers with CRIOCredentialProviderConfig featuregate enabled" )
260261 }
261262
262- ctrl .configInformerFactory .Start (stopCh )
263+ if ctrl .policyInformerFactoryAdded || ctrl .criocpInformerFactoryAdded {
264+ ctrl .configInformerFactory .Start (stopCh )
265+ }
263266
264267 if ctrl .policyInformerFactoryAdded {
265268 listerCaches = append (listerCaches , ctrl .clusterImagePolicyListerSynced , ctrl .imagePolicyListerSynced )
@@ -286,7 +289,7 @@ func (ctrl *Controller) Run(workers int, stopCh <-chan struct{}) {
286289 go wait .Until (ctrl .imgWorker , time .Second , stopCh )
287290
288291 // Just need one worker for the CRIOCredentialProviderConfig
289- // go wait.Until(ctrl.criocpWorker, time.Second, stopCh)
292+ go wait .Until (ctrl .criocpWorker , time .Second , stopCh )
290293
291294 <- stopCh
292295}
@@ -361,18 +364,18 @@ func (ctrl *Controller) addCRIOCPObservers() {
361364}
362365
363366func (ctrl * Controller ) criocpConfAdded (_ interface {}) {
364- ctrl .imgQueue .Add ("openshift-config" )
365- // ctrl.criocpQueue.Add("openshift-config")
367+ // ctrl.imgQueue.Add("openshift-config")
368+ ctrl .criocpQueue .Add ("openshift-config" )
366369}
367370
368371func (ctrl * Controller ) criocpConfUpdated (_ , _ interface {}) {
369- ctrl .imgQueue .Add ("openshift-config" )
370- // ctrl.criocpQueue.Add("openshift-config")
372+ // ctrl.imgQueue.Add("openshift-config")
373+ ctrl .criocpQueue .Add ("openshift-config" )
371374}
372375
373376func (ctrl * Controller ) criocpConfDeleted (_ interface {}) {
374- ctrl .imgQueue .Add ("openshift-config" )
375- // ctrl.criocpQueue.Add("openshift-config")
377+ // ctrl.imgQueue.Add("openshift-config")
378+ ctrl .criocpQueue .Add ("openshift-config" )
376379}
377380
378381func (ctrl * Controller ) addImagePolicyObservers () {
@@ -506,10 +509,10 @@ func (ctrl *Controller) imgWorker() {
506509 }
507510}
508511
509- // func (ctrl *Controller) criocpWorker() {
510- // for ctrl.processNextCRIOCPWorkItem() {
511- // }
512- // }
512+ func (ctrl * Controller ) criocpWorker () {
513+ for ctrl .processNextCRIOCPWorkItem () {
514+ }
515+ }
513516
514517func (ctrl * Controller ) processNextWorkItem () bool {
515518 key , quit := ctrl .queue .Get ()
@@ -537,18 +540,18 @@ func (ctrl *Controller) processNextImgWorkItem() bool {
537540 return true
538541}
539542
540- // func (ctrl *Controller) processNextCRIOCPWorkItem() bool {
541- // key, quit := ctrl.criocpQueue.Get()
542- // if quit {
543- // return false
544- // }
545- // defer ctrl.criocpQueue.Done(key)
543+ func (ctrl * Controller ) processNextCRIOCPWorkItem () bool {
544+ key , quit := ctrl .criocpQueue .Get ()
545+ if quit {
546+ return false
547+ }
548+ defer ctrl .criocpQueue .Done (key )
546549
547- // err := ctrl.syncCRIOCPHandler(key)
548- // ctrl.handleCRIOCPErr(err, key)
550+ err := ctrl .syncCRIOCPHandler (key )
551+ ctrl .handleCRIOCPErr (err , key )
549552
550- // return true
551- // }
553+ return true
554+ }
552555
553556func (ctrl * Controller ) handleErr (err error , key string ) {
554557 if err == nil {
@@ -586,23 +589,23 @@ func (ctrl *Controller) handleImgErr(err error, key string) {
586589 ctrl .imgQueue .AddAfter (key , 1 * time .Minute )
587590}
588591
589- // func (ctrl *Controller) handleCRIOCPErr(err error, key string) {
590- // if err == nil {
591- // ctrl.criocpQueue.Forget(key)
592- // return
593- // }
592+ func (ctrl * Controller ) handleCRIOCPErr (err error , key string ) {
593+ if err == nil {
594+ ctrl .criocpQueue .Forget (key )
595+ return
596+ }
594597
595- // if ctrl.criocpQueue.NumRequeues(key) < maxRetries {
596- // klog.V(2).Infof("Error syncing CRIOCredentialProviderConfig %v: %v", key, err)
597- // ctrl.criocpQueue.AddRateLimited(key)
598- // return
599- // }
598+ if ctrl .criocpQueue .NumRequeues (key ) < maxRetries {
599+ klog .V (2 ).Infof ("Error syncing CRIOCredentialProviderConfig %v: %v" , key , err )
600+ ctrl .criocpQueue .AddRateLimited (key )
601+ return
602+ }
600603
601- // utilruntime.HandleError(err)
602- // klog.V(2).Infof("Dropping CRIOCredentialProviderConfig %q out of the queue: %v", key, err)
603- // ctrl.criocpQueue.Forget(key)
604- // ctrl.criocpQueue.AddAfter(key, 1*time.Minute)
605- // }
604+ utilruntime .HandleError (err )
605+ klog .V (2 ).Infof ("Dropping CRIOCredentialProviderConfig %q out of the queue: %v" , key , err )
606+ ctrl .criocpQueue .Forget (key )
607+ ctrl .criocpQueue .AddAfter (key , 1 * time .Minute )
608+ }
606609
607610// generateOriginalContainerRuntimeConfigs returns rendered default storage, registries and policy config files
608611func generateOriginalContainerRuntimeConfigs (templateDir string , cc * mcfgv1.ControllerConfig , role string ) (* ign3types.File , * ign3types.File , * ign3types.File , error ) {
@@ -1110,14 +1113,14 @@ func (ctrl *Controller) syncImageConfig(key string) error {
11101113 }
11111114 }
11121115
1113- if ctrl .addedCRIOCPObservers {
1114- crioCredentialProviderConfig , err = ctrl .criocpLister .Get ("cluster" )
1115- if err != nil && errors .IsNotFound (err ) {
1116- crioCredentialProviderConfig = & apicfgv1alpha1.CRIOCredentialProviderConfig {}
1117- } else if err != nil {
1118- return nil
1119- }
1120- }
1116+ // if ctrl.addedCRIOCPObservers {
1117+ // crioCredentialProviderConfig, err = ctrl.criocpLister.Get("cluster")
1118+ // if err != nil && errors.IsNotFound(err) {
1119+ // crioCredentialProviderConfig = &apicfgv1alpha1.CRIOCredentialProviderConfig{}
1120+ // } else if err != nil {
1121+ // return nil
1122+ // }
1123+ // }
11211124
11221125 if clusterVersionCfg != nil {
11231126 // The possibility of releaseImage being "" is very unlikely, will only happen if clusterVersionCfg is nil. If this happens
@@ -1206,44 +1209,44 @@ func (ctrl *Controller) syncImageConfig(key string) error {
12061209 return nil
12071210}
12081211
1209- // func (ctrl *Controller) syncCRIOCredentialProviderConfig(key string) error {
1210- // startTime := time.Now()
1211- // klog.V(4) .Infof("Started syncing CRIOCredentialProvider config %q (%v)", key, startTime)
1212- // defer func() {
1213- // klog.V(4).Infof("Finished syncing CRIOCredentialProvider config %q (%v)", key, time.Since(startTime))
1214- // }()
1215-
1216- // // Get ControllerConfig
1217- // controllerConfig, err := ctrl.ccLister.Get(ctrlcommon.ControllerConfigName)
1218- // if err != nil {
1219- // return fmt.Errorf("could not get ControllerConfig %w", err)
1220- // }
1221-
1222- // sel, err := metav1.LabelSelectorAsSelector(metav1.AddLabelToSelector(&metav1.LabelSelector{}, builtInLabelKey, ""))
1223- // if err != nil {
1224- // return err
1225- // }
1226- // // Find all the MCO built in MachineConfigPools
1227- // mcpPools, err := ctrl.mcpLister.List(sel)
1228- // if err != nil {
1229- // return err
1230- // }
1231-
1232- // for _, pool := range mcpPools {
1233- // role := pool.Name
1234- // credProviderConfigIgn, err := generateOriginalCredentialProviderConfig(ctrl.templatesDir, controllerConfig, role)
1235- // if err != nil {
1236- // return fmt.Errorf("could not generate original CRIO credential provider config for role %s: %w", role, err)
1237- // }
1238- // contents, err := ctrlcommon.DecodeIgnitionFileContents(credProviderConfigIgn.Contents.Source, credProviderConfigIgn.Contents.Compression)
1239- // if err != nil {
1240- // return fmt.Errorf("could not decode CRIO credential provider config for role %s: %w", role, err)
1241- // }
1242- // klog.Infof("Decoded CRIO credential provider config contents successfully for role %s: %s", role, string(contents))
1243- // }
1244-
1245- // return nil
1246- // }
1212+ func (ctrl * Controller ) syncCRIOCredentialProviderConfig (key string ) error {
1213+ startTime := time .Now ()
1214+ klog .Infof ("Started syncing CRIOCredentialProvider config %q (%v)" , key , startTime )
1215+ defer func () {
1216+ klog .V (4 ).Infof ("Finished syncing CRIOCredentialProvider config %q (%v)" , key , time .Since (startTime ))
1217+ }()
1218+
1219+ // // Get ControllerConfig
1220+ // controllerConfig, err := ctrl.ccLister.Get(ctrlcommon.ControllerConfigName)
1221+ // if err != nil {
1222+ // return fmt.Errorf("could not get ControllerConfig %w", err)
1223+ // }
1224+
1225+ // sel, err := metav1.LabelSelectorAsSelector(metav1.AddLabelToSelector(&metav1.LabelSelector{}, builtInLabelKey, ""))
1226+ // if err != nil {
1227+ // return err
1228+ // }
1229+ // // Find all the MCO built in MachineConfigPools
1230+ // mcpPools, err := ctrl.mcpLister.List(sel)
1231+ // if err != nil {
1232+ // return err
1233+ // }
1234+
1235+ // for _, pool := range mcpPools {
1236+ // role := pool.Name
1237+ // credProviderConfigIgn, err := generateOriginalCredentialProviderConfig(ctrl.templatesDir, controllerConfig, role)
1238+ // if err != nil {
1239+ // return fmt.Errorf("could not generate original CRIO credential provider config for role %s: %w", role, err)
1240+ // }
1241+ // contents, err := ctrlcommon.DecodeIgnitionFileContents(credProviderConfigIgn.Contents.Source, credProviderConfigIgn.Contents.Compression)
1242+ // if err != nil {
1243+ // return fmt.Errorf("could not decode CRIO credential provider config for role %s: %w", role, err)
1244+ // }
1245+ // klog.Infof("Decoded CRIO credential provider config contents successfully for role %s: %s", role, string(contents))
1246+ // }
1247+
1248+ return nil
1249+ }
12471250
12481251func (ctrl * Controller ) syncIgnitionConfig (managedKey string , ignFile * ign3types.Config , pool * mcfgv1.MachineConfigPool , ownerRef metav1.OwnerReference ) (bool , error ) {
12491252 rawIgn , err := json .Marshal (ignFile )
0 commit comments