Skip to content

Commit 602cb65

Browse files
committed
refactor: unify names in informer-related code
1 parent 6fe4a71 commit 602cb65

File tree

1 file changed

+44
-34
lines changed

1 file changed

+44
-34
lines changed

pkg/start/start.go

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@ import (
1313
"time"
1414

1515
"github.com/google/uuid"
16-
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
1716
v1 "k8s.io/api/core/v1"
1817
apierrors "k8s.io/apimachinery/pkg/api/errors"
1918
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2019
"k8s.io/apimachinery/pkg/fields"
2120
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
2221
"k8s.io/apimachinery/pkg/util/sets"
2322
"k8s.io/apimachinery/pkg/util/wait"
24-
"k8s.io/client-go/informers"
23+
coreinformers "k8s.io/client-go/informers"
2524
"k8s.io/client-go/kubernetes"
2625
"k8s.io/client-go/kubernetes/scheme"
2726
coreclientsetv1 "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -35,9 +34,10 @@ import (
3534

3635
configv1 "github.com/openshift/api/config/v1"
3736
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"
3939
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"
4141
"github.com/openshift/library-go/pkg/config/clusterstatus"
4242
libgoleaderelection "github.com/openshift/library-go/pkg/config/leaderelection"
4343

@@ -255,13 +255,13 @@ func (o *Options) run(ctx context.Context, controllerCtx *Context, lock resource
255255

256256
informersDone := postMainContext.Done()
257257
// FIXME: would be nice if there was a way to collect these.
258-
controllerCtx.CVInformerFactory.Start(informersDone)
258+
controllerCtx.ClusterVersionInformerFactory.Start(informersDone)
259259
controllerCtx.OpenshiftConfigInformerFactory.Start(informersDone)
260260
controllerCtx.OpenshiftConfigManagedInformerFactory.Start(informersDone)
261-
controllerCtx.InformerFactory.Start(informersDone)
261+
controllerCtx.ConfigInformerFactory.Start(informersDone)
262262
controllerCtx.OperatorInformerFactory.Start(informersDone)
263263

264-
allSynced := controllerCtx.CVInformerFactory.WaitForCacheSync(informersDone)
264+
allSynced := controllerCtx.ClusterVersionInformerFactory.WaitForCacheSync(informersDone)
265265
for _, synced := range allSynced {
266266
if !synced {
267267
klog.Fatalf("Caches never synchronized: %v", postMainContext.Err())
@@ -489,11 +489,21 @@ type Context struct {
489489
AutoUpdate *autoupdate.Controller
490490
StopOnFeatureGateChange *featuregates.ChangeStopper
491491

492-
CVInformerFactory externalversions.SharedInformerFactory
493-
OpenshiftConfigInformerFactory informers.SharedInformerFactory
494-
OpenshiftConfigManagedInformerFactory informers.SharedInformerFactory
495-
InformerFactory externalversions.SharedInformerFactory
496-
OperatorInformerFactory operatorexternalversions.SharedInformerFactory
492+
// ClusterVersionInformerFactory 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
497507

498508
fgLister configlistersv1.FeatureGateLister
499509
}
@@ -503,20 +513,20 @@ type Context struct {
503513
func (o *Options) NewControllerContext(cb *ClientBuilder) (*Context, error) {
504514
client := cb.ClientOrDie("shared-informer")
505515
kubeClient := cb.KubeClientOrDie(internal.ConfigNamespace, useProtobuf)
506-
operatorClient := cb.OperatorClientOrDie("operator-client")
516+
openshiftConfigInformerFactory := coreinformers.NewSharedInformerFactoryWithOptions(kubeClient, resyncPeriod(o.ResyncInterval), coreinformers.WithNamespace(internal.ConfigNamespace))
517+
openshiftConfigManagedInformerFactory := coreinformers.NewSharedInformerFactoryWithOptions(kubeClient, resyncPeriod(o.ResyncInterval), coreinformers.WithNamespace(internal.ConfigManagedNamespace))
507518

508-
cvInformer := externalversions.NewFilteredSharedInformerFactory(client, resyncPeriod(o.ResyncInterval), "", func(opts *metav1.ListOptions) {
519+
clusterVersionConfigInformerFactory := configinformers.NewFilteredSharedInformerFactory(client, resyncPeriod(o.ResyncInterval), "", func(opts *metav1.ListOptions) {
509520
opts.FieldSelector = fmt.Sprintf("metadata.name=%s", o.Name)
510521
})
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) {
516-
opts.FieldSelector = fields.OneTermEqualSelector("metadata.name", configuration.ClusterVersionOperatorConfigurationName).String()
517-
}))
522+
configInformerFactory := configinformers.NewSharedInformerFactory(client, resyncPeriod(o.ResyncInterval))
518523

519-
coInformer := sharedInformers.Config().V1().ClusterOperators()
524+
operatorClient := cb.OperatorClientOrDie("operator-client")
525+
filterByName := func(opts *metav1.ListOptions) {
526+
opts.FieldSelector = fields.OneTermEqualSelector("metadata.name", configuration.ClusterVersionOperatorConfigurationName).String()
527+
}
528+
operatorInformerFactory := operatorinformers.NewSharedInformerFactoryWithOptions(operatorClient, o.ResyncInterval, operatorinformers.WithTweakListOptions(filterByName))
529+
coInformer := clusterVersionConfigInformerFactory.Config().V1().ClusterOperators()
520530

521531
cvoKubeClient := cb.KubeClientOrDie(o.Namespace, useProtobuf)
522532
o.PromQLTarget.KubeClient = cvoKubeClient
@@ -527,11 +537,11 @@ func (o *Options) NewControllerContext(cb *ClientBuilder) (*Context, error) {
527537
o.ReleaseImage,
528538
o.PayloadOverride,
529539
resyncPeriod(o.ResyncInterval),
530-
cvInformer.Config().V1().ClusterVersions(),
540+
clusterVersionConfigInformerFactory.Config().V1().ClusterVersions(),
531541
coInformer,
532-
openshiftConfigInformer.Core().V1().ConfigMaps(),
533-
openshiftConfigManagedInformer.Core().V1().ConfigMaps(),
534-
sharedInformers.Config().V1().Proxies(),
542+
openshiftConfigInformerFactory.Core().V1().ConfigMaps(),
543+
openshiftConfigManagedInformerFactory.Core().V1().ConfigMaps(),
544+
configInformerFactory.Config().V1().Proxies(),
535545
operatorInformerFactory,
536546
cb.ClientOrDie(o.Namespace),
537547
cvoKubeClient,
@@ -548,28 +558,28 @@ func (o *Options) NewControllerContext(cb *ClientBuilder) (*Context, error) {
548558
return nil, err
549559
}
550560

551-
featureChangeStopper, err := featuregates.NewChangeStopper(sharedInformers.Config().V1().FeatureGates())
561+
featureChangeStopper, err := featuregates.NewChangeStopper(configInformerFactory.Config().V1().FeatureGates())
552562
if err != nil {
553563
return nil, err
554564
}
555565

556566
ctx := &Context{
557-
CVInformerFactory: cvInformer,
558-
OpenshiftConfigInformerFactory: openshiftConfigInformer,
559-
OpenshiftConfigManagedInformerFactory: openshiftConfigManagedInformer,
560-
InformerFactory: sharedInformers,
567+
ClusterVersionInformerFactory: clusterVersionConfigInformerFactory,
568+
OpenshiftConfigInformerFactory: openshiftConfigInformerFactory,
569+
OpenshiftConfigManagedInformerFactory: openshiftConfigManagedInformerFactory,
570+
ConfigInformerFactory: configInformerFactory,
561571
OperatorInformerFactory: operatorInformerFactory,
562572
CVO: cvo,
563573
StopOnFeatureGateChange: featureChangeStopper,
564574

565-
fgLister: sharedInformers.Config().V1().FeatureGates().Lister(),
575+
fgLister: configInformerFactory.Config().V1().FeatureGates().Lister(),
566576
}
567577

568578
if o.EnableAutoUpdate {
569579
ctx.AutoUpdate, err = autoupdate.New(
570580
o.Namespace, o.Name,
571-
cvInformer.Config().V1().ClusterVersions(),
572-
sharedInformers.Config().V1().ClusterOperators(),
581+
clusterVersionConfigInformerFactory.Config().V1().ClusterVersions(),
582+
configInformerFactory.Config().V1().ClusterOperators(),
573583
cb.ClientOrDie(o.Namespace),
574584
cb.KubeClientOrDie(o.Namespace),
575585
)

0 commit comments

Comments
 (0)