From 7a07c416c3e45d9ae5736072a2eb702542a1e63a Mon Sep 17 00:00:00 2001 From: "liheng.zms" Date: Fri, 7 Jul 2023 17:42:03 +0800 Subject: [PATCH] support parameter set CacheSyncTimeout for controller Signed-off-by: liheng.zms --- main.go | 12 +++++++++--- .../advancedcronjob/advancedcronjob_controller.go | 4 +++- .../broadcastjob/broadcastjob_controller.go | 3 ++- pkg/controller/cloneset/cloneset_controller.go | 2 +- .../container_launch_priority_controller.go | 4 +++- .../containerrecreaterequest/crr_controller.go | 3 ++- pkg/controller/daemonset/daemonset_controller.go | 2 +- .../ephemeraljob/ephemeraljob_controller.go | 3 ++- .../imagelistpulljob/imagelistpulljob_controller.go | 3 ++- .../imagepulljob/imagepulljob_controller.go | 3 ++- pkg/controller/nodeimage/nodeimage_controller.go | 3 ++- .../nodepodprobe/node_pod_probe_controller.go | 2 +- .../persistent_pod_state_controller.go | 2 +- .../podprobemarker/pod_probe_marker_controller.go | 2 +- .../podreadiness/pod_readiness_controller.go | 4 +++- .../podunavailablebudget_controller.go | 2 +- .../resourcedistribution_controller.go | 3 ++- pkg/controller/sidecarset/sidecarset_controller.go | 3 ++- .../sidecar_terminator_controller.go | 2 ++ pkg/controller/statefulset/statefulset_controller.go | 3 ++- .../uniteddeployment/uniteddeployment_controller.go | 2 +- .../workloadspread/workloadspread_controller.go | 2 +- pkg/util/cache.go | 11 +++++++++++ 23 files changed, 57 insertions(+), 23 deletions(-) diff --git a/main.go b/main.go index ed195e333e..0aa61fbf3a 100644 --- a/main.go +++ b/main.go @@ -43,6 +43,7 @@ import ( extclient "github.com/openkruise/kruise/pkg/client" "github.com/openkruise/kruise/pkg/controller" "github.com/openkruise/kruise/pkg/features" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" "github.com/openkruise/kruise/pkg/util/controllerfinder" utilfeature "github.com/openkruise/kruise/pkg/util/feature" @@ -53,9 +54,10 @@ import ( ) const ( - defaultLeaseDuration = 15 * time.Second - defaultRenewDeadline = 10 * time.Second - defaultRetryPeriod = 2 * time.Second + defaultLeaseDuration = 15 * time.Second + defaultRenewDeadline = 10 * time.Second + defaultRetryPeriod = 2 * time.Second + defaultControllerCacheSyncTimeout = 2 * time.Minute ) var ( @@ -90,6 +92,7 @@ func main() { var leaderElectionResourceLock string var leaderElectionId string var retryPeriod time.Duration + var controllerCacheSyncTimeout time.Duration flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.") flag.StringVar(&healthProbeAddr, "health-probe-addr", ":8000", "The address the healthz/readyz endpoint binds to.") @@ -113,6 +116,8 @@ func main() { "leader-election-id determines the name of the resource that leader election will use for holding the leader lock, Default is kruise-manager.") flag.DurationVar(&retryPeriod, "leader-election-retry-period", defaultRetryPeriod, "leader-election-retry-period is the duration the LeaderElector clients should wait between tries of actions. Default is 2 seconds.") + flag.DurationVar(&controllerCacheSyncTimeout, "controller-cache-sync-timeout", defaultControllerCacheSyncTimeout, "CacheSyncTimeout refers to the time limit set to wait for syncing caches. Defaults to 2 minutes if not set.") + utilfeature.DefaultMutableFeatureGate.AddFlag(pflag.CommandLine) klog.InitFlags(nil) pflag.CommandLine.AddGoFlagSet(flag.CommandLine) @@ -120,6 +125,7 @@ func main() { rand.Seed(time.Now().UnixNano()) ctrl.SetLogger(klogr.New()) features.SetDefaultFeatureGates() + util.SetControllerCacheSyncTimeout(controllerCacheSyncTimeout) if enablePprof { go func() { diff --git a/pkg/controller/advancedcronjob/advancedcronjob_controller.go b/pkg/controller/advancedcronjob/advancedcronjob_controller.go index 1e9f237ff0..a57f56ba6d 100644 --- a/pkg/controller/advancedcronjob/advancedcronjob_controller.go +++ b/pkg/controller/advancedcronjob/advancedcronjob_controller.go @@ -23,6 +23,7 @@ import ( "time" appsv1alpha1 "github.com/openkruise/kruise/apis/apps/v1alpha1" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utildiscovery "github.com/openkruise/kruise/pkg/util/discovery" "k8s.io/apimachinery/pkg/runtime" @@ -75,7 +76,8 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller klog.Info("Starting AdvancedCronJob Controller") - c, err := controller.New("advancedcronjob-controller", mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New("advancedcronjob-controller", mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { klog.Error(err) return err diff --git a/pkg/controller/broadcastjob/broadcastjob_controller.go b/pkg/controller/broadcastjob/broadcastjob_controller.go index 79d87a2b6f..c38daf577a 100644 --- a/pkg/controller/broadcastjob/broadcastjob_controller.go +++ b/pkg/controller/broadcastjob/broadcastjob_controller.go @@ -25,6 +25,7 @@ import ( "time" appsv1alpha1 "github.com/openkruise/kruise/apis/apps/v1alpha1" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utildiscovery "github.com/openkruise/kruise/pkg/util/discovery" "github.com/openkruise/kruise/pkg/util/expectations" @@ -99,7 +100,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("broadcastjob-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/cloneset/cloneset_controller.go b/pkg/controller/cloneset/cloneset_controller.go index 387889e329..d79dfa8ea1 100644 --- a/pkg/controller/cloneset/cloneset_controller.go +++ b/pkg/controller/cloneset/cloneset_controller.go @@ -114,7 +114,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("cloneset-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/containerlaunchpriority/container_launch_priority_controller.go b/pkg/controller/containerlaunchpriority/container_launch_priority_controller.go index a5be93b861..6f9557bc14 100644 --- a/pkg/controller/containerlaunchpriority/container_launch_priority_controller.go +++ b/pkg/controller/containerlaunchpriority/container_launch_priority_controller.go @@ -22,6 +22,7 @@ import ( "strconv" "time" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utilcontainerlaunchpriority "github.com/openkruise/kruise/pkg/util/containerlaunchpriority" v1 "k8s.io/api/core/v1" @@ -60,7 +61,8 @@ func newReconciler(mgr manager.Manager) *ReconcileContainerLaunchPriority { // add adds a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r *ReconcileContainerLaunchPriority) error { // Create a new controller - c, err := controller.New("container-launch-priority-controller", mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New("container-launch-priority-controller", mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/containerrecreaterequest/crr_controller.go b/pkg/controller/containerrecreaterequest/crr_controller.go index 86770afab8..43a03c797e 100644 --- a/pkg/controller/containerrecreaterequest/crr_controller.go +++ b/pkg/controller/containerrecreaterequest/crr_controller.go @@ -83,7 +83,8 @@ func newReconciler(mgr manager.Manager) *ReconcileContainerRecreateRequest { // add adds a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r *ReconcileContainerRecreateRequest) error { // Create a new controller - c, err := controller.New("containerrecreaterequest-controller", mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New("containerrecreaterequest-controller", mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/daemonset/daemonset_controller.go b/pkg/controller/daemonset/daemonset_controller.go index ee89482e6f..0cd5d7949f 100644 --- a/pkg/controller/daemonset/daemonset_controller.go +++ b/pkg/controller/daemonset/daemonset_controller.go @@ -207,7 +207,7 @@ func newReconciler(mgr manager.Manager) (reconcile.Reconciler, error) { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("daemonset-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: kruiseutil.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/ephemeraljob/ephemeraljob_controller.go b/pkg/controller/ephemeraljob/ephemeraljob_controller.go index 45a4c93962..029f32fa6c 100644 --- a/pkg/controller/ephemeraljob/ephemeraljob_controller.go +++ b/pkg/controller/ephemeraljob/ephemeraljob_controller.go @@ -73,7 +73,8 @@ func newReconciler(mgr manager.Manager) *ReconcileEphemeralJob { // add adds a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r *ReconcileEphemeralJob) error { // Create a new controller - c, err := controller.New("ephemeraljob-controller", mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New("ephemeraljob-controller", mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/imagelistpulljob/imagelistpulljob_controller.go b/pkg/controller/imagelistpulljob/imagelistpulljob_controller.go index 0d1fb53e54..3d8169fa6a 100644 --- a/pkg/controller/imagelistpulljob/imagelistpulljob_controller.go +++ b/pkg/controller/imagelistpulljob/imagelistpulljob_controller.go @@ -83,7 +83,8 @@ func newReconciler(mgr manager.Manager) *ReconcileImageListPullJob { // add a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r *ReconcileImageListPullJob) error { // Create a new controller - c, err := controller.New(controllerName, mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New(controllerName, mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/imagepulljob/imagepulljob_controller.go b/pkg/controller/imagepulljob/imagepulljob_controller.go index 188bac1c81..0b97adf482 100644 --- a/pkg/controller/imagepulljob/imagepulljob_controller.go +++ b/pkg/controller/imagepulljob/imagepulljob_controller.go @@ -84,7 +84,8 @@ func newReconciler(mgr manager.Manager) *ReconcileImagePullJob { // add adds a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r *ReconcileImagePullJob) error { // Create a new controller - c, err := controller.New("imagepulljob-controller", mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New("imagepulljob-controller", mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/nodeimage/nodeimage_controller.go b/pkg/controller/nodeimage/nodeimage_controller.go index 9638762403..29c1c57259 100644 --- a/pkg/controller/nodeimage/nodeimage_controller.go +++ b/pkg/controller/nodeimage/nodeimage_controller.go @@ -103,7 +103,8 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { // add adds a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller - c, err := controller.New(controllerName, mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New(controllerName, mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/nodepodprobe/node_pod_probe_controller.go b/pkg/controller/nodepodprobe/node_pod_probe_controller.go index 11994ff936..73410980b5 100644 --- a/pkg/controller/nodepodprobe/node_pod_probe_controller.go +++ b/pkg/controller/nodepodprobe/node_pod_probe_controller.go @@ -83,7 +83,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("NodePodProbe-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/persistentpodstate/persistent_pod_state_controller.go b/pkg/controller/persistentpodstate/persistent_pod_state_controller.go index 49a374f103..f3c21777db 100644 --- a/pkg/controller/persistentpodstate/persistent_pod_state_controller.go +++ b/pkg/controller/persistentpodstate/persistent_pod_state_controller.go @@ -97,7 +97,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("persistentpodstate-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/podprobemarker/pod_probe_marker_controller.go b/pkg/controller/podprobemarker/pod_probe_marker_controller.go index 9f6748ee0a..c11c361bba 100644 --- a/pkg/controller/podprobemarker/pod_probe_marker_controller.go +++ b/pkg/controller/podprobemarker/pod_probe_marker_controller.go @@ -88,7 +88,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("PodProbeMarker-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/podreadiness/pod_readiness_controller.go b/pkg/controller/podreadiness/pod_readiness_controller.go index fd155497bb..06867bc135 100644 --- a/pkg/controller/podreadiness/pod_readiness_controller.go +++ b/pkg/controller/podreadiness/pod_readiness_controller.go @@ -21,6 +21,7 @@ import ( "time" appspub "github.com/openkruise/kruise/apis/apps/pub" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utilpodreadiness "github.com/openkruise/kruise/pkg/util/podreadiness" v1 "k8s.io/api/core/v1" @@ -56,7 +57,8 @@ func newReconciler(mgr manager.Manager) *ReconcilePodReadiness { // add adds a new Controller to mgr with r as the reconcile.Reconciler func add(mgr manager.Manager, r *ReconcilePodReadiness) error { // Create a new controller - c, err := controller.New("pod-readiness-controller", mgr, controller.Options{Reconciler: r, MaxConcurrentReconciles: concurrentReconciles}) + c, err := controller.New("pod-readiness-controller", mgr, controller.Options{Reconciler: r, + MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout()}) if err != nil { return err } diff --git a/pkg/controller/podunavailablebudget/podunavailablebudget_controller.go b/pkg/controller/podunavailablebudget/podunavailablebudget_controller.go index b6534e3ab2..e6db298534 100644 --- a/pkg/controller/podunavailablebudget/podunavailablebudget_controller.go +++ b/pkg/controller/podunavailablebudget/podunavailablebudget_controller.go @@ -112,7 +112,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("podunavailablebudget-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/resourcedistribution/resourcedistribution_controller.go b/pkg/controller/resourcedistribution/resourcedistribution_controller.go index 419605ee1a..5425764a8d 100644 --- a/pkg/controller/resourcedistribution/resourcedistribution_controller.go +++ b/pkg/controller/resourcedistribution/resourcedistribution_controller.go @@ -41,6 +41,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/source" appsv1alpha1 "github.com/openkruise/kruise/apis/apps/v1alpha1" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utildiscovery "github.com/openkruise/kruise/pkg/util/discovery" "github.com/openkruise/kruise/pkg/util/ratelimiter" @@ -78,7 +79,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("resourcedistribution-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/sidecarset/sidecarset_controller.go b/pkg/controller/sidecarset/sidecarset_controller.go index db10004266..9ffc29b688 100644 --- a/pkg/controller/sidecarset/sidecarset_controller.go +++ b/pkg/controller/sidecarset/sidecarset_controller.go @@ -34,6 +34,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/source" appsv1alpha1 "github.com/openkruise/kruise/apis/apps/v1alpha1" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utildiscovery "github.com/openkruise/kruise/pkg/util/discovery" "github.com/openkruise/kruise/pkg/util/ratelimiter" @@ -77,7 +78,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("sidecarset-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/sidecarterminator/sidecar_terminator_controller.go b/pkg/controller/sidecarterminator/sidecar_terminator_controller.go index 8cb4270620..251baa8b34 100644 --- a/pkg/controller/sidecarterminator/sidecar_terminator_controller.go +++ b/pkg/controller/sidecarterminator/sidecar_terminator_controller.go @@ -24,6 +24,7 @@ import ( appsv1alpha1 "github.com/openkruise/kruise/apis/apps/v1alpha1" "github.com/openkruise/kruise/pkg/features" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utilfeature "github.com/openkruise/kruise/pkg/util/feature" "github.com/openkruise/kruise/pkg/util/ratelimiter" @@ -79,6 +80,7 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { c, err := controller.New("sidecarterminator-controller", mgr, controller.Options{ Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/statefulset/statefulset_controller.go b/pkg/controller/statefulset/statefulset_controller.go index 2412d9dde4..3e4739c555 100644 --- a/pkg/controller/statefulset/statefulset_controller.go +++ b/pkg/controller/statefulset/statefulset_controller.go @@ -53,6 +53,7 @@ import ( kruiseclientset "github.com/openkruise/kruise/pkg/client/clientset/versioned" kruiseappslisters "github.com/openkruise/kruise/pkg/client/listers/apps/v1beta1" "github.com/openkruise/kruise/pkg/features" + "github.com/openkruise/kruise/pkg/util" utilclient "github.com/openkruise/kruise/pkg/util/client" utildiscovery "github.com/openkruise/kruise/pkg/util/discovery" "github.com/openkruise/kruise/pkg/util/expectations" @@ -181,7 +182,7 @@ type ReconcileStatefulSet struct { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New("statefulset-controller", mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/uniteddeployment/uniteddeployment_controller.go b/pkg/controller/uniteddeployment/uniteddeployment_controller.go index 7f9f34cd53..d785450263 100644 --- a/pkg/controller/uniteddeployment/uniteddeployment_controller.go +++ b/pkg/controller/uniteddeployment/uniteddeployment_controller.go @@ -104,7 +104,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New(controllerName, mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/controller/workloadspread/workloadspread_controller.go b/pkg/controller/workloadspread/workloadspread_controller.go index 2159ef4752..8d01c6748a 100644 --- a/pkg/controller/workloadspread/workloadspread_controller.go +++ b/pkg/controller/workloadspread/workloadspread_controller.go @@ -112,7 +112,7 @@ func Add(mgr manager.Manager) error { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New(controllerName, mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: concurrentReconciles, CacheSyncTimeout: util.GetControllerCacheSyncTimeout(), RateLimiter: ratelimiter.DefaultControllerRateLimiter()}) if err != nil { return err diff --git a/pkg/util/cache.go b/pkg/util/cache.go index e3e09cd8bb..14057d6e21 100644 --- a/pkg/util/cache.go +++ b/pkg/util/cache.go @@ -18,12 +18,23 @@ package util import ( "fmt" + "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/cache" ) +var controllerCacheSyncTimeout time.Duration + +func SetControllerCacheSyncTimeout(t time.Duration) { + controllerCacheSyncTimeout = t +} + +func GetControllerCacheSyncTimeout() time.Duration { + return controllerCacheSyncTimeout +} + // GlobalCache using GVK/namespace/name as key var GlobalCache = cache.NewStore(func(obj interface{}) (string, error) { metaObj, ok := obj.(metav1.Object)