Merge pull request #2352 from RainbowMango/pr_rename_informer_manager

rename and re-organize the informermanager
This commit is contained in:
karmada-bot 2022-08-09 20:58:07 +08:00 committed by GitHub
commit b1684b6466
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 104 additions and 98 deletions

View File

@ -34,9 +34,9 @@ import (
"github.com/karmada-io/karmada/pkg/sharedcli/klogflag" "github.com/karmada-io/karmada/pkg/sharedcli/klogflag"
"github.com/karmada-io/karmada/pkg/sharedcli/profileflag" "github.com/karmada-io/karmada/pkg/sharedcli/profileflag"
"github.com/karmada-io/karmada/pkg/util" "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/gclient"
"github.com/karmada-io/karmada/pkg/util/helper" "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/names"
"github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/objectwatcher"
"github.com/karmada-io/karmada/pkg/util/restmapper" "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 { func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stopChan <-chan struct{}) error {
restConfig := mgr.GetConfig() restConfig := mgr.GetConfig()
dynamicClientSet := dynamic.NewForConfigOrDie(restConfig) dynamicClientSet := dynamic.NewForConfigOrDie(restConfig)
controlPlaneInformerManager := informermanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan) controlPlaneInformerManager := genericmanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan)
resourceInterpreter := resourceinterpreter.NewResourceInterpreter("", controlPlaneInformerManager) resourceInterpreter := resourceinterpreter.NewResourceInterpreter("", controlPlaneInformerManager)
if err := mgr.Add(resourceInterpreter); err != nil { if err := mgr.Add(resourceInterpreter); err != nil {
return fmt.Errorf("failed to setup custom resource interpreter: %w", err) 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 // Ensure the InformerManager stops when the stop channel closes
go func() { go func() {
<-stopChan <-stopChan
informermanager.StopInstance() genericmanager.StopInstance()
}() }()
return nil return nil
@ -241,7 +241,7 @@ func startClusterStatusController(ctx controllerscontext.Context) (bool, error)
KubeClient: kubeclientset.NewForConfigOrDie(ctx.Mgr.GetConfig()), KubeClient: kubeclientset.NewForConfigOrDie(ctx.Mgr.GetConfig()),
EventRecorder: ctx.Mgr.GetEventRecorderFor(status.ControllerName), EventRecorder: ctx.Mgr.GetEventRecorderFor(status.ControllerName),
PredicateFunc: helper.NewClusterPredicateOnAgent(ctx.Opts.ClusterName), PredicateFunc: helper.NewClusterPredicateOnAgent(ctx.Opts.ClusterName),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
StopChan: ctx.StopChan, StopChan: ctx.StopChan,
ClusterClientSetFunc: util.NewClusterClientSetForAgent, ClusterClientSetFunc: util.NewClusterClientSetForAgent,
ClusterDynamicClientSetFunc: util.NewClusterDynamicClientSetForAgent, ClusterDynamicClientSetFunc: util.NewClusterDynamicClientSetForAgent,
@ -267,7 +267,7 @@ func startExecutionController(ctx controllerscontext.Context) (bool, error) {
RESTMapper: ctx.Mgr.GetRESTMapper(), RESTMapper: ctx.Mgr.GetRESTMapper(),
ObjectWatcher: ctx.ObjectWatcher, ObjectWatcher: ctx.ObjectWatcher,
PredicateFunc: helper.NewExecutionPredicateOnAgent(), PredicateFunc: helper.NewExecutionPredicateOnAgent(),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
RatelimiterOptions: ctx.Opts.RateLimiterOptions, RatelimiterOptions: ctx.Opts.RateLimiterOptions,
} }
if err := executionController.SetupWithManager(ctx.Mgr); err != nil { if err := executionController.SetupWithManager(ctx.Mgr); err != nil {
@ -281,7 +281,7 @@ func startWorkStatusController(ctx controllerscontext.Context) (bool, error) {
Client: ctx.Mgr.GetClient(), Client: ctx.Mgr.GetClient(),
EventRecorder: ctx.Mgr.GetEventRecorderFor(status.WorkStatusControllerName), EventRecorder: ctx.Mgr.GetEventRecorderFor(status.WorkStatusControllerName),
RESTMapper: ctx.Mgr.GetRESTMapper(), RESTMapper: ctx.Mgr.GetRESTMapper(),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
StopChan: ctx.StopChan, StopChan: ctx.StopChan,
ObjectWatcher: ctx.ObjectWatcher, ObjectWatcher: ctx.ObjectWatcher,
PredicateFunc: helper.NewExecutionPredicateOnAgent(), PredicateFunc: helper.NewExecutionPredicateOnAgent(),
@ -303,7 +303,7 @@ func startServiceExportController(ctx controllerscontext.Context) (bool, error)
Client: ctx.Mgr.GetClient(), Client: ctx.Mgr.GetClient(),
EventRecorder: ctx.Mgr.GetEventRecorderFor(mcs.ServiceExportControllerName), EventRecorder: ctx.Mgr.GetEventRecorderFor(mcs.ServiceExportControllerName),
RESTMapper: ctx.Mgr.GetRESTMapper(), RESTMapper: ctx.Mgr.GetRESTMapper(),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
StopChan: ctx.StopChan, StopChan: ctx.StopChan,
WorkerNumber: 3, WorkerNumber: 3,
PredicateFunc: helper.NewPredicateForServiceExportControllerOnAgent(ctx.Opts.ClusterName), PredicateFunc: helper.NewPredicateForServiceExportControllerOnAgent(ctx.Opts.ClusterName),

View File

@ -47,9 +47,9 @@ import (
"github.com/karmada-io/karmada/pkg/sharedcli/klogflag" "github.com/karmada-io/karmada/pkg/sharedcli/klogflag"
"github.com/karmada-io/karmada/pkg/sharedcli/profileflag" "github.com/karmada-io/karmada/pkg/sharedcli/profileflag"
"github.com/karmada-io/karmada/pkg/util" "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/gclient"
"github.com/karmada-io/karmada/pkg/util/helper" "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/objectwatcher"
"github.com/karmada-io/karmada/pkg/util/overridemanager" "github.com/karmada-io/karmada/pkg/util/overridemanager"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
@ -254,7 +254,7 @@ func startClusterStatusController(ctx controllerscontext.Context) (enabled bool,
KubeClient: kubeclientset.NewForConfigOrDie(mgr.GetConfig()), KubeClient: kubeclientset.NewForConfigOrDie(mgr.GetConfig()),
EventRecorder: mgr.GetEventRecorderFor(status.ControllerName), EventRecorder: mgr.GetEventRecorderFor(status.ControllerName),
PredicateFunc: clusterPredicateFunc, PredicateFunc: clusterPredicateFunc,
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
StopChan: stopChan, StopChan: stopChan,
ClusterClientSetFunc: util.NewClusterClientSet, ClusterClientSetFunc: util.NewClusterClientSet,
ClusterDynamicClientSetFunc: util.NewClusterDynamicClientSet, ClusterDynamicClientSetFunc: util.NewClusterDynamicClientSet,
@ -325,7 +325,7 @@ func startExecutionController(ctx controllerscontext.Context) (enabled bool, err
RESTMapper: ctx.Mgr.GetRESTMapper(), RESTMapper: ctx.Mgr.GetRESTMapper(),
ObjectWatcher: ctx.ObjectWatcher, ObjectWatcher: ctx.ObjectWatcher,
PredicateFunc: helper.NewExecutionPredicate(ctx.Mgr), PredicateFunc: helper.NewExecutionPredicate(ctx.Mgr),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
RatelimiterOptions: ctx.Opts.RateLimiterOptions, RatelimiterOptions: ctx.Opts.RateLimiterOptions,
} }
if err := executionController.SetupWithManager(ctx.Mgr); err != nil { if err := executionController.SetupWithManager(ctx.Mgr); err != nil {
@ -340,7 +340,7 @@ func startWorkStatusController(ctx controllerscontext.Context) (enabled bool, er
Client: ctx.Mgr.GetClient(), Client: ctx.Mgr.GetClient(),
EventRecorder: ctx.Mgr.GetEventRecorderFor(status.WorkStatusControllerName), EventRecorder: ctx.Mgr.GetEventRecorderFor(status.WorkStatusControllerName),
RESTMapper: ctx.Mgr.GetRESTMapper(), RESTMapper: ctx.Mgr.GetRESTMapper(),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
StopChan: ctx.StopChan, StopChan: ctx.StopChan,
ObjectWatcher: ctx.ObjectWatcher, ObjectWatcher: ctx.ObjectWatcher,
PredicateFunc: helper.NewExecutionPredicate(ctx.Mgr), PredicateFunc: helper.NewExecutionPredicate(ctx.Mgr),
@ -381,7 +381,7 @@ func startServiceExportController(ctx controllerscontext.Context) (enabled bool,
Client: ctx.Mgr.GetClient(), Client: ctx.Mgr.GetClient(),
EventRecorder: ctx.Mgr.GetEventRecorderFor(mcs.ServiceExportControllerName), EventRecorder: ctx.Mgr.GetEventRecorderFor(mcs.ServiceExportControllerName),
RESTMapper: ctx.Mgr.GetRESTMapper(), RESTMapper: ctx.Mgr.GetRESTMapper(),
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
StopChan: ctx.StopChan, StopChan: ctx.StopChan,
WorkerNumber: 3, WorkerNumber: 3,
PredicateFunc: helper.NewPredicateForServiceExportController(ctx.Mgr), PredicateFunc: helper.NewPredicateForServiceExportController(ctx.Mgr),
@ -468,7 +468,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
skippedPropagatingNamespaces[ns] = struct{}{} skippedPropagatingNamespaces[ns] = struct{}{}
} }
controlPlaneInformerManager := informermanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan) controlPlaneInformerManager := genericmanager.NewSingleClusterInformerManager(dynamicClientSet, 0, stopChan)
resourceInterpreter := resourceinterpreter.NewResourceInterpreter("", controlPlaneInformerManager) resourceInterpreter := resourceinterpreter.NewResourceInterpreter("", controlPlaneInformerManager)
if err := mgr.Add(resourceInterpreter); err != nil { 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 // Ensure the InformerManager stops when the stop channel closes
go func() { go func() {
<-stopChan <-stopChan
informermanager.StopInstance() genericmanager.StopInstance()
}() }()
} }
@ -573,7 +573,7 @@ func setupClusterAPIClusterDetector(mgr controllerruntime.Manager, opts *options
ControllerPlaneConfig: mgr.GetConfig(), ControllerPlaneConfig: mgr.GetConfig(),
ClusterAPIConfig: clusterAPIRestConfig, ClusterAPIConfig: clusterAPIRestConfig,
ClusterAPIClient: clusterAPIClient, ClusterAPIClient: clusterAPIClient,
InformerManager: informermanager.NewSingleClusterInformerManager(dynamic.NewForConfigOrDie(clusterAPIRestConfig), 0, stopChan), InformerManager: genericmanager.NewSingleClusterInformerManager(dynamic.NewForConfigOrDie(clusterAPIRestConfig), 0, stopChan),
ConcurrentReconciles: 3, ConcurrentReconciles: 3,
} }
if err := mgr.Add(clusterAPIClusterDetector); err != nil { if err := mgr.Add(clusterAPIClusterDetector); err != nil {

View File

@ -22,9 +22,10 @@ import (
"github.com/karmada-io/karmada/pkg/karmadactl" "github.com/karmada-io/karmada/pkg/karmadactl"
"github.com/karmada-io/karmada/pkg/karmadactl/options" "github.com/karmada-io/karmada/pkg/karmadactl/options"
"github.com/karmada-io/karmada/pkg/util" "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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager"
"github.com/karmada-io/karmada/pkg/util/informermanager/keys"
) )
const ( const (
@ -44,7 +45,7 @@ type ClusterDetector struct {
ControllerPlaneConfig *rest.Config ControllerPlaneConfig *rest.Config
ClusterAPIConfig *rest.Config ClusterAPIConfig *rest.Config
ClusterAPIClient client.Client ClusterAPIClient client.Client
InformerManager informermanager.SingleClusterInformerManager InformerManager genericmanager.SingleClusterInformerManager
EventHandler cache.ResourceEventHandler EventHandler cache.ResourceEventHandler
Processor util.AsyncWorker Processor util.AsyncWorker
ConcurrentReconciles int ConcurrentReconciles int
@ -57,7 +58,7 @@ func (d *ClusterDetector) Start(ctx context.Context) error {
klog.Infof("Starting cluster-api cluster detector.") klog.Infof("Starting cluster-api cluster detector.")
d.stopCh = ctx.Done() 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{ workerOptions := util.Options{
Name: "cluster-api cluster detector", Name: "cluster-api cluster detector",
KeyFunc: ClusterWideKeyFunc, KeyFunc: ClusterWideKeyFunc,

View File

@ -2,7 +2,7 @@ package clusterapi
import ( import (
"github.com/karmada-io/karmada/pkg/util" "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. // ClusterWideKeyFunc generates a ClusterWideKey for object.

View File

@ -31,8 +31,8 @@ import (
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag"
"github.com/karmada-io/karmada/pkg/util" "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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager"
"github.com/karmada-io/karmada/pkg/util/overridemanager" "github.com/karmada-io/karmada/pkg/util/overridemanager"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
) )
@ -44,7 +44,7 @@ const ControllerName = "binding-controller"
type ResourceBindingController struct { type ResourceBindingController struct {
client.Client // used to operate ClusterResourceBinding resources. client.Client // used to operate ClusterResourceBinding resources.
DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server.
InformerManager informermanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. InformerManager genericmanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache.
EventRecorder record.EventRecorder EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
OverrideManager overridemanager.OverrideManager OverrideManager overridemanager.OverrideManager

View File

@ -27,8 +27,8 @@ import (
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag"
"github.com/karmada-io/karmada/pkg/util" "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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager"
"github.com/karmada-io/karmada/pkg/util/overridemanager" "github.com/karmada-io/karmada/pkg/util/overridemanager"
) )
@ -39,7 +39,7 @@ const ClusterResourceBindingControllerName = "cluster-resource-binding-controlle
type ClusterResourceBindingController struct { type ClusterResourceBindingController struct {
client.Client // used to operate ClusterResourceBinding resources. client.Client // used to operate ClusterResourceBinding resources.
DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server.
InformerManager informermanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. InformerManager genericmanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache.
EventRecorder record.EventRecorder EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
OverrideManager overridemanager.OverrideManager OverrideManager overridemanager.OverrideManager

View File

@ -20,8 +20,8 @@ import (
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
"github.com/karmada-io/karmada/pkg/features" "github.com/karmada-io/karmada/pkg/features"
"github.com/karmada-io/karmada/pkg/util" "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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager/keys"
) )
// TaintManagerName is the controller name that will be used for taint management. // TaintManagerName is the controller name that will be used for taint management.

View File

@ -9,7 +9,7 @@ import (
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "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/objectwatcher"
"github.com/karmada-io/karmada/pkg/util/overridemanager" "github.com/karmada-io/karmada/pkg/util/overridemanager"
) )
@ -71,7 +71,7 @@ type Context struct {
StopChan <-chan struct{} StopChan <-chan struct{}
DynamicClientSet dynamic.Interface DynamicClientSet dynamic.Interface
OverrideManager overridemanager.OverrideManager OverrideManager overridemanager.OverrideManager
ControlPlaneInformerManager informermanager.SingleClusterInformerManager ControlPlaneInformerManager genericmanager.SingleClusterInformerManager
ResourceInterpreter resourceinterpreter.ResourceInterpreter ResourceInterpreter resourceinterpreter.ResourceInterpreter
} }

View File

@ -23,9 +23,9 @@ import (
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag"
"github.com/karmada-io/karmada/pkg/util" "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/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/names"
"github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/objectwatcher"
) )
@ -42,7 +42,7 @@ type Controller struct {
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
ObjectWatcher objectwatcher.ObjectWatcher ObjectWatcher objectwatcher.ObjectWatcher
PredicateFunc predicate.Predicate PredicateFunc predicate.Predicate
InformerManager informermanager.MultiClusterInformerManager InformerManager genericmanager.MultiClusterInformerManager
RatelimiterOptions ratelimiterflag.Options RatelimiterOptions ratelimiterflag.Options
} }

View File

@ -19,8 +19,8 @@ import (
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
"github.com/karmada-io/karmada/pkg/util" "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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager"
"github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/names"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
) )
@ -32,7 +32,7 @@ const ControllerName = "hpa-controller"
type HorizontalPodAutoscalerController struct { type HorizontalPodAutoscalerController struct {
client.Client // used to operate HorizontalPodAutoscaler resources. client.Client // used to operate HorizontalPodAutoscaler resources.
DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server. DynamicClient dynamic.Interface // used to fetch arbitrary resources from api server.
InformerManager informermanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache. InformerManager genericmanager.SingleClusterInformerManager // used to fetch arbitrary resources from cache.
EventRecorder record.EventRecorder EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
} }

View File

@ -28,9 +28,10 @@ import (
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1" clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/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"
"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/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/names"
) )
@ -43,7 +44,7 @@ type ServiceExportController struct {
EventRecorder record.EventRecorder EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
StopChan <-chan struct{} StopChan <-chan struct{}
InformerManager informermanager.MultiClusterInformerManager InformerManager genericmanager.MultiClusterInformerManager
WorkerNumber int // WorkerNumber is the number of worker goroutines WorkerNumber int // WorkerNumber is the number of worker goroutines
PredicateFunc predicate.Predicate // PredicateFunc is the function that filters events before enqueuing the keys. PredicateFunc predicate.Predicate // PredicateFunc is the function that filters events before enqueuing the keys.
ClusterDynamicClientSetFunc func(clusterName string, client client.Client) (*util.DynamicClusterClient, error) 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) 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.genHandlerDeleteFunc(clusterName))
c.eventHandlers.Store(clusterName, eventHandler) c.eventHandlers.Store(clusterName, eventHandler)
return eventHandler return eventHandler

View File

@ -33,8 +33,8 @@ import (
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1" clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag"
"github.com/karmada-io/karmada/pkg/util" "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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager"
) )
const ( const (
@ -60,7 +60,7 @@ type ClusterStatusController struct {
KubeClient clientset.Interface KubeClient clientset.Interface
EventRecorder record.EventRecorder EventRecorder record.EventRecorder
PredicateFunc predicate.Predicate PredicateFunc predicate.Predicate
InformerManager informermanager.MultiClusterInformerManager InformerManager genericmanager.MultiClusterInformerManager
StopChan <-chan struct{} StopChan <-chan struct{}
ClusterClientSetFunc func(string, client.Client, *util.ClientOption) (*util.ClusterClient, error) ClusterClientSetFunc func(string, client.Client, *util.ClientOption) (*util.ClusterClient, error)
ClusterDynamicClientSetFunc func(clusterName string, client client.Client) (*util.DynamicClusterClient, 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 // 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. // 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) singleClusterInformerManager := c.InformerManager.GetSingleClusterManager(cluster.Name)
if singleClusterInformerManager == nil { if singleClusterInformerManager == nil {
clusterClient, err := c.ClusterDynamicClientSetFunc(cluster.Name, c.Client) 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. // 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) podLister := informerManager.Lister(podGVR)
podList, err := podLister.List(labels.Everything()) podList, err := podLister.List(labels.Everything())
@ -420,7 +420,7 @@ func listPods(informerManager informermanager.SingleClusterInformerManager) ([]*
} }
// listNodes returns the Node list from the informerManager cache. // 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) nodeLister := informerManager.Lister(nodeGVR)
nodeList, err := nodeLister.List(labels.Everything()) nodeList, err := nodeLister.List(labels.Everything())

View File

@ -25,9 +25,10 @@ import (
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag"
"github.com/karmada-io/karmada/pkg/util" "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/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/names"
"github.com/karmada-io/karmada/pkg/util/objectwatcher" "github.com/karmada-io/karmada/pkg/util/objectwatcher"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
@ -41,7 +42,7 @@ type WorkStatusController struct {
client.Client // used to operate Work resources. client.Client // used to operate Work resources.
EventRecorder record.EventRecorder EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
InformerManager informermanager.MultiClusterInformerManager InformerManager genericmanager.MultiClusterInformerManager
eventHandler cache.ResourceEventHandler // eventHandler knows how to handle events from the member cluster. eventHandler cache.ResourceEventHandler // eventHandler knows how to handle events from the member cluster.
StopChan <-chan struct{} StopChan <-chan struct{}
worker util.AsyncWorker // worker process resources periodic from rateLimitingQueue. 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. // getEventHandler return callback function that knows how to handle events from the member cluster.
func (c *WorkStatusController) getEventHandler() cache.ResourceEventHandler { func (c *WorkStatusController) getEventHandler() cache.ResourceEventHandler {
if c.eventHandler == nil { if c.eventHandler == nil {
c.eventHandler = informermanager.NewHandlerOnAllEvents(c.worker.Enqueue) c.eventHandler = fedinformer.NewHandlerOnAllEvents(c.worker.Enqueue)
} }
return c.eventHandler return c.eventHandler
} }
@ -442,7 +443,7 @@ func (c *WorkStatusController) getGVRsFromWork(work *workv1alpha1.Work) (map[sch
// getSingleClusterManager gets singleClusterInformerManager with clusterName. // getSingleClusterManager gets singleClusterInformerManager with clusterName.
// If manager is not exist, create it, otherwise gets it from map. // 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, // 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. // the cache in informer manager should be updated.
singleClusterInformerManager := c.InformerManager.GetSingleClusterManager(cluster.Name) singleClusterInformerManager := c.InformerManager.GetSingleClusterManager(cluster.Name)

View File

@ -30,9 +30,10 @@ import (
"github.com/karmada-io/karmada/pkg/detector" "github.com/karmada-io/karmada/pkg/detector"
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/util" "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/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/names"
) )
@ -59,7 +60,7 @@ type DependenciesDistributor struct {
// DynamicClient used to fetch arbitrary resources. // DynamicClient used to fetch arbitrary resources.
DynamicClient dynamic.Interface DynamicClient dynamic.Interface
InformerManager informermanager.SingleClusterInformerManager InformerManager genericmanager.SingleClusterInformerManager
EventHandler cache.ResourceEventHandler EventHandler cache.ResourceEventHandler
Processor util.AsyncWorker Processor util.AsyncWorker
RESTMapper meta.RESTMapper RESTMapper meta.RESTMapper
@ -94,7 +95,7 @@ func (d *DependenciesDistributor) Start(ctx context.Context) error {
Resource: "resourcebindings", Resource: "resourcebindings",
} }
bindingHandler := informermanager.NewHandlerOnEvents(nil, d.OnResourceBindingUpdate, d.OnResourceBindingDelete) bindingHandler := fedinformer.NewHandlerOnEvents(nil, d.OnResourceBindingUpdate, d.OnResourceBindingDelete)
d.InformerManager.ForResource(resourceBindingGVR, bindingHandler) d.InformerManager.ForResource(resourceBindingGVR, bindingHandler)
d.resourceBindingLister = d.InformerManager.Lister(resourceBindingGVR) d.resourceBindingLister = d.InformerManager.Lister(resourceBindingGVR)
resourceWorkerOptions := util.Options{ resourceWorkerOptions := util.Options{
@ -102,7 +103,7 @@ func (d *DependenciesDistributor) Start(ctx context.Context) error {
KeyFunc: detector.ClusterWideKeyFunc, KeyFunc: detector.ClusterWideKeyFunc,
ReconcileFunc: d.Reconcile, 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 = util.NewAsyncWorker(resourceWorkerOptions)
d.Processor.Run(2, d.stopCh) d.Processor.Run(2, d.stopCh)
go d.discoverResources(30 * time.Second) go d.discoverResources(30 * time.Second)

View File

@ -32,9 +32,10 @@ import (
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag" "github.com/karmada-io/karmada/pkg/sharedcli/ratelimiterflag"
"github.com/karmada-io/karmada/pkg/util" "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/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/lifted"
"github.com/karmada-io/karmada/pkg/util/names" "github.com/karmada-io/karmada/pkg/util/names"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
@ -48,7 +49,7 @@ type ResourceDetector struct {
Client client.Client Client client.Client
// DynamicClient used to fetch arbitrary resources. // DynamicClient used to fetch arbitrary resources.
DynamicClient dynamic.Interface DynamicClient dynamic.Interface
InformerManager informermanager.SingleClusterInformerManager InformerManager genericmanager.SingleClusterInformerManager
EventHandler cache.ResourceEventHandler EventHandler cache.ResourceEventHandler
Processor util.AsyncWorker Processor util.AsyncWorker
SkippedResourceConfig *util.SkippedResourceConfig SkippedResourceConfig *util.SkippedResourceConfig
@ -114,7 +115,7 @@ func (d *ResourceDetector) Start(ctx context.Context) error {
Version: policyv1alpha1.GroupVersion.Version, Version: policyv1alpha1.GroupVersion.Version,
Resource: "propagationpolicies", 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.InformerManager.ForResource(propagationPolicyGVR, policyHandler)
d.propagationPolicyLister = d.InformerManager.Lister(propagationPolicyGVR) d.propagationPolicyLister = d.InformerManager.Lister(propagationPolicyGVR)
@ -124,7 +125,7 @@ func (d *ResourceDetector) Start(ctx context.Context) error {
Version: policyv1alpha1.GroupVersion.Version, Version: policyv1alpha1.GroupVersion.Version,
Resource: "clusterpropagationpolicies", 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.InformerManager.ForResource(clusterPropagationPolicyGVR, clusterPolicyHandler)
d.clusterPropagationPolicyLister = d.InformerManager.Lister(clusterPropagationPolicyGVR) d.clusterPropagationPolicyLister = d.InformerManager.Lister(clusterPropagationPolicyGVR)
@ -135,7 +136,7 @@ func (d *ResourceDetector) Start(ctx context.Context) error {
RateLimiterOptions: d.RateLimiterOptions, 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 = util.NewAsyncWorker(detectorWorkerOptions)
d.Processor.Run(d.ConcurrentResourceTemplateSyncs, d.stopCh) d.Processor.Run(d.ConcurrentResourceTemplateSyncs, d.stopCh)
go d.discoverResources(30 * time.Second) go d.discoverResources(30 * time.Second)

View File

@ -2,7 +2,7 @@ package detector
import ( import (
"github.com/karmada-io/karmada/pkg/util" "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. // ClusterWideKeyFunc generates a ClusterWideKey for object.

View File

@ -32,9 +32,9 @@ import (
"github.com/karmada-io/karmada/pkg/estimator/server/replica" "github.com/karmada-io/karmada/pkg/estimator/server/replica"
estimatorservice "github.com/karmada-io/karmada/pkg/estimator/service" estimatorservice "github.com/karmada-io/karmada/pkg/estimator/service"
"github.com/karmada-io/karmada/pkg/util" "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/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/lifted"
) )
@ -62,7 +62,7 @@ type AccurateSchedulerEstimatorServer struct {
nodeLister listv1.NodeLister nodeLister listv1.NodeLister
replicaLister *replica.ListerWrapper replicaLister *replica.ListerWrapper
getPodFunc func(nodeName string) ([]*corev1.Pod, error) getPodFunc func(nodeName string) ([]*corev1.Pod, error)
informerManager informermanager.SingleClusterInformerManager informerManager genericmanager.SingleClusterInformerManager
parallelizer lifted.Parallelizer parallelizer lifted.Parallelizer
} }
@ -128,7 +128,7 @@ func NewEstimatorServer(
} }
return pods, nil return pods, nil
} }
es.informerManager = informermanager.NewSingleClusterInformerManager(dynamicClient, 0, stopChan) es.informerManager = genericmanager.NewSingleClusterInformerManager(dynamicClient, 0, stopChan)
for _, gvr := range supportedGVRs { for _, gvr := range supportedGVRs {
es.informerManager.Lister(gvr) es.informerManager.Lister(gvr)
} }

View File

@ -13,12 +13,12 @@ import (
searchapis "github.com/karmada-io/karmada/pkg/apis/search" searchapis "github.com/karmada-io/karmada/pkg/apis/search"
clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1" 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. // SearchREST implements a RESTStorage for search resource.
type SearchREST struct { type SearchREST struct {
multiClusterInformerManager informermanager.MultiClusterInformerManager multiClusterInformerManager genericmanager.MultiClusterInformerManager
clusterLister clusterlister.ClusterLister clusterLister clusterlister.ClusterLister
// add needed parameters here // add needed parameters here
@ -30,7 +30,7 @@ var _ rest.Connecter = &SearchREST{}
// NewSearchREST returns a RESTStorage object that will work against search. // NewSearchREST returns a RESTStorage object that will work against search.
func NewSearchREST( func NewSearchREST(
multiClusterInformerManager informermanager.MultiClusterInformerManager, multiClusterInformerManager genericmanager.MultiClusterInformerManager,
clusterLister clusterlister.ClusterLister) *SearchREST { clusterLister clusterlister.ClusterLister) *SearchREST {
return &SearchREST{ return &SearchREST{
multiClusterInformerManager: multiClusterInformerManager, multiClusterInformerManager: multiClusterInformerManager,

View File

@ -12,8 +12,9 @@ import (
"k8s.io/klog/v2" "k8s.io/klog/v2"
configv1alpha1 "github.com/karmada-io/karmada/pkg/apis/config/v1alpha1" 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/helper"
"github.com/karmada-io/karmada/pkg/util/informermanager"
) )
var resourceExploringWebhookConfigurationsGVR = schema.GroupVersionResource{ var resourceExploringWebhookConfigurationsGVR = schema.GroupVersionResource{
@ -59,7 +60,7 @@ func (m *interpreterConfigManager) HasSynced() bool {
} }
// NewExploreConfigManager return a new interpreterConfigManager with resourceinterpreterwebhookconfigurations handlers. // NewExploreConfigManager return a new interpreterConfigManager with resourceinterpreterwebhookconfigurations handlers.
func NewExploreConfigManager(inform informermanager.SingleClusterInformerManager) ConfigManager { func NewExploreConfigManager(inform genericmanager.SingleClusterInformerManager) ConfigManager {
manager := &interpreterConfigManager{ manager := &interpreterConfigManager{
configuration: &atomic.Value{}, configuration: &atomic.Value{},
lister: inform.Lister(resourceExploringWebhookConfigurationsGVR), lister: inform.Lister(resourceExploringWebhookConfigurationsGVR),
@ -69,7 +70,7 @@ func NewExploreConfigManager(inform informermanager.SingleClusterInformerManager
manager.configuration.Store([]WebhookAccessor{}) manager.configuration.Store([]WebhookAccessor{})
manager.initialSynced.Store(false) manager.initialSynced.Store(false)
configHandlers := informermanager.NewHandlerOnEvents( configHandlers := fedinformer.NewHandlerOnEvents(
func(_ interface{}) { manager.updateConfiguration() }, func(_ interface{}) { manager.updateConfiguration() },
func(_, _ interface{}) { manager.updateConfiguration() }, func(_, _ interface{}) { manager.updateConfiguration() },
func(_ interface{}) { manager.updateConfiguration() }) func(_ interface{}) { manager.updateConfiguration() })

View File

@ -20,7 +20,7 @@ import (
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" 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/configmanager"
"github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter/webhook" "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" interpreterutil "github.com/karmada-io/karmada/pkg/util/interpreter"
) )
@ -31,7 +31,7 @@ type CustomizedInterpreter struct {
} }
// NewCustomizedInterpreter return a new CustomizedInterpreter. // 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( cm, err := webhookutil.NewClientManager(
[]schema.GroupVersion{configv1alpha1.SchemeGroupVersion}, []schema.GroupVersion{configv1alpha1.SchemeGroupVersion},
configv1alpha1.AddToScheme, configv1alpha1.AddToScheme,

View File

@ -13,7 +13,7 @@ import (
"github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter"
"github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter/webhook" "github.com/karmada-io/karmada/pkg/resourceinterpreter/customizedinterpreter/webhook"
"github.com/karmada-io/karmada/pkg/resourceinterpreter/defaultinterpreter" "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. // 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. // NewResourceInterpreter builds a new ResourceInterpreter object.
func NewResourceInterpreter(kubeconfig string, informer informermanager.SingleClusterInformerManager) ResourceInterpreter { func NewResourceInterpreter(kubeconfig string, informer genericmanager.SingleClusterInformerManager) ResourceInterpreter {
return &customResourceInterpreterImpl{ return &customResourceInterpreterImpl{
kubeconfig: kubeconfig, kubeconfig: kubeconfig,
informer: informer, informer: informer,
@ -55,7 +55,7 @@ func NewResourceInterpreter(kubeconfig string, informer informermanager.SingleCl
type customResourceInterpreterImpl struct { type customResourceInterpreterImpl struct {
kubeconfig string kubeconfig string
informer informermanager.SingleClusterInformerManager informer genericmanager.SingleClusterInformerManager
customizedInterpreter *customizedinterpreter.CustomizedInterpreter customizedInterpreter *customizedinterpreter.CustomizedInterpreter
defaultInterpreter *defaultinterpreter.DefaultInterpreter defaultInterpreter *defaultinterpreter.DefaultInterpreter

View File

@ -10,12 +10,12 @@ import (
searchscheme "github.com/karmada-io/karmada/pkg/apis/search/scheme" searchscheme "github.com/karmada-io/karmada/pkg/apis/search/scheme"
clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1" clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1"
searchstorage "github.com/karmada-io/karmada/pkg/registry/search/storage" 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 // ExtraConfig holds custom apiserver config
type ExtraConfig struct { type ExtraConfig struct {
MultiClusterInformerManager informermanager.MultiClusterInformerManager MultiClusterInformerManager genericmanager.MultiClusterInformerManager
ClusterLister clusterlister.ClusterLister ClusterLister clusterlister.ClusterLister
// Add custom config if necessary. // Add custom config if necessary.

View File

@ -26,8 +26,8 @@ import (
clusterlister "github.com/karmada-io/karmada/pkg/generated/listers/cluster/v1alpha1" 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/search/backendstore"
"github.com/karmada-io/karmada/pkg/util" "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/gclient"
"github.com/karmada-io/karmada/pkg/util/informermanager"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
) )
@ -52,7 +52,7 @@ type Controller struct {
clusterRegistry sync.Map clusterRegistry sync.Map
InformerManager informermanager.MultiClusterInformerManager InformerManager genericmanager.MultiClusterInformerManager
} }
// NewController returns a new ResourceRegistry controller // NewController returns a new ResourceRegistry controller
@ -75,7 +75,7 @@ func NewController(restConfig *rest.Config) (*Controller, error) {
queue: queue, queue: queue,
restMapper: restMapper, restMapper: restMapper,
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
} }
c.addAllEventHandlers() c.addAllEventHandlers()
@ -118,7 +118,7 @@ func (c *Controller) Start(stopCh <-chan struct{}) {
go func() { go func() {
<-stopCh <-stopCh
informermanager.StopInstance() genericmanager.StopInstance()
klog.Infof("Shutting down karmada search controller") klog.Infof("Shutting down karmada search controller")
}() }()
} }

View File

@ -1,4 +1,4 @@
package informermanager package genericmanager
import ( import (
"sync" "sync"

View File

@ -1,4 +1,4 @@
package informermanager package genericmanager
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package informermanager package fedinformer
import ( import (
"reflect" "reflect"

View File

@ -21,7 +21,7 @@ import (
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1" workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
"github.com/karmada-io/karmada/pkg/util" "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/names"
"github.com/karmada-io/karmada/pkg/util/restmapper" "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. // 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) { restMapper meta.RESTMapper, resource workv1alpha2.ObjectReference) (*unstructured.Unstructured, error) {
dynamicResource, err := restmapper.GetGroupVersionResource(restMapper, dynamicResource, err := restmapper.GetGroupVersionResource(restMapper,
schema.FromAPIVersionAndKind(resource.APIVersion, resource.Kind)) schema.FromAPIVersionAndKind(resource.APIVersion, resource.Kind))

View File

@ -13,15 +13,15 @@ import (
"k8s.io/client-go/dynamic" "k8s.io/client-go/dynamic"
"k8s.io/klog/v2" "k8s.io/klog/v2"
"github.com/karmada-io/karmada/pkg/util/informermanager" "github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager"
"github.com/karmada-io/karmada/pkg/util/informermanager/keys" "github.com/karmada-io/karmada/pkg/util/fedinformer/keys"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
) )
// GetObjectFromCache gets full object information from cache by key in worker queue. // GetObjectFromCache gets full object information from cache by key in worker queue.
func GetObjectFromCache( func GetObjectFromCache(
restMapper meta.RESTMapper, restMapper meta.RESTMapper,
manager informermanager.MultiClusterInformerManager, manager genericmanager.MultiClusterInformerManager,
fedKey keys.FederatedKey, fedKey keys.FederatedKey,
) (*unstructured.Unstructured, error) { ) (*unstructured.Unstructured, error) {
gvr, err := restmapper.GetGroupVersionResource(restMapper, fedKey.GroupVersionKind()) 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. // 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) { cwk *keys.ClusterWideKey) (*unstructured.Unstructured, error) {
gvr, err := restmapper.GetGroupVersionResource(restMapper, cwk.GroupVersionKind()) gvr, err := restmapper.GetGroupVersionResource(restMapper, cwk.GroupVersionKind())
if err != nil { if err != nil {

View File

@ -17,9 +17,9 @@ import (
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2" workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
"github.com/karmada-io/karmada/pkg/resourceinterpreter" "github.com/karmada-io/karmada/pkg/resourceinterpreter"
"github.com/karmada-io/karmada/pkg/util" "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/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/lifted"
"github.com/karmada-io/karmada/pkg/util/restmapper" "github.com/karmada-io/karmada/pkg/util/restmapper"
) )
@ -42,7 +42,7 @@ type objectWatcherImpl struct {
VersionRecord map[string]map[string]string VersionRecord map[string]map[string]string
ClusterClientSetFunc ClientSetFunc ClusterClientSetFunc ClientSetFunc
resourceInterpreter resourceinterpreter.ResourceInterpreter resourceInterpreter resourceinterpreter.ResourceInterpreter
InformerManager informermanager.MultiClusterInformerManager InformerManager genericmanager.MultiClusterInformerManager
} }
// NewObjectWatcher returns an instance of ObjectWatcher // NewObjectWatcher returns an instance of ObjectWatcher
@ -53,7 +53,7 @@ func NewObjectWatcher(kubeClientSet client.Client, restMapper meta.RESTMapper, c
RESTMapper: restMapper, RESTMapper: restMapper,
ClusterClientSetFunc: clusterClientSetFunc, ClusterClientSetFunc: clusterClientSetFunc,
resourceInterpreter: interpreter, resourceInterpreter: interpreter,
InformerManager: informermanager.GetInstance(), InformerManager: genericmanager.GetInstance(),
} }
} }