Skip to content

Commit 0613b84

Browse files
Merge pull request #1874 from vrutkovs/watch-less-namespaces
OCPBUGS-59626: operator: don't react to events all namespaces
2 parents 7f23c5d + a0618f7 commit 0613b84

File tree

9 files changed

+63
-33
lines changed

9 files changed

+63
-33
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ require (
1515
github.com/openshift/api v0.0.0-20250710004639-926605d3338b
1616
github.com/openshift/build-machinery-go v0.0.0-20250530140348-dc5b2804eeee
1717
github.com/openshift/client-go v0.0.0-20250710075018-396b36f983ee
18-
github.com/openshift/library-go v0.0.0-20250724123005-03d85c4e997c
18+
github.com/openshift/library-go v0.0.0-20250729191057-91376e1b394e
1919
github.com/pkg/profile v1.7.0 // indirect
2020
github.com/prometheus/client_golang v1.22.0
2121
github.com/spf13/cobra v1.8.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ github.com/openshift/build-machinery-go v0.0.0-20250530140348-dc5b2804eeee h1:+S
166166
github.com/openshift/build-machinery-go v0.0.0-20250530140348-dc5b2804eeee/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE=
167167
github.com/openshift/client-go v0.0.0-20250710075018-396b36f983ee h1:tOtrrxfDEW8hK3eEsHqxsXurq/D6LcINGfprkQC3hqY=
168168
github.com/openshift/client-go v0.0.0-20250710075018-396b36f983ee/go.mod h1:zhRiYyNMk89llof2qEuGPWPD+joQPhCRUc2IK0SB510=
169-
github.com/openshift/library-go v0.0.0-20250724123005-03d85c4e997c h1:KG1U3r4ocDe39/Mvc6oxgDoi9YlCrWAor6n+uvJzRok=
170-
github.com/openshift/library-go v0.0.0-20250724123005-03d85c4e997c/go.mod h1:tptKNust9MdRI0p90DoBSPHIrBa9oh+Rok59tF0vT8c=
169+
github.com/openshift/library-go v0.0.0-20250729191057-91376e1b394e h1:xYT+P++PSc9G+Y47pIcU9fm8IDV/tg6tMi3i+0m23pU=
170+
github.com/openshift/library-go v0.0.0-20250729191057-91376e1b394e/go.mod h1:tptKNust9MdRI0p90DoBSPHIrBa9oh+Rok59tF0vT8c=
171171
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
172172
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
173173
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=

pkg/operator/connectivitycheckcontroller/connectivity_check_controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ func NewKubeAPIServerConnectivityCheckController(
3636
operatorClient v1helpers.StaticPodOperatorClient,
3737
apiextensionsClient *apiextensionsclient.Clientset,
3838
kubeInformersForNamespaces v1helpers.KubeInformersForNamespaces,
39+
nodeLister corev1listers.NodeLister,
3940
operatorcontrolplaneClient *operatorcontrolplaneclient.Clientset,
4041
configInformers configinformers.SharedInformerFactory,
4142
apiextensionsInformers apiextensionsinformers.SharedInformerFactory,
@@ -63,7 +64,7 @@ func NewKubeAPIServerConnectivityCheckController(
6364
operatorClient: operatorClient,
6465
endpointsLister: kubeInformersForNamespaces.InformersFor("openshift-apiserver").Core().V1().Endpoints().Lister(),
6566
serviceLister: kubeInformersForNamespaces.InformersFor("openshift-apiserver").Core().V1().Services().Lister(),
66-
nodeLister: kubeInformersForNamespaces.InformersFor("").Core().V1().Nodes().Lister(),
67+
nodeLister: nodeLister,
6768
infrastructureLister: configInformers.Config().V1().Infrastructures().Lister(),
6869
}
6970
return c.WithPodNetworkConnectivityCheckFn(generator.generate)

pkg/operator/kubeletversionskewcontroller/kubelet_version_skew_controller.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"k8s.io/apimachinery/pkg/labels"
1919
"k8s.io/apimachinery/pkg/util/runtime"
2020
corev1listers "k8s.io/client-go/listers/core/v1"
21+
cache "k8s.io/client-go/tools/cache"
2122
)
2223

2324
const (
@@ -46,20 +47,22 @@ type KubeletVersionSkewController interface {
4647
func NewKubeletVersionSkewController(
4748
operatorClient v1helpers.OperatorClient,
4849
kubeInformersForNamespaces v1helpers.KubeInformersForNamespaces,
50+
nodeLister corev1listers.NodeLister,
51+
nodeInformer cache.SharedIndexInformer,
4952
recorder events.Recorder,
5053
) *kubeletVersionSkewController {
5154
openShiftVersion := semver.MustParse(status.VersionForOperatorFromEnv())
5255
nextOpenShiftVersion := semver.Version{Major: openShiftVersion.Major, Minor: openShiftVersion.Minor + 1}
5356
c := &kubeletVersionSkewController{
5457
operatorClient: operatorClient,
55-
nodeLister: kubeInformersForNamespaces.InformersFor("").Core().V1().Nodes().Lister(),
58+
nodeLister: nodeLister,
5659
apiServerVersion: semver.MustParse(status.VersionForOperandFromEnv()),
5760
minSupportedSkew: minSupportedKubeletSkewForOpenShiftVersion(openShiftVersion),
5861
minSupportedSkewNextVersion: minSupportedKubeletSkewForOpenShiftVersion(nextOpenShiftVersion),
5962
}
6063
c.Controller = factory.New().
6164
WithSync(c.sync).
62-
WithInformers(kubeInformersForNamespaces.InformersFor("").Core().V1().Nodes().Informer()).
65+
WithInformers(nodeInformer).
6366
ToController("KubeletVersionSkewController", recorder.WithComponentSuffix("kubelet-version-skew-controller"))
6467
return c
6568
}

pkg/operator/starter.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
121121

122122
kubeInformersForNamespaces := v1helpers.NewKubeInformersForNamespaces(
123123
kubeClient,
124-
"",
125124
operatorclient.GlobalUserSpecifiedConfigNamespace,
126125
operatorclient.GlobalMachineSpecifiedConfigNamespace,
127126
operatorclient.TargetNamespace,
@@ -130,6 +129,8 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
130129
"openshift-etcd",
131130
"openshift-apiserver",
132131
)
132+
clusterInformers := v1helpers.NewKubeInformersForNamespaces(kubeClient, "")
133+
133134
configInformers := configv1informers.NewSharedInformerFactory(configClient, 10*time.Minute)
134135
operatorClient, dynamicInformersForAllNamespaces, err := genericoperatorclient.NewStaticPodOperatorClient(
135136
controllerContext.Clock,
@@ -302,6 +303,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
302303
operatorClient,
303304
apiextensionsClient,
304305
kubeInformersForNamespaces,
306+
clusterInformers.InformersFor("").Core().V1().Nodes().Lister(),
305307
operatorcontrolplaneClient,
306308
configInformers,
307309
apiextensionsInformers,
@@ -319,7 +321,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
319321
}
320322
versionRecorder.SetVersion("raw-internal", status.VersionForOperatorFromEnv())
321323

322-
staticPodControllers, err := staticpod.NewBuilder(operatorClient, kubeClient, kubeInformersForNamespaces, configInformers, controllerContext.Clock).
324+
staticPodControllers, err := staticpod.NewBuilder(operatorClient, kubeClient, kubeInformersForNamespaces, clusterInformers.InformersFor(""), configInformers, controllerContext.Clock).
323325
WithEvents(controllerContext.EventRecorder).
324326
WithCustomInstaller([]string{"cluster-kube-apiserver-operator", "installer"}, installerErrorInjector(operatorClient)).
325327
WithPruning([]string{"cluster-kube-apiserver-operator", "prune"}, "kube-apiserver-pod").
@@ -463,6 +465,8 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
463465
kubeletVersionSkewController := kubeletversionskewcontroller.NewKubeletVersionSkewController(
464466
operatorClient,
465467
kubeInformersForNamespaces,
468+
clusterInformers.InformersFor("").Core().V1().Nodes().Lister(),
469+
clusterInformers.InformersFor("").Core().V1().Nodes().Informer(),
466470
controllerContext.EventRecorder,
467471
)
468472

@@ -482,7 +486,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
482486

483487
webhookSupportabilityController := webhooksupportabilitycontroller.NewWebhookSupportabilityController(
484488
operatorClient,
485-
kubeInformersForNamespaces,
489+
clusterInformers,
486490
apiextensionsInformers,
487491
controllerContext.EventRecorder,
488492
)
@@ -509,6 +513,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
509513
configmetrics.Register(configInformers)
510514

511515
kubeInformersForNamespaces.Start(ctx.Done())
516+
clusterInformers.Start(ctx.Done())
512517
configInformers.Start(ctx.Done())
513518
dynamicInformersForAllNamespaces.Start(ctx.Done())
514519
dynamicInformersForTargetNamespace.Start(ctx.Done())

vendor/github.com/openshift/library-go/pkg/operator/staticpod/controllers.go

Lines changed: 15 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/library-go/pkg/operator/status/status_controller.go

Lines changed: 7 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/library-go/pkg/operator/status/version.go

Lines changed: 22 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ github.com/openshift/client-go/security/informers/externalversions/internalinter
346346
github.com/openshift/client-go/security/informers/externalversions/security
347347
github.com/openshift/client-go/security/informers/externalversions/security/v1
348348
github.com/openshift/client-go/security/listers/security/v1
349-
# github.com/openshift/library-go v0.0.0-20250724123005-03d85c4e997c
349+
# github.com/openshift/library-go v0.0.0-20250729191057-91376e1b394e
350350
## explicit; go 1.24.0
351351
github.com/openshift/library-go/pkg/apiserver/jsonpatch
352352
github.com/openshift/library-go/pkg/assets

0 commit comments

Comments
 (0)