@@ -13,15 +13,14 @@ import (
13
13
"time"
14
14
15
15
"github.com/google/uuid"
16
- configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
17
16
v1 "k8s.io/api/core/v1"
18
17
apierrors "k8s.io/apimachinery/pkg/api/errors"
19
18
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
20
19
"k8s.io/apimachinery/pkg/fields"
21
20
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
22
21
"k8s.io/apimachinery/pkg/util/sets"
23
22
"k8s.io/apimachinery/pkg/util/wait"
24
- "k8s.io/client-go/informers"
23
+ coreinformers "k8s.io/client-go/informers"
25
24
"k8s.io/client-go/kubernetes"
26
25
"k8s.io/client-go/kubernetes/scheme"
27
26
coreclientsetv1 "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -35,9 +34,10 @@ import (
35
34
36
35
configv1 "github.com/openshift/api/config/v1"
37
36
clientset "github.com/openshift/client-go/config/clientset/versioned"
38
- "github.com/openshift/client-go/config/informers/externalversions"
37
+ configinformers "github.com/openshift/client-go/config/informers/externalversions"
38
+ configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
39
39
operatorclientset "github.com/openshift/client-go/operator/clientset/versioned"
40
- operatorexternalversions "github.com/openshift/client-go/operator/informers/externalversions"
40
+ operatorinformers "github.com/openshift/client-go/operator/informers/externalversions"
41
41
"github.com/openshift/library-go/pkg/config/clusterstatus"
42
42
libgoleaderelection "github.com/openshift/library-go/pkg/config/leaderelection"
43
43
@@ -255,13 +255,13 @@ func (o *Options) run(ctx context.Context, controllerCtx *Context, lock resource
255
255
256
256
informersDone := postMainContext .Done ()
257
257
// FIXME: would be nice if there was a way to collect these.
258
- controllerCtx .CVInformerFactory .Start (informersDone )
258
+ controllerCtx .ClusterVersionInformerFactory .Start (informersDone )
259
259
controllerCtx .OpenshiftConfigInformerFactory .Start (informersDone )
260
260
controllerCtx .OpenshiftConfigManagedInformerFactory .Start (informersDone )
261
- controllerCtx .InformerFactory .Start (informersDone )
261
+ controllerCtx .ConfigInformerFactory .Start (informersDone )
262
262
controllerCtx .OperatorInformerFactory .Start (informersDone )
263
263
264
- allSynced := controllerCtx .CVInformerFactory .WaitForCacheSync (informersDone )
264
+ allSynced := controllerCtx .ClusterVersionInformerFactory .WaitForCacheSync (informersDone )
265
265
for _ , synced := range allSynced {
266
266
if ! synced {
267
267
klog .Fatalf ("Caches never synchronized: %v" , postMainContext .Err ())
@@ -489,11 +489,21 @@ type Context struct {
489
489
AutoUpdate * autoupdate.Controller
490
490
StopOnFeatureGateChange * featuregates.ChangeStopper
491
491
492
- CVInformerFactory externalversions.SharedInformerFactory
493
- OpenshiftConfigInformerFactory informers.SharedInformerFactory
494
- OpenshiftConfigManagedInformerFactory informers.SharedInformerFactory
495
- InformerFactory externalversions.SharedInformerFactory
496
- OperatorInformerFactory operatorexternalversions.SharedInformerFactory
492
+ // CVConfigInformerFactory should be used to get informers / listers for code that works with ClusterVersion resource
493
+ // singleton in the cluster.
494
+ ClusterVersionInformerFactory configinformers.SharedInformerFactory
495
+ // ConfigInformerFactory should be used to get informers / listers for code that works with resources from the
496
+ // config.openshift.io group, _except_ the ClusterVersion resource singleton.
497
+ ConfigInformerFactory configinformers.SharedInformerFactory
498
+ // OpenshiftConfigManagedInformerFactory should be used to get informers / listers for code that works with core k8s
499
+ // resources in the openshift-config namespace.
500
+ OpenshiftConfigInformerFactory coreinformers.SharedInformerFactory
501
+ // OpenshiftConfigManagedInformerFactory should be used to get informers / listers for code that works with core k8s
502
+ // resources in the openshift-config-managed namespace.
503
+ OpenshiftConfigManagedInformerFactory coreinformers.SharedInformerFactory
504
+ // OperatorInformerFactory should be used to get informers / listers for code that works with resources from the
505
+ // operator.openshift.io group
506
+ OperatorInformerFactory operatorinformers.SharedInformerFactory
497
507
498
508
fgLister configlistersv1.FeatureGateLister
499
509
}
@@ -505,18 +515,18 @@ func (o *Options) NewControllerContext(cb *ClientBuilder) (*Context, error) {
505
515
kubeClient := cb .KubeClientOrDie (internal .ConfigNamespace , useProtobuf )
506
516
operatorClient := cb .OperatorClientOrDie ("operator-client" )
507
517
508
- cvInformer := externalversions .NewFilteredSharedInformerFactory (client , resyncPeriod (o .ResyncInterval ), "" , func (opts * metav1.ListOptions ) {
518
+ clusterVersionConfigInformerFactory := configinformers .NewFilteredSharedInformerFactory (client , resyncPeriod (o .ResyncInterval ), "" , func (opts * metav1.ListOptions ) {
509
519
opts .FieldSelector = fmt .Sprintf ("metadata.name=%s" , o .Name )
510
520
})
511
- openshiftConfigInformer := informers . NewSharedInformerFactoryWithOptions ( kubeClient , resyncPeriod (o .ResyncInterval ), informers . WithNamespace ( internal . ConfigNamespace ))
512
- openshiftConfigManagedInformer := informers .NewSharedInformerFactoryWithOptions (kubeClient , resyncPeriod (o .ResyncInterval ), informers .WithNamespace (internal .ConfigManagedNamespace ))
513
- sharedInformers := externalversions . NewSharedInformerFactory ( client , resyncPeriod (o .ResyncInterval ))
514
- operatorInformerFactory := operatorexternalversions .NewSharedInformerFactoryWithOptions (operatorClient , o .ResyncInterval ,
515
- operatorexternalversions .WithTweakListOptions (func (opts * metav1.ListOptions ) {
521
+ configInformerFactory := configinformers . NewSharedInformerFactory ( client , resyncPeriod (o .ResyncInterval ))
522
+ openshiftConfigInformer := coreinformers .NewSharedInformerFactoryWithOptions (kubeClient , resyncPeriod (o .ResyncInterval ), coreinformers .WithNamespace (internal .ConfigNamespace ))
523
+ openshiftConfigManagedInformer := coreinformers . NewSharedInformerFactoryWithOptions ( kubeClient , resyncPeriod (o .ResyncInterval ), coreinformers . WithNamespace ( internal . ConfigManagedNamespace ))
524
+ operatorInformerFactory := operatorinformers .NewSharedInformerFactoryWithOptions (operatorClient , o .ResyncInterval ,
525
+ operatorinformers .WithTweakListOptions (func (opts * metav1.ListOptions ) {
516
526
opts .FieldSelector = fields .OneTermEqualSelector ("metadata.name" , configuration .ClusterVersionOperatorConfigurationName ).String ()
517
527
}))
518
528
519
- coInformer := sharedInformers .Config ().V1 ().ClusterOperators ()
529
+ coInformer := clusterVersionConfigInformerFactory .Config ().V1 ().ClusterOperators ()
520
530
521
531
cvoKubeClient := cb .KubeClientOrDie (o .Namespace , useProtobuf )
522
532
o .PromQLTarget .KubeClient = cvoKubeClient
@@ -527,11 +537,11 @@ func (o *Options) NewControllerContext(cb *ClientBuilder) (*Context, error) {
527
537
o .ReleaseImage ,
528
538
o .PayloadOverride ,
529
539
resyncPeriod (o .ResyncInterval ),
530
- cvInformer .Config ().V1 ().ClusterVersions (),
540
+ clusterVersionConfigInformerFactory .Config ().V1 ().ClusterVersions (),
531
541
coInformer ,
532
542
openshiftConfigInformer .Core ().V1 ().ConfigMaps (),
533
543
openshiftConfigManagedInformer .Core ().V1 ().ConfigMaps (),
534
- sharedInformers .Config ().V1 ().Proxies (),
544
+ configInformerFactory .Config ().V1 ().Proxies (),
535
545
operatorInformerFactory ,
536
546
cb .ClientOrDie (o .Namespace ),
537
547
cvoKubeClient ,
@@ -548,28 +558,28 @@ func (o *Options) NewControllerContext(cb *ClientBuilder) (*Context, error) {
548
558
return nil , err
549
559
}
550
560
551
- featureChangeStopper , err := featuregates .NewChangeStopper (sharedInformers .Config ().V1 ().FeatureGates ())
561
+ featureChangeStopper , err := featuregates .NewChangeStopper (configInformerFactory .Config ().V1 ().FeatureGates ())
552
562
if err != nil {
553
563
return nil , err
554
564
}
555
565
556
566
ctx := & Context {
557
- CVInformerFactory : cvInformer ,
567
+ ClusterVersionInformerFactory : clusterVersionConfigInformerFactory ,
558
568
OpenshiftConfigInformerFactory : openshiftConfigInformer ,
559
569
OpenshiftConfigManagedInformerFactory : openshiftConfigManagedInformer ,
560
- InformerFactory : sharedInformers ,
570
+ ConfigInformerFactory : configInformerFactory ,
561
571
OperatorInformerFactory : operatorInformerFactory ,
562
572
CVO : cvo ,
563
573
StopOnFeatureGateChange : featureChangeStopper ,
564
574
565
- fgLister : sharedInformers .Config ().V1 ().FeatureGates ().Lister (),
575
+ fgLister : configInformerFactory .Config ().V1 ().FeatureGates ().Lister (),
566
576
}
567
577
568
578
if o .EnableAutoUpdate {
569
579
ctx .AutoUpdate , err = autoupdate .New (
570
580
o .Namespace , o .Name ,
571
- cvInformer .Config ().V1 ().ClusterVersions (),
572
- sharedInformers .Config ().V1 ().ClusterOperators (),
581
+ clusterVersionConfigInformerFactory .Config ().V1 ().ClusterVersions (),
582
+ configInformerFactory .Config ().V1 ().ClusterOperators (),
573
583
cb .ClientOrDie (o .Namespace ),
574
584
cb .KubeClientOrDie (o .Namespace ),
575
585
)
0 commit comments