@@ -202,7 +202,7 @@ func Run(ctx context.Context, opts *options.Options) error {
202
202
klog .Fatalf ("Failed to register index for Work based on ClusterResourceBinding ID: %v" , err )
203
203
}
204
204
205
- setupControllers (controllerManager , opts , ctx . Done () )
205
+ setupControllers (ctx , controllerManager , opts )
206
206
207
207
// blocks until the context is done.
208
208
if err := controllerManager .Start (ctx ); err != nil {
@@ -289,7 +289,6 @@ func startClusterController(ctx controllerscontext.Context) (enabled bool, err e
289
289
func startClusterStatusController (ctx controllerscontext.Context ) (enabled bool , err error ) {
290
290
mgr := ctx .Mgr
291
291
opts := ctx .Opts
292
- stopChan := ctx .StopChan
293
292
clusterPredicateFunc := predicate.Funcs {
294
293
CreateFunc : func (createEvent event.CreateEvent ) bool {
295
294
obj := createEvent .Object .(* clusterv1alpha1.Cluster )
@@ -329,7 +328,6 @@ func startClusterStatusController(ctx controllerscontext.Context) (enabled bool,
329
328
PredicateFunc : clusterPredicateFunc ,
330
329
TypedInformerManager : typedmanager .GetInstance (),
331
330
GenericInformerManager : genericmanager .GetInstance (),
332
- StopChan : stopChan ,
333
331
ClusterClientSetFunc : util .NewClusterClientSet ,
334
332
ClusterDynamicClientSetFunc : util .NewClusterDynamicClientSet ,
335
333
ClusterClientOption : & util.ClientOption {QPS : opts .ClusterAPIQPS , Burst : opts .ClusterAPIBurst },
@@ -432,7 +430,7 @@ func startWorkStatusController(ctx controllerscontext.Context) (enabled bool, er
432
430
EventRecorder : ctx .Mgr .GetEventRecorderFor (status .WorkStatusControllerName ),
433
431
RESTMapper : ctx .Mgr .GetRESTMapper (),
434
432
InformerManager : genericmanager .GetInstance (),
435
- StopChan : ctx .StopChan ,
433
+ Context : ctx .Context ,
436
434
ObjectWatcher : ctx .ObjectWatcher ,
437
435
PredicateFunc : helper .NewExecutionPredicate (ctx .Mgr ),
438
436
ClusterDynamicClientSetFunc : util .NewClusterDynamicClientSet ,
@@ -470,7 +468,7 @@ func startServiceExportController(ctx controllerscontext.Context) (enabled bool,
470
468
EventRecorder : ctx .Mgr .GetEventRecorderFor (mcs .ServiceExportControllerName ),
471
469
RESTMapper : ctx .Mgr .GetRESTMapper (),
472
470
InformerManager : genericmanager .GetInstance (),
473
- StopChan : ctx .StopChan ,
471
+ Context : ctx .Context ,
474
472
WorkerNumber : 3 ,
475
473
PredicateFunc : helper .NewPredicateForServiceExportController (ctx .Mgr ),
476
474
ClusterDynamicClientSetFunc : util .NewClusterDynamicClientSet ,
@@ -496,7 +494,7 @@ func startEndpointSliceCollectController(ctx controllerscontext.Context) (enable
496
494
Client : ctx .Mgr .GetClient (),
497
495
RESTMapper : ctx .Mgr .GetRESTMapper (),
498
496
InformerManager : genericmanager .GetInstance (),
499
- StopChan : ctx .StopChan ,
497
+ Context : ctx .Context ,
500
498
WorkerNumber : 3 ,
501
499
PredicateFunc : helper .NewPredicateForEndpointSliceCollectController (ctx .Mgr ),
502
500
ClusterDynamicClientSetFunc : util .NewClusterDynamicClientSet ,
@@ -639,7 +637,7 @@ func startFederatedHorizontalPodAutoscalerController(ctx controllerscontext.Cont
639
637
go custom_metrics .PeriodicallyInvalidate (
640
638
apiVersionsGetter ,
641
639
ctx .Opts .HPAControllerConfiguration .HorizontalPodAutoscalerSyncPeriod .Duration ,
642
- ctx .StopChan )
640
+ ctx .Context . Done () )
643
641
metricsClient := metricsclient .NewRESTMetricsClient (
644
642
resourceclient .NewForConfigOrDie (ctx .Mgr .GetConfig ()),
645
643
custom_metrics .NewForConfig (ctx .Mgr .GetConfig (), ctx .Mgr .GetRESTMapper (), apiVersionsGetter ),
@@ -758,7 +756,7 @@ func startAgentCSRApprovingController(ctx controllerscontext.Context) (enabled b
758
756
}
759
757
760
758
// setupControllers initialize controllers and setup one by one.
761
- func setupControllers (mgr controllerruntime.Manager , opts * options.Options , stopChan <- chan struct {} ) {
759
+ func setupControllers (ctx context. Context , mgr controllerruntime.Manager , opts * options.Options ) {
762
760
restConfig := mgr .GetConfig ()
763
761
dynamicClientSet := dynamic .NewForConfigOrDie (restConfig )
764
762
discoverClientSet := discovery .NewDiscoveryClientForConfigOrDie (restConfig )
@@ -771,13 +769,13 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
771
769
return
772
770
}
773
771
774
- controlPlaneInformerManager := genericmanager .NewSingleClusterInformerManager (dynamicClientSet , opts .ResyncPeriod .Duration , stopChan )
772
+ controlPlaneInformerManager := genericmanager .NewSingleClusterInformerManager (ctx , dynamicClientSet , opts .ResyncPeriod .Duration )
775
773
// We need a service lister to build a resource interpreter with `ClusterIPServiceResolver`
776
774
// witch allows connection to the customized interpreter webhook without a cluster DNS service.
777
775
sharedFactory := informers .NewSharedInformerFactory (kubeClientSet , opts .ResyncPeriod .Duration )
778
776
serviceLister := sharedFactory .Core ().V1 ().Services ().Lister ()
779
- sharedFactory .Start (stopChan )
780
- sharedFactory .WaitForCacheSync (stopChan )
777
+ sharedFactory .Start (ctx . Done () )
778
+ sharedFactory .WaitForCacheSync (ctx . Done () )
781
779
782
780
resourceInterpreter := resourceinterpreter .NewResourceInterpreter (controlPlaneInformerManager , serviceLister )
783
781
if err := mgr .Add (resourceInterpreter ); err != nil {
@@ -821,7 +819,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
821
819
klog .Fatalf ("Failed to setup dependencies distributor: %v" , err )
822
820
}
823
821
}
824
- setupClusterAPIClusterDetector (mgr , opts , stopChan )
822
+ setupClusterAPIClusterDetector (ctx , mgr , opts )
825
823
controllerContext := controllerscontext.Context {
826
824
Mgr : mgr ,
827
825
ObjectWatcher : objectWatcher ,
@@ -847,7 +845,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
847
845
EnableClusterResourceModeling : opts .EnableClusterResourceModeling ,
848
846
HPAControllerConfiguration : opts .HPAControllerConfiguration ,
849
847
},
850
- StopChan : stopChan ,
848
+ Context : ctx ,
851
849
DynamicClientSet : dynamicClientSet ,
852
850
KubeClientSet : kubeClientSet ,
853
851
OverrideManager : overrideManager ,
@@ -861,13 +859,13 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
861
859
862
860
// Ensure the InformerManager stops when the stop channel closes
863
861
go func () {
864
- <- stopChan
862
+ <- ctx . Done ()
865
863
genericmanager .StopInstance ()
866
864
}()
867
865
}
868
866
869
867
// setupClusterAPIClusterDetector initialize Cluster detector with the cluster-api management cluster.
870
- func setupClusterAPIClusterDetector (mgr controllerruntime.Manager , opts * options.Options , stopChan <- chan struct {} ) {
868
+ func setupClusterAPIClusterDetector (ctx context. Context , mgr controllerruntime.Manager , opts * options.Options ) {
871
869
if len (opts .ClusterAPIKubeconfig ) == 0 {
872
870
return
873
871
}
@@ -888,7 +886,7 @@ func setupClusterAPIClusterDetector(mgr controllerruntime.Manager, opts *options
888
886
ControllerPlaneConfig : mgr .GetConfig (),
889
887
ClusterAPIConfig : clusterAPIRestConfig ,
890
888
ClusterAPIClient : clusterAPIClient ,
891
- InformerManager : genericmanager .NewSingleClusterInformerManager (dynamic .NewForConfigOrDie (clusterAPIRestConfig ), 0 , stopChan ),
889
+ InformerManager : genericmanager .NewSingleClusterInformerManager (ctx , dynamic .NewForConfigOrDie (clusterAPIRestConfig ), 0 ),
892
890
ConcurrentReconciles : 3 ,
893
891
}
894
892
if err := mgr .Add (clusterAPIClusterDetector ); err != nil {
0 commit comments