Browse Source

feat: enable concurrent reconciling for push secret reconciler (#4124)

* feat: enable concurrent reconciling for push secret reconciler

Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>

* add cluster secret store concurrent option as well

Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>

---------

Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>
Gergely Brautigam 1 year ago
parent
commit
3ffeeb55dd

+ 6 - 2
cmd/root.go

@@ -189,7 +189,9 @@ var rootCmd = &cobra.Command{
 				Scheme:          mgr.GetScheme(),
 				Scheme:          mgr.GetScheme(),
 				ControllerClass: controllerClass,
 				ControllerClass: controllerClass,
 				RequeueInterval: storeRequeueInterval,
 				RequeueInterval: storeRequeueInterval,
-			}).SetupWithManager(mgr); err != nil {
+			}).SetupWithManager(mgr, controller.Options{
+				MaxConcurrentReconciles: concurrent,
+			}); err != nil {
 				setupLog.Error(err, errCreateController, "controller", "ClusterSecretStore")
 				setupLog.Error(err, errCreateController, "controller", "ClusterSecretStore")
 				os.Exit(1)
 				os.Exit(1)
 			}
 			}
@@ -218,7 +220,9 @@ var rootCmd = &cobra.Command{
 				ControllerClass: controllerClass,
 				ControllerClass: controllerClass,
 				RestConfig:      mgr.GetConfig(),
 				RestConfig:      mgr.GetConfig(),
 				RequeueInterval: time.Hour,
 				RequeueInterval: time.Hour,
-			}).SetupWithManager(mgr); err != nil {
+			}).SetupWithManager(mgr, controller.Options{
+				MaxConcurrentReconciles: concurrent,
+			}); err != nil {
 				setupLog.Error(err, errCreateController, "controller", "PushSecret")
 				setupLog.Error(err, errCreateController, "controller", "PushSecret")
 				os.Exit(1)
 				os.Exit(1)
 			}
 			}

+ 3 - 1
pkg/controllers/pushsecret/pushsecret_controller.go

@@ -32,6 +32,7 @@ import (
 	"k8s.io/client-go/tools/record"
 	"k8s.io/client-go/tools/record"
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/client"
+	"sigs.k8s.io/controller-runtime/pkg/controller"
 	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
 	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
 
 
 	esapi "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
 	esapi "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
@@ -69,10 +70,11 @@ type Reconciler struct {
 	ControllerClass string
 	ControllerClass string
 }
 }
 
 
-func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error {
+func (r *Reconciler) SetupWithManager(mgr ctrl.Manager, opts controller.Options) error {
 	r.recorder = mgr.GetEventRecorderFor("pushsecret")
 	r.recorder = mgr.GetEventRecorderFor("pushsecret")
 
 
 	return ctrl.NewControllerManagedBy(mgr).
 	return ctrl.NewControllerManagedBy(mgr).
+		WithOptions(opts).
 		For(&esapi.PushSecret{}).
 		For(&esapi.PushSecret{}).
 		Complete(r)
 		Complete(r)
 }
 }

+ 4 - 1
pkg/controllers/pushsecret/suite_test.go

@@ -25,6 +25,7 @@ import (
 	"k8s.io/client-go/rest"
 	"k8s.io/client-go/rest"
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/client"
+	"sigs.k8s.io/controller-runtime/pkg/controller"
 	"sigs.k8s.io/controller-runtime/pkg/envtest"
 	"sigs.k8s.io/controller-runtime/pkg/envtest"
 	logf "sigs.k8s.io/controller-runtime/pkg/log"
 	logf "sigs.k8s.io/controller-runtime/pkg/log"
 	"sigs.k8s.io/controller-runtime/pkg/log/zap"
 	"sigs.k8s.io/controller-runtime/pkg/log/zap"
@@ -96,7 +97,9 @@ var _ = BeforeSuite(func() {
 		Log:             ctrl.Log.WithName("controllers").WithName("PushSecret"),
 		Log:             ctrl.Log.WithName("controllers").WithName("PushSecret"),
 		RestConfig:      cfg,
 		RestConfig:      cfg,
 		RequeueInterval: time.Second,
 		RequeueInterval: time.Second,
-	}).SetupWithManager(k8sManager)
+	}).SetupWithManager(k8sManager, controller.Options{
+		MaxConcurrentReconciles: 1,
+	})
 	Expect(err).ToNot(HaveOccurred())
 	Expect(err).ToNot(HaveOccurred())
 
 
 	go func() {
 	go func() {

+ 3 - 1
pkg/controllers/secretstore/clustersecretstore_controller.go

@@ -24,6 +24,7 @@ import (
 	"k8s.io/client-go/tools/record"
 	"k8s.io/client-go/tools/record"
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/client"
+	"sigs.k8s.io/controller-runtime/pkg/controller"
 
 
 	esapi "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
 	esapi "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
 	ctrlmetrics "github.com/external-secrets/external-secrets/pkg/controllers/metrics"
 	ctrlmetrics "github.com/external-secrets/external-secrets/pkg/controllers/metrics"
@@ -66,10 +67,11 @@ func (r *ClusterStoreReconciler) Reconcile(ctx context.Context, req ctrl.Request
 }
 }
 
 
 // SetupWithManager returns a new controller builder that will be started by the provided Manager.
 // SetupWithManager returns a new controller builder that will be started by the provided Manager.
-func (r *ClusterStoreReconciler) SetupWithManager(mgr ctrl.Manager) error {
+func (r *ClusterStoreReconciler) SetupWithManager(mgr ctrl.Manager, opts controller.Options) error {
 	r.recorder = mgr.GetEventRecorderFor("cluster-secret-store")
 	r.recorder = mgr.GetEventRecorderFor("cluster-secret-store")
 
 
 	return ctrl.NewControllerManagedBy(mgr).
 	return ctrl.NewControllerManagedBy(mgr).
+		WithOptions(opts).
 		For(&esapi.ClusterSecretStore{}).
 		For(&esapi.ClusterSecretStore{}).
 		Complete(r)
 		Complete(r)
 }
 }

+ 1 - 1
pkg/controllers/secretstore/suite_test.go

@@ -93,7 +93,7 @@ var _ = BeforeSuite(func() {
 		Scheme:          k8sManager.GetScheme(),
 		Scheme:          k8sManager.GetScheme(),
 		ControllerClass: defaultControllerClass,
 		ControllerClass: defaultControllerClass,
 		Log:             ctrl.Log.WithName("controllers").WithName("ClusterSecretStore"),
 		Log:             ctrl.Log.WithName("controllers").WithName("ClusterSecretStore"),
-	}).SetupWithManager(k8sManager)
+	}).SetupWithManager(k8sManager, controller.Options{})
 	Expect(err).ToNot(HaveOccurred())
 	Expect(err).ToNot(HaveOccurred())
 
 
 	go func() {
 	go func() {