Skip to content

Commit 91376e1

Browse files
Merge pull request #1985 from vrutkovs/staticpodcontroller-clusterlevel-informer
OCPBUGS-59626: staticpodcontroller: require a separate informer for cluster-level events
2 parents 0e81d05 + b3f222c commit 91376e1

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

pkg/operator/staticpod/controllers.go

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,16 @@ import (
3232
v1 "k8s.io/api/policy/v1"
3333
"k8s.io/apimachinery/pkg/labels"
3434
"k8s.io/apimachinery/pkg/util/errors"
35+
"k8s.io/client-go/informers"
3536
"k8s.io/client-go/kubernetes"
3637
)
3738

3839
type staticPodOperatorControllerBuilder struct {
3940
// clients and related
4041
staticPodOperatorClient v1helpers.StaticPodOperatorClient
4142
kubeClient kubernetes.Interface
42-
kubeInformers v1helpers.KubeInformersForNamespaces
43+
kubeNamespaceInformers v1helpers.KubeInformersForNamespaces
44+
kubeClusterInformers informers.SharedInformerFactory
4345
configInformers externalversions.SharedInformerFactory
4446
clock clock.Clock
4547
eventRecorder events.Recorder
@@ -87,14 +89,16 @@ type staticPodOperatorControllerBuilder struct {
8789
func NewBuilder(
8890
staticPodOperatorClient v1helpers.StaticPodOperatorClient,
8991
kubeClient kubernetes.Interface,
90-
kubeInformers v1helpers.KubeInformersForNamespaces,
92+
kubeNamespaceInformers v1helpers.KubeInformersForNamespaces,
93+
clusterInformers informers.SharedInformerFactory,
9194
configInformers externalversions.SharedInformerFactory,
9295
clock clock.Clock,
9396
) Builder {
9497
return &staticPodOperatorControllerBuilder{
9598
staticPodOperatorClient: staticPodOperatorClient,
9699
kubeClient: kubeClient,
97-
kubeInformers: kubeInformers,
100+
kubeNamespaceInformers: kubeNamespaceInformers,
101+
kubeClusterInformers: clusterInformers,
98102
configInformers: configInformers,
99103
clock: clock,
100104
}
@@ -233,13 +237,13 @@ func (b *staticPodOperatorControllerBuilder) ToControllers() (manager.Controller
233237

234238
// ensure that all controllers that need the secret/configmap informer-based clients
235239
// need to wait for their synchronization before starting using WithInformer
236-
configMapClient := v1helpers.CachedConfigMapGetter(b.kubeClient.CoreV1(), b.kubeInformers)
237-
secretClient := v1helpers.CachedSecretGetter(b.kubeClient.CoreV1(), b.kubeInformers)
240+
configMapClient := v1helpers.CachedConfigMapGetter(b.kubeClient.CoreV1(), b.kubeNamespaceInformers)
241+
secretClient := v1helpers.CachedSecretGetter(b.kubeClient.CoreV1(), b.kubeNamespaceInformers)
238242
podClient := b.kubeClient.CoreV1()
239243
eventsClient := b.kubeClient.CoreV1()
240244
pdbClient := b.kubeClient.PolicyV1()
241-
operandInformers := b.kubeInformers.InformersFor(b.operandNamespace)
242-
clusterInformers := b.kubeInformers.InformersFor("")
245+
operandInformers := b.kubeNamespaceInformers.InformersFor(b.operandNamespace)
246+
clusterInformers := b.kubeClusterInformers
243247
infraInformers := b.configInformers.Config().V1().Infrastructures()
244248

245249
var errs []error
@@ -337,7 +341,7 @@ func (b *staticPodOperatorControllerBuilder) ToControllers() (manager.Controller
337341
b.operandNamespace,
338342
b.staticPodName,
339343
b.staticPodOperatorClient,
340-
b.kubeInformers,
344+
b.kubeNamespaceInformers,
341345
b.enableStartMonitor,
342346
eventRecorder,
343347
), 1)
@@ -347,7 +351,7 @@ func (b *staticPodOperatorControllerBuilder) ToControllers() (manager.Controller
347351
b.operandNamespace,
348352
b.operandPodLabelSelector,
349353
b.staticPodOperatorClient,
350-
b.kubeInformers,
354+
b.kubeNamespaceInformers,
351355
b.enableStartMonitor,
352356
b.eventRecorder,
353357
); err == nil {
@@ -376,7 +380,7 @@ func (b *staticPodOperatorControllerBuilder) ToControllers() (manager.Controller
376380
resourceapply.NewKubeClientHolder(b.kubeClient),
377381
b.staticPodOperatorClient,
378382
eventRecorder,
379-
).AddKubeInformers(b.kubeInformers), 1)
383+
).AddKubeInformers(b.kubeNamespaceInformers), 1)
380384

381385
manager.WithController(unsupportedconfigoverridescontroller.NewUnsupportedConfigOverridesController(b.operatorName, b.staticPodOperatorClient, eventRecorder), 1)
382386
manager.WithController(loglevel.NewClusterOperatorLoggingController(b.staticPodOperatorClient, eventRecorder), 1)
@@ -407,7 +411,7 @@ func (b *staticPodOperatorControllerBuilder) ToControllers() (manager.Controller
407411

408412
manager.WithController(missingstaticpodcontroller.New(
409413
b.staticPodOperatorClient,
410-
b.kubeInformers.InformersFor(b.operandNamespace),
414+
b.kubeNamespaceInformers.InformersFor(b.operandNamespace),
411415
b.eventRecorder,
412416
b.operandNamespace,
413417
b.staticPodName,

0 commit comments

Comments
 (0)