From b596626707ebd739ad7a1c9359942a89ffa873bc Mon Sep 17 00:00:00 2001 From: Jan Chaloupka Date: Wed, 9 Aug 2023 11:39:27 +0200 Subject: [PATCH] APIServiceController: allow to pass informers for registering additional event handlers --- .../controller/apiservice/apiservice_controller.go | 9 ++++++--- .../apiserver/controllerset/apiservercontrollerset.go | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/operator/apiserver/controller/apiservice/apiservice_controller.go b/pkg/operator/apiserver/controller/apiservice/apiservice_controller.go index 07be8bfb7e..9f165f6943 100644 --- a/pkg/operator/apiserver/controller/apiservice/apiservice_controller.go +++ b/pkg/operator/apiserver/controller/apiservice/apiservice_controller.go @@ -52,6 +52,7 @@ func NewAPIServiceController( kubeInformersForOperandNamespace kubeinformers.SharedInformerFactory, kubeClient kubernetes.Interface, eventRecorder events.Recorder, + informers ...factory.Informer, ) factory.Controller { c := &APIServiceController{ preconditionForEnabledAPIServices: newEndpointPrecondition(kubeInformersForOperandNamespace), @@ -64,9 +65,11 @@ func NewAPIServiceController( } return factory.New().WithSync(c.sync).ResyncEvery(10*time.Second).WithInformers( - kubeInformersForOperandNamespace.Core().V1().Services().Informer(), - kubeInformersForOperandNamespace.Core().V1().Endpoints().Informer(), - apiregistrationInformers.Apiregistration().V1().APIServices().Informer(), + append(informers, + kubeInformersForOperandNamespace.Core().V1().Services().Informer(), + kubeInformersForOperandNamespace.Core().V1().Endpoints().Informer(), + apiregistrationInformers.Apiregistration().V1().APIServices().Informer(), + )..., ).ToController("APIServiceController_"+name, eventRecorder.WithComponentSuffix("apiservice-"+name+"-controller")) } diff --git a/pkg/operator/apiserver/controllerset/apiservercontrollerset.go b/pkg/operator/apiserver/controllerset/apiservercontrollerset.go index 3753cb6c82..32f87b72d8 100644 --- a/pkg/operator/apiserver/controllerset/apiservercontrollerset.go +++ b/pkg/operator/apiserver/controllerset/apiservercontrollerset.go @@ -180,6 +180,7 @@ func (cs *APIServerControllerSet) WithAPIServiceController( apiregistrationv1Client apiregistrationv1client.ApiregistrationV1Interface, kubeInformersForTargetNamesace kubeinformers.SharedInformerFactory, kubeClient kubernetes.Interface, + informers ...factory.Informer, ) *APIServerControllerSet { cs.apiServiceController.controller = apiservice.NewAPIServiceController( controllerName, @@ -190,6 +191,7 @@ func (cs *APIServerControllerSet) WithAPIServiceController( kubeInformersForTargetNamesace, kubeClient, cs.eventRecorder, + informers..., ) return cs }