diff --git a/cmd/agent/app/agent.go b/cmd/agent/app/agent.go index b73ad3f1b..ad04781f7 100644 --- a/cmd/agent/app/agent.go +++ b/cmd/agent/app/agent.go @@ -34,9 +34,9 @@ import ( "github.com/karmada-io/karmada/pkg/sharedcli/klogflag" "github.com/karmada-io/karmada/pkg/sharedcli/profileflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/gclient" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/restmapper" @@ -194,7 +194,7 @@ func run(ctx context.Context, karmadaConfig karmadactl.KarmadaConfig, opts *opti func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stopChan <-chan struct{}) error { restConfig := mgr.GetConfig() dynamicClientSet := dynamic.NewForConfigOrDie(restConfig) - controlPlaneInformerManager := informermanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan) + controlPlaneInformerManager := genericmanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan) resourceInterpreter := resourceinterpreter.NewResourceInterpreter("", controlPlaneInformerManager) if err := mgr.Add(resourceInterpreter); err != nil { return fmt.Errorf("failed to setup custom resource interpreter: %w", err) @@ -229,7 +229,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop // Ensure the InformerManager stops when the stop channel closes go func() { <-stopChan - informermanager.StopInstance() + genericmanager.StopInstance() }() return nil @@ -241,7 +241,7 @@ func startClusterStatusController(ctx controllerscontext.Context) (bool, error) KubeClient: kubeclientset.NewForConfigOrDie(ctx.Mgr.GetConfig()), EventRecorder: ctx.Mgr.GetEventRecorderFor(status.ControllerName), PredicateFunc: helper.NewClusterPredicateOnAgent(ctx.Opts.ClusterName), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), StopChan: ctx.StopChan, ClusterClientSetFunc: util.NewClusterClientSetForAgent, ClusterDynamicClientSetFunc: util.NewClusterDynamicClientSetForAgent, @@ -267,7 +267,7 @@ func startExecutionController(ctx controllerscontext.Context) (bool, error) { RESTMapper: ctx.Mgr.GetRESTMapper(), ObjectWatcher: ctx.ObjectWatcher, PredicateFunc: helper.NewExecutionPredicateOnAgent(), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), RatelimiterOptions: ctx.Opts.RateLimiterOptions, } if err := executionController.SetupWithManager(ctx.Mgr); err != nil { @@ -281,7 +281,7 @@ func startWorkStatusController(ctx controllerscontext.Context) (bool, error) { Client: ctx.Mgr.GetClient(), EventRecorder: ctx.Mgr.GetEventRecorderFor(status.WorkStatusControllerName), RESTMapper: ctx.Mgr.GetRESTMapper(), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), StopChan: ctx.StopChan, ObjectWatcher: ctx.ObjectWatcher, PredicateFunc: helper.NewExecutionPredicateOnAgent(), @@ -303,7 +303,7 @@ func startServiceExportController(ctx controllerscontext.Context) (bool, error) Client: ctx.Mgr.GetClient(), EventRecorder: ctx.Mgr.GetEventRecorderFor(mcs.ServiceExportControllerName), RESTMapper: ctx.Mgr.GetRESTMapper(), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), StopChan: ctx.StopChan, WorkerNumber: 3, PredicateFunc: helper.NewPredicateForServiceExportControllerOnAgent(ctx.Opts.ClusterName), diff --git a/cmd/controller-manager/app/controllermanager.go b/cmd/controller-manager/app/controllermanager.go index dec3c4177..1034458e0 100644 --- a/cmd/controller-manager/app/controllermanager.go +++ b/cmd/controller-manager/app/controllermanager.go @@ -47,9 +47,9 @@ import ( "github.com/karmada-io/karmada/pkg/sharedcli/klogflag" "github.com/karmada-io/karmada/pkg/sharedcli/profileflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/gclient" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/overridemanager" "github.com/karmada-io/karmada/pkg/util/restmapper" @@ -254,7 +254,7 @@ func startClusterStatusController(ctx controllerscontext.Context) (enabled bool, KubeClient: kubeclientset.NewForConfigOrDie(mgr.GetConfig()), EventRecorder: mgr.GetEventRecorderFor(status.ControllerName), PredicateFunc: clusterPredicateFunc, - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), StopChan: stopChan, ClusterClientSetFunc: util.NewClusterClientSet, ClusterDynamicClientSetFunc: util.NewClusterDynamicClientSet, @@ -325,7 +325,7 @@ func startExecutionController(ctx controllerscontext.Context) (enabled bool, err RESTMapper: ctx.Mgr.GetRESTMapper(), ObjectWatcher: ctx.ObjectWatcher, PredicateFunc: helper.NewExecutionPredicate(ctx.Mgr), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), RatelimiterOptions: ctx.Opts.RateLimiterOptions, } if err := executionController.SetupWithManager(ctx.Mgr); err != nil { @@ -340,7 +340,7 @@ func startWorkStatusController(ctx controllerscontext.Context) (enabled bool, er Client: ctx.Mgr.GetClient(), EventRecorder: ctx.Mgr.GetEventRecorderFor(status.WorkStatusControllerName), RESTMapper: ctx.Mgr.GetRESTMapper(), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), StopChan: ctx.StopChan, ObjectWatcher: ctx.ObjectWatcher, PredicateFunc: helper.NewExecutionPredicate(ctx.Mgr), @@ -381,7 +381,7 @@ func startServiceExportController(ctx controllerscontext.Context) (enabled bool, Client: ctx.Mgr.GetClient(), EventRecorder: ctx.Mgr.GetEventRecorderFor(mcs.ServiceExportControllerName), RESTMapper: ctx.Mgr.GetRESTMapper(), - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), StopChan: ctx.StopChan, WorkerNumber: 3, PredicateFunc: helper.NewPredicateForServiceExportController(ctx.Mgr), @@ -468,7 +468,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop skippedPropagatingNamespaces[ns] = struct{}{} } - controlPlaneInformerManager := informermanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan) + controlPlaneInformerManager := genericmanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan) resourceInterpreter := resourceinterpreter.NewResourceInterpreter("", controlPlaneInformerManager) if err := mgr.Add(resourceInterpreter); err != nil { @@ -545,7 +545,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop // Ensure the InformerManager stops when the stop channel closes go func() { <-stopChan - informermanager.StopInstance() + genericmanager.StopInstance() }() } @@ -573,7 +573,7 @@ func setupClusterAPIClusterDetector(mgr controllerruntime.Manager, opts *options ControllerPlaneConfig: mgr.GetConfig(), ClusterAPIConfig: clusterAPIRestConfig, ClusterAPIClient: clusterAPIClient, - InformerManager: informermanager.NewSingleClusterInformerManager(dynamic.NewForConfigOrDie(clusterAPIRestConfig), 0, stopChan), + InformerManager: genericmanager.NewSingleClusterInformerManager(dynamic.NewForConfigOrDie(clusterAPIRestConfig), 0, stopChan), ConcurrentReconciles: 3, } if err := mgr.Add(clusterAPIClusterDetector); err != nil { diff --git a/pkg/clusterdiscovery/clusterapi/clusterapi.go b/pkg/clusterdiscovery/clusterapi/clusterapi.go index 7c92115f0..2ee8d5378 100644 --- a/pkg/clusterdiscovery/clusterapi/clusterapi.go +++ b/pkg/clusterdiscovery/clusterapi/clusterapi.go @@ -22,9 +22,10 @@ import ( "github.com/karmada-io/karmada/pkg/karmadactl" "github.com/karmada-io/karmada/pkg/karmadactl/options" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" ) const ( @@ -44,7 +45,7 @@ type ClusterDetector struct { ControllerPlaneConfig *rest.Config ClusterAPIConfig *rest.Config ClusterAPIClient client.Client - InformerManager informermanager.SingleClusterInformerManager + InformerManager genericmanager.SingleClusterInformerManager EventHandler cache.ResourceEventHandler Processor util.AsyncWorker ConcurrentReconciles int @@ -57,7 +58,7 @@ func (d *ClusterDetector) Start(ctx context.Context) error { klog.Infof("Starting cluster-api cluster detector.") d.stopCh = ctx.Done() - d.EventHandler = informermanager.NewHandlerOnEvents(d.OnAdd, d.OnUpdate, d.OnDelete) + d.EventHandler = fedinformer.NewHandlerOnEvents(d.OnAdd, d.OnUpdate, d.OnDelete) workerOptions := util.Options{ Name: "cluster-api cluster detector", KeyFunc: ClusterWideKeyFunc, diff --git a/pkg/clusterdiscovery/clusterapi/handler.go b/pkg/clusterdiscovery/clusterapi/handler.go index 4b3b2816e..3adf75530 100644 --- a/pkg/clusterdiscovery/clusterapi/handler.go +++ b/pkg/clusterdiscovery/clusterapi/handler.go @@ -2,7 +2,7 @@ package clusterapi import ( "github.com/karmada-io/karmada/pkg/util" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" ) // ClusterWideKeyFunc generates a ClusterWideKey for object. diff --git a/pkg/controllers/binding/binding_controller.go b/pkg/controllers/binding/binding_controller.go index a7b085069..400098fe2 100644 --- a/pkg/controllers/binding/binding_controller.go +++ b/pkg/controllers/binding/binding_controller.go @@ -31,8 +31,8 @@ import ( "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/overridemanager" "github.com/karmada-io/karmada/pkg/util/restmapper" ) @@ -42,9 +42,9 @@ const ControllerName = "binding-controller" // ResourceBindingController is to sync ResourceBinding. type ResourceBindingController struct { - client.Client // used to operate ClusterResourceBinding resources. - DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. - InformerManager informermanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. + client.Client // used to operate ClusterResourceBinding resources. + DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. + InformerManager genericmanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. EventRecorder record.EventRecorder RESTMapper meta.RESTMapper OverrideManager overridemanager.OverrideManager diff --git a/pkg/controllers/binding/cluster_resource_binding_controller.go b/pkg/controllers/binding/cluster_resource_binding_controller.go index 75f9f6740..350d1907f 100644 --- a/pkg/controllers/binding/cluster_resource_binding_controller.go +++ b/pkg/controllers/binding/cluster_resource_binding_controller.go @@ -27,8 +27,8 @@ import ( "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/overridemanager" ) @@ -37,9 +37,9 @@ const ClusterResourceBindingControllerName = "cluster-resource-binding-controlle // ClusterResourceBindingController is to sync ClusterResourceBinding. type ClusterResourceBindingController struct { - client.Client // used to operate ClusterResourceBinding resources. - DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. - InformerManager informermanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. + client.Client // used to operate ClusterResourceBinding resources. + DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. + InformerManager genericmanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. EventRecorder record.EventRecorder RESTMapper meta.RESTMapper OverrideManager overridemanager.OverrideManager diff --git a/pkg/controllers/cluster/taint_manager.go b/pkg/controllers/cluster/taint_manager.go index 6003805fb..a5511fa91 100644 --- a/pkg/controllers/cluster/taint_manager.go +++ b/pkg/controllers/cluster/taint_manager.go @@ -20,8 +20,8 @@ import ( workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" "github.com/karmada-io/karmada/pkg/features" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" ) // TaintManagerName is the controller name that will be used for taint management. diff --git a/pkg/controllers/context/context.go b/pkg/controllers/context/context.go index f1a67b859..ccf2b9fdd 100644 --- a/pkg/controllers/context/context.go +++ b/pkg/controllers/context/context.go @@ -9,7 +9,7 @@ import ( "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" - "github.com/karmada-io/karmada/pkg/util/informermanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/overridemanager" ) @@ -71,7 +71,7 @@ type Context struct { StopChan <-chan struct{} DynamicClientSet dynamic.Interface OverrideManager overridemanager.OverrideManager - ControlPlaneInformerManager informermanager.SingleClusterInformerManager + ControlPlaneInformerManager genericmanager.SingleClusterInformerManager ResourceInterpreter resourceinterpreter.ResourceInterpreter } diff --git a/pkg/controllers/execution/execution_controller.go b/pkg/controllers/execution/execution_controller.go index ce720fc6d..dd9909d89 100644 --- a/pkg/controllers/execution/execution_controller.go +++ b/pkg/controllers/execution/execution_controller.go @@ -23,9 +23,9 @@ import ( workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/objectwatcher" ) @@ -42,7 +42,7 @@ type Controller struct { RESTMapper meta.RESTMapper ObjectWatcher objectwatcher.ObjectWatcher PredicateFunc predicate.Predicate - InformerManager informermanager.MultiClusterInformerManager + InformerManager genericmanager.MultiClusterInformerManager RatelimiterOptions ratelimiterflag.Options } diff --git a/pkg/controllers/hpa/hpa_controller.go b/pkg/controllers/hpa/hpa_controller.go index e3acf3363..0f2d9e206 100644 --- a/pkg/controllers/hpa/hpa_controller.go +++ b/pkg/controllers/hpa/hpa_controller.go @@ -19,8 +19,8 @@ import ( workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/restmapper" ) @@ -30,9 +30,9 @@ const ControllerName = "hpa-controller" // HorizontalPodAutoscalerController is to sync HorizontalPodAutoscaler. type HorizontalPodAutoscalerController struct { - client.Client // used to operate HorizontalPodAutoscaler resources. - DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. - InformerManager informermanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. + client.Client // used to operate HorizontalPodAutoscaler resources. + DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. + InformerManager genericmanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. EventRecorder record.EventRecorder RESTMapper meta.RESTMapper } diff --git a/pkg/controllers/mcs/service_export_controller.go b/pkg/controllers/mcs/service_export_controller.go index 5e4d21259..49fd9ba79 100644 --- a/pkg/controllers/mcs/service_export_controller.go +++ b/pkg/controllers/mcs/service_export_controller.go @@ -28,9 +28,10 @@ import ( clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1" workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/names" ) @@ -43,7 +44,7 @@ type ServiceExportController struct { EventRecorder record.EventRecorder RESTMapper meta.RESTMapper StopChan <-chan struct{} - InformerManager informermanager.MultiClusterInformerManager + InformerManager genericmanager.MultiClusterInformerManager WorkerNumber int // WorkerNumber is the number of worker goroutines PredicateFunc predicate.Predicate // PredicateFunc is the function that filters events before enqueuing the keys. ClusterDynamicClientSetFunc func(clusterName string, client client.Client) (*util.DynamicClusterClient, error) @@ -232,7 +233,7 @@ func (c *ServiceExportController) getEventHandler(clusterName string) cache.Reso return value.(cache.ResourceEventHandler) } - eventHandler := informermanager.NewHandlerOnEvents(c.genHandlerAddFunc(clusterName), c.genHandlerUpdateFunc(clusterName), + eventHandler := fedinformer.NewHandlerOnEvents(c.genHandlerAddFunc(clusterName), c.genHandlerUpdateFunc(clusterName), c.genHandlerDeleteFunc(clusterName)) c.eventHandlers.Store(clusterName, eventHandler) return eventHandler diff --git a/pkg/controllers/status/cluster_status_controller.go b/pkg/controllers/status/cluster_status_controller.go index 5e02cfdb7..0a89af69c 100644 --- a/pkg/controllers/status/cluster_status_controller.go +++ b/pkg/controllers/status/cluster_status_controller.go @@ -33,8 +33,8 @@ import ( clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" ) const ( @@ -60,7 +60,7 @@ type ClusterStatusController struct { KubeClient clientset.Interface EventRecorder record.EventRecorder PredicateFunc predicate.Predicate - InformerManager informermanager.MultiClusterInformerManager + InformerManager genericmanager.MultiClusterInformerManager StopChan <-chan struct{} ClusterClientSetFunc func(string, client.Client, *util.ClientOption) (*util.ClusterClient, error) ClusterDynamicClientSetFunc func(clusterName string, client client.Client) (*util.DynamicClusterClient, error) @@ -239,7 +239,7 @@ func (c *ClusterStatusController) updateStatusIfNeeded(cluster *clusterv1alpha1. // buildInformerForCluster builds informer manager for cluster if it doesn't exist, then constructs informers for node // and pod and start it. If the informer manager exist, return it. -func (c *ClusterStatusController) buildInformerForCluster(cluster *clusterv1alpha1.Cluster) (informermanager.SingleClusterInformerManager, error) { +func (c *ClusterStatusController) buildInformerForCluster(cluster *clusterv1alpha1.Cluster) (genericmanager.SingleClusterInformerManager, error) { singleClusterInformerManager := c.InformerManager.GetSingleClusterManager(cluster.Name) if singleClusterInformerManager == nil { clusterClient, err := c.ClusterDynamicClientSetFunc(cluster.Name, c.Client) @@ -404,7 +404,7 @@ func getAPIEnablements(clusterClient *util.ClusterClient) ([]clusterv1alpha1.API } // listPods returns the Pod list from the informerManager cache. -func listPods(informerManager informermanager.SingleClusterInformerManager) ([]*corev1.Pod, error) { +func listPods(informerManager genericmanager.SingleClusterInformerManager) ([]*corev1.Pod, error) { podLister := informerManager.Lister(podGVR) podList, err := podLister.List(labels.Everything()) @@ -420,7 +420,7 @@ func listPods(informerManager informermanager.SingleClusterInformerManager) ([]* } // listNodes returns the Node list from the informerManager cache. -func listNodes(informerManager informermanager.SingleClusterInformerManager) ([]*corev1.Node, error) { +func listNodes(informerManager genericmanager.SingleClusterInformerManager) ([]*corev1.Node, error) { nodeLister := informerManager.Lister(nodeGVR) nodeList, err := nodeLister.List(labels.Everything()) diff --git a/pkg/controllers/status/workstatus_controller.go b/pkg/controllers/status/workstatus_controller.go index 898595206..3d5d7c5d2 100644 --- a/pkg/controllers/status/workstatus_controller.go +++ b/pkg/controllers/status/workstatus_controller.go @@ -25,9 +25,10 @@ import ( "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/restmapper" @@ -41,7 +42,7 @@ type WorkStatusController struct { client.Client // used to operate Work resources. EventRecorder record.EventRecorder RESTMapper meta.RESTMapper - InformerManager informermanager.MultiClusterInformerManager + InformerManager genericmanager.MultiClusterInformerManager eventHandler cache.ResourceEventHandler // eventHandler knows how to handle events from the member cluster. StopChan <-chan struct{} worker util.AsyncWorker // worker process resources periodic from rateLimitingQueue. @@ -113,7 +114,7 @@ func (c *WorkStatusController) buildResourceInformers(cluster *clusterv1alpha1.C // getEventHandler return callback function that knows how to handle events from the member cluster. func (c *WorkStatusController) getEventHandler() cache.ResourceEventHandler { if c.eventHandler == nil { - c.eventHandler = informermanager.NewHandlerOnAllEvents(c.worker.Enqueue) + c.eventHandler = fedinformer.NewHandlerOnAllEvents(c.worker.Enqueue) } return c.eventHandler } @@ -442,7 +443,7 @@ func (c *WorkStatusController) getGVRsFromWork(work *workv1alpha1.Work) (map[sch // getSingleClusterManager gets singleClusterInformerManager with clusterName. // If manager is not exist, create it, otherwise gets it from map. -func (c *WorkStatusController) getSingleClusterManager(cluster *clusterv1alpha1.Cluster) (informermanager.SingleClusterInformerManager, error) { +func (c *WorkStatusController) getSingleClusterManager(cluster *clusterv1alpha1.Cluster) (genericmanager.SingleClusterInformerManager, error) { // TODO(chenxianpao): If cluster A is removed, then a new cluster that name also is A joins karmada, // the cache in informer manager should be updated. singleClusterInformerManager := c.InformerManager.GetSingleClusterManager(cluster.Name) diff --git a/pkg/dependenciesdistributor/dependencies_distributor.go b/pkg/dependenciesdistributor/dependencies_distributor.go index 924ac46b0..0f9642ae1 100644 --- a/pkg/dependenciesdistributor/dependencies_distributor.go +++ b/pkg/dependenciesdistributor/dependencies_distributor.go @@ -30,9 +30,10 @@ import ( "github.com/karmada-io/karmada/pkg/detector" "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/names" ) @@ -59,7 +60,7 @@ type DependenciesDistributor struct { // DynamicClient used to fetch arbitrary resources. DynamicClient dynamic.Interface - InformerManager informermanager.SingleClusterInformerManager + InformerManager genericmanager.SingleClusterInformerManager EventHandler cache.ResourceEventHandler Processor util.AsyncWorker RESTMapper meta.RESTMapper @@ -94,7 +95,7 @@ func (d *DependenciesDistributor) Start(ctx context.Context) error { Resource: "resourcebindings", } - bindingHandler := informermanager.NewHandlerOnEvents(nil, d.OnResourceBindingUpdate, d.OnResourceBindingDelete) + bindingHandler := fedinformer.NewHandlerOnEvents(nil, d.OnResourceBindingUpdate, d.OnResourceBindingDelete) d.InformerManager.ForResource(resourceBindingGVR, bindingHandler) d.resourceBindingLister = d.InformerManager.Lister(resourceBindingGVR) resourceWorkerOptions := util.Options{ @@ -102,7 +103,7 @@ func (d *DependenciesDistributor) Start(ctx context.Context) error { KeyFunc: detector.ClusterWideKeyFunc, ReconcileFunc: d.Reconcile, } - d.EventHandler = informermanager.NewHandlerOnEvents(d.OnAdd, d.OnUpdate, d.OnDelete) + d.EventHandler = fedinformer.NewHandlerOnEvents(d.OnAdd, d.OnUpdate, d.OnDelete) d.Processor = util.NewAsyncWorker(resourceWorkerOptions) d.Processor.Run(2, d.stopCh) go d.discoverResources(30 * time.Second) diff --git a/pkg/detector/detector.go b/pkg/detector/detector.go index d5aff7806..0ca65b714 100644 --- a/pkg/detector/detector.go +++ b/pkg/detector/detector.go @@ -32,9 +32,10 @@ import ( "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/lifted" "github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/restmapper" @@ -48,7 +49,7 @@ type ResourceDetector struct { Client client.Client // DynamicClient used to fetch arbitrary resources. DynamicClient dynamic.Interface - InformerManager informermanager.SingleClusterInformerManager + InformerManager genericmanager.SingleClusterInformerManager EventHandler cache.ResourceEventHandler Processor util.AsyncWorker SkippedResourceConfig *util.SkippedResourceConfig @@ -114,7 +115,7 @@ func (d *ResourceDetector) Start(ctx context.Context) error { Version: policyv1alpha1.GroupVersion.Version, Resource: "propagationpolicies", } - policyHandler := informermanager.NewHandlerOnEvents(d.OnPropagationPolicyAdd, d.OnPropagationPolicyUpdate, d.OnPropagationPolicyDelete) + policyHandler := fedinformer.NewHandlerOnEvents(d.OnPropagationPolicyAdd, d.OnPropagationPolicyUpdate, d.OnPropagationPolicyDelete) d.InformerManager.ForResource(propagationPolicyGVR, policyHandler) d.propagationPolicyLister = d.InformerManager.Lister(propagationPolicyGVR) @@ -124,7 +125,7 @@ func (d *ResourceDetector) Start(ctx context.Context) error { Version: policyv1alpha1.GroupVersion.Version, Resource: "clusterpropagationpolicies", } - clusterPolicyHandler := informermanager.NewHandlerOnEvents(d.OnClusterPropagationPolicyAdd, d.OnClusterPropagationPolicyUpdate, d.OnClusterPropagationPolicyDelete) + clusterPolicyHandler := fedinformer.NewHandlerOnEvents(d.OnClusterPropagationPolicyAdd, d.OnClusterPropagationPolicyUpdate, d.OnClusterPropagationPolicyDelete) d.InformerManager.ForResource(clusterPropagationPolicyGVR, clusterPolicyHandler) d.clusterPropagationPolicyLister = d.InformerManager.Lister(clusterPropagationPolicyGVR) @@ -135,7 +136,7 @@ func (d *ResourceDetector) Start(ctx context.Context) error { RateLimiterOptions: d.RateLimiterOptions, } - d.EventHandler = informermanager.NewFilteringHandlerOnAllEvents(d.EventFilter, d.OnAdd, d.OnUpdate, d.OnDelete) + d.EventHandler = fedinformer.NewFilteringHandlerOnAllEvents(d.EventFilter, d.OnAdd, d.OnUpdate, d.OnDelete) d.Processor = util.NewAsyncWorker(detectorWorkerOptions) d.Processor.Run(d.ConcurrentResourceTemplateSyncs, d.stopCh) go d.discoverResources(30 * time.Second) diff --git a/pkg/detector/handler.go b/pkg/detector/handler.go index 55ca8fdc6..6e1c409f1 100644 --- a/pkg/detector/handler.go +++ b/pkg/detector/handler.go @@ -2,7 +2,7 @@ package detector import ( "github.com/karmada-io/karmada/pkg/util" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" ) // ClusterWideKeyFunc generates a ClusterWideKey for object. diff --git a/pkg/estimator/server/server.go b/pkg/estimator/server/server.go index 289d97494..38b8e0f59 100644 --- a/pkg/estimator/server/server.go +++ b/pkg/estimator/server/server.go @@ -32,9 +32,9 @@ import ( "github.com/karmada-io/karmada/pkg/estimator/server/replica" estimatorservice "github.com/karmada-io/karmada/pkg/estimator/service" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/lifted" ) @@ -62,7 +62,7 @@ type AccurateSchedulerEstimatorServer struct { nodeLister listv1.NodeLister replicaLister *replica.ListerWrapper getPodFunc func(nodeName string) ([]*corev1.Pod, error) - informerManager informermanager.SingleClusterInformerManager + informerManager genericmanager.SingleClusterInformerManager parallelizer lifted.Parallelizer } @@ -128,7 +128,7 @@ func NewEstimatorServer( } return pods, nil } - es.informerManager = informermanager.NewSingleClusterInformerManager(dynamicClient, 0, stopChan) + es.informerManager = genericmanager.NewSingleClusterInformerManager(dynamicClient, 0, stopChan) for _, gvr := range supportedGVRs { es.informerManager.Lister(gvr) } diff --git a/pkg/registry/search/storage/search.go b/pkg/registry/search/storage/search.go index 6f57c3c29..1d5a92d43 100644 --- a/pkg/registry/search/storage/search.go +++ b/pkg/registry/search/storage/search.go @@ -13,12 +13,12 @@ import ( searchapis "github.com/karmada-io/karmada/pkg/apis/search" clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1" - "github.com/karmada-io/karmada/pkg/util/informermanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" ) // SearchREST implements a RESTStorage for search resource. type SearchREST struct { - multiClusterInformerManager informermanager.MultiClusterInformerManager + multiClusterInformerManager genericmanager.MultiClusterInformerManager clusterLister clusterlister.ClusterLister // add needed parameters here @@ -30,7 +30,7 @@ var _ rest.Connecter = &SearchREST{} // NewSearchREST returns a RESTStorage object that will work against search. func NewSearchREST( - multiClusterInformerManager informermanager.MultiClusterInformerManager, + multiClusterInformerManager genericmanager.MultiClusterInformerManager, clusterLister clusterlister.ClusterLister) *SearchREST { return &SearchREST{ multiClusterInformerManager: multiClusterInformerManager, diff --git a/pkg/resourceinterpreter/customizedinterpreter/configmanager/manager.go b/pkg/resourceinterpreter/customizedinterpreter/configmanager/manager.go index b77156e42..df33356f7 100644 --- a/pkg/resourceinterpreter/customizedinterpreter/configmanager/manager.go +++ b/pkg/resourceinterpreter/customizedinterpreter/configmanager/manager.go @@ -12,8 +12,9 @@ import ( "k8s.io/klog/v2" configv1alpha1 "github.com/karmada-io/karmada/pkg/apis/config/v1alpha1" + "github.com/karmada-io/karmada/pkg/util/fedinformer" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" ) var resourceExploringWebhookConfigurationsGVR = schema.GroupVersionResource{ @@ -59,7 +60,7 @@ func (m *interpreterConfigManager) HasSynced() bool { } // NewExploreConfigManager return a new interpreterConfigManager with resourceinterpreterwebhookconfigurations handlers. -func NewExploreConfigManager(inform informermanager.SingleClusterInformerManager) ConfigManager { +func NewExploreConfigManager(inform genericmanager.SingleClusterInformerManager) ConfigManager { manager := &interpreterConfigManager{ configuration: &atomic.Value{}, lister: inform.Lister(resourceExploringWebhookConfigurationsGVR), @@ -69,7 +70,7 @@ func NewExploreConfigManager(inform informermanager.SingleClusterInformerManager manager.configuration.Store([]WebhookAccessor{}) manager.initialSynced.Store(false) - configHandlers := informermanager.NewHandlerOnEvents( + configHandlers := fedinformer.NewHandlerOnEvents( func(_ interface{}) { manager.updateConfiguration() }, func(_, _ interface{}) { manager.updateConfiguration() }, func(_ interface{}) { manager.updateConfiguration() }) diff --git a/pkg/resourceinterpreter/customizedinterpreter/customized.go b/pkg/resourceinterpreter/customizedinterpreter/customized.go index 05e9aed23..8dbef120f 100644 --- a/pkg/resourceinterpreter/customizedinterpreter/customized.go +++ b/pkg/resourceinterpreter/customizedinterpreter/customized.go @@ -20,7 +20,7 @@ import ( workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" "github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter/configmanager" "github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter/webhook" - "github.com/karmada-io/karmada/pkg/util/informermanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" interpreterutil "github.com/karmada-io/karmada/pkg/util/interpreter" ) @@ -31,7 +31,7 @@ type CustomizedInterpreter struct { } // NewCustomizedInterpreter return a new CustomizedInterpreter. -func NewCustomizedInterpreter(kubeconfig string, informer informermanager.SingleClusterInformerManager) (*CustomizedInterpreter, error) { +func NewCustomizedInterpreter(kubeconfig string, informer genericmanager.SingleClusterInformerManager) (*CustomizedInterpreter, error) { cm, err := webhookutil.NewClientManager( []schema.GroupVersion{configv1alpha1.SchemeGroupVersion}, configv1alpha1.AddToScheme, diff --git a/pkg/resourceinterpreter/interpreter.go b/pkg/resourceinterpreter/interpreter.go index 06b7aefcb..f08ecf73b 100644 --- a/pkg/resourceinterpreter/interpreter.go +++ b/pkg/resourceinterpreter/interpreter.go @@ -13,7 +13,7 @@ import ( "github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter/webhook" "github.com/karmada-io/karmada/pkg/resourceinterpreter/defaultinterpreter" - "github.com/karmada-io/karmada/pkg/util/informermanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" ) // ResourceInterpreter manages both default and customized webhooks to interpret custom resource structure. @@ -46,7 +46,7 @@ type ResourceInterpreter interface { } // NewResourceInterpreter builds a new ResourceInterpreter object. -func NewResourceInterpreter(kubeconfig string, informer informermanager.SingleClusterInformerManager) ResourceInterpreter { +func NewResourceInterpreter(kubeconfig string, informer genericmanager.SingleClusterInformerManager) ResourceInterpreter { return &customResourceInterpreterImpl{ kubeconfig: kubeconfig, informer: informer, @@ -55,7 +55,7 @@ func NewResourceInterpreter(kubeconfig string, informer informermanager.SingleCl type customResourceInterpreterImpl struct { kubeconfig string - informer informermanager.SingleClusterInformerManager + informer genericmanager.SingleClusterInformerManager customizedInterpreter *customizedinterpreter.CustomizedInterpreter defaultInterpreter *defaultinterpreter.DefaultInterpreter diff --git a/pkg/search/apiserver.go b/pkg/search/apiserver.go index 6a15b8857..9b2a6facb 100644 --- a/pkg/search/apiserver.go +++ b/pkg/search/apiserver.go @@ -10,12 +10,12 @@ import ( searchscheme "github.com/karmada-io/karmada/pkg/apis/search/scheme" clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1" searchstorage "github.com/karmada-io/karmada/pkg/registry/search/storage" - "github.com/karmada-io/karmada/pkg/util/informermanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" ) // ExtraConfig holds custom apiserver config type ExtraConfig struct { - MultiClusterInformerManager informermanager.MultiClusterInformerManager + MultiClusterInformerManager genericmanager.MultiClusterInformerManager ClusterLister clusterlister.ClusterLister // Add custom config if necessary. diff --git a/pkg/search/controller.go b/pkg/search/controller.go index 14be1f475..edb6fddd0 100644 --- a/pkg/search/controller.go +++ b/pkg/search/controller.go @@ -26,8 +26,8 @@ import ( clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1" "github.com/karmada-io/karmada/pkg/search/backendstore" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/gclient" - "github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/restmapper" ) @@ -52,7 +52,7 @@ type Controller struct { clusterRegistry sync.Map - InformerManager informermanager.MultiClusterInformerManager + InformerManager genericmanager.MultiClusterInformerManager } // NewController returns a new ResourceRegistry controller @@ -75,7 +75,7 @@ func NewController(restConfig *rest.Config) (*Controller, error) { queue: queue, restMapper: restMapper, - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), } c.addAllEventHandlers() @@ -118,7 +118,7 @@ func (c *Controller) Start(stopCh <-chan struct{}) { go func() { <-stopCh - informermanager.StopInstance() + genericmanager.StopInstance() klog.Infof("Shutting down karmada search controller") }() } diff --git a/pkg/util/informermanager/multi-cluster-manager.go b/pkg/util/fedinformer/genericmanager/multi-cluster-manager.go similarity index 99% rename from pkg/util/informermanager/multi-cluster-manager.go rename to pkg/util/fedinformer/genericmanager/multi-cluster-manager.go index b2e9a936e..c98b4d0fe 100644 --- a/pkg/util/informermanager/multi-cluster-manager.go +++ b/pkg/util/fedinformer/genericmanager/multi-cluster-manager.go @@ -1,4 +1,4 @@ -package informermanager +package genericmanager import ( "sync" diff --git a/pkg/util/informermanager/single-cluster-manager.go b/pkg/util/fedinformer/genericmanager/single-cluster-manager.go similarity index 99% rename from pkg/util/informermanager/single-cluster-manager.go rename to pkg/util/fedinformer/genericmanager/single-cluster-manager.go index ac589dce1..1f940b6c1 100644 --- a/pkg/util/informermanager/single-cluster-manager.go +++ b/pkg/util/fedinformer/genericmanager/single-cluster-manager.go @@ -1,4 +1,4 @@ -package informermanager +package genericmanager import ( "context" diff --git a/pkg/util/informermanager/handlers.go b/pkg/util/fedinformer/handlers.go similarity index 98% rename from pkg/util/informermanager/handlers.go rename to pkg/util/fedinformer/handlers.go index ee98fc716..7ff76b092 100644 --- a/pkg/util/informermanager/handlers.go +++ b/pkg/util/fedinformer/handlers.go @@ -1,4 +1,4 @@ -package informermanager +package fedinformer import ( "reflect" diff --git a/pkg/util/informermanager/keys/keys.go b/pkg/util/fedinformer/keys/keys.go similarity index 100% rename from pkg/util/informermanager/keys/keys.go rename to pkg/util/fedinformer/keys/keys.go diff --git a/pkg/util/informermanager/keys/keys_test.go b/pkg/util/fedinformer/keys/keys_test.go similarity index 100% rename from pkg/util/informermanager/keys/keys_test.go rename to pkg/util/fedinformer/keys/keys_test.go diff --git a/pkg/util/helper/binding.go b/pkg/util/helper/binding.go index 81d291020..04be1c725 100644 --- a/pkg/util/helper/binding.go +++ b/pkg/util/helper/binding.go @@ -21,7 +21,7 @@ import ( workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" "github.com/karmada-io/karmada/pkg/util" - "github.com/karmada-io/karmada/pkg/util/informermanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" "github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/restmapper" ) @@ -129,7 +129,7 @@ func RemoveOrphanWorks(c client.Client, works []workv1alpha1.Work) error { } // FetchWorkload fetches the kubernetes resource to be propagated. -func FetchWorkload(dynamicClient dynamic.Interface, informerManager informermanager.SingleClusterInformerManager, +func FetchWorkload(dynamicClient dynamic.Interface, informerManager genericmanager.SingleClusterInformerManager, restMapper meta.RESTMapper, resource workv1alpha2.ObjectReference) (*unstructured.Unstructured, error) { dynamicResource, err := restmapper.GetGroupVersionResource(restMapper, schema.FromAPIVersionAndKind(resource.APIVersion, resource.Kind)) diff --git a/pkg/util/helper/cache.go b/pkg/util/helper/cache.go index 69eda09a3..ec9b84614 100644 --- a/pkg/util/helper/cache.go +++ b/pkg/util/helper/cache.go @@ -13,15 +13,15 @@ import ( "k8s.io/client-go/dynamic" "k8s.io/klog/v2" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/restmapper" ) // GetObjectFromCache gets full object information from cache by key in worker queue. func GetObjectFromCache( restMapper meta.RESTMapper, - manager informermanager.MultiClusterInformerManager, + manager genericmanager.MultiClusterInformerManager, fedKey keys.FederatedKey, ) (*unstructured.Unstructured, error) { gvr, err := restmapper.GetGroupVersionResource(restMapper, fedKey.GroupVersionKind()) @@ -60,7 +60,7 @@ func GetObjectFromCache( } // GetObjectFromSingleClusterCache gets full object information from single cluster cache by key in worker queue. -func GetObjectFromSingleClusterCache(restMapper meta.RESTMapper, manager informermanager.SingleClusterInformerManager, +func GetObjectFromSingleClusterCache(restMapper meta.RESTMapper, manager genericmanager.SingleClusterInformerManager, cwk *keys.ClusterWideKey) (*unstructured.Unstructured, error) { gvr, err := restmapper.GetGroupVersionResource(restMapper, cwk.GroupVersionKind()) if err != nil { diff --git a/pkg/util/objectwatcher/objectwatcher.go b/pkg/util/objectwatcher/objectwatcher.go index fbe66a9df..3011ef2be 100644 --- a/pkg/util/objectwatcher/objectwatcher.go +++ b/pkg/util/objectwatcher/objectwatcher.go @@ -17,9 +17,9 @@ import ( workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" "github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/util" + "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager" + "github.com/karmada-io/karmada/pkg/util/fedinformer/keys" "github.com/karmada-io/karmada/pkg/util/helper" - "github.com/karmada-io/karmada/pkg/util/informermanager" - "github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/lifted" "github.com/karmada-io/karmada/pkg/util/restmapper" ) @@ -42,7 +42,7 @@ type objectWatcherImpl struct { VersionRecord map[string]map[string]string ClusterClientSetFunc ClientSetFunc resourceInterpreter resourceinterpreter.ResourceInterpreter - InformerManager informermanager.MultiClusterInformerManager + InformerManager genericmanager.MultiClusterInformerManager } // NewObjectWatcher returns an instance of ObjectWatcher @@ -53,7 +53,7 @@ func NewObjectWatcher(kubeClientSet client.Client, restMapper meta.RESTMapper, c RESTMapper: restMapper, ClusterClientSetFunc: clusterClientSetFunc, resourceInterpreter: interpreter, - InformerManager: informermanager.GetInstance(), + InformerManager: genericmanager.GetInstance(), } }