Skip to content

Commit a0618f7

Browse files
committed
operator: don't watch all namespaces
The operator should be watching only a specific set of namespaces, so that it didn't have access to workload secrets
1 parent fd0b1d9 commit a0618f7

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

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())

0 commit comments

Comments
 (0)