Merge pull request #2352 from RainbowMango/pr_rename_informer_manager
rename and re-organize the informermanager
This commit is contained in:
commit
b1684b6466
|
@ -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),
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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())
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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() })
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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")
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package informermanager
|
package genericmanager
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"sync"
|
"sync"
|
|
@ -1,4 +1,4 @@
|
||||||
package informermanager
|
package genericmanager
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
|
@ -1,4 +1,4 @@
|
||||||
package informermanager
|
package fedinformer
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
"reflect"
|
|
@ -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))
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue