From 05a70f7c8f2dc06ff8f105f23359242add049f58 Mon Sep 17 00:00:00 2001 From: Ryotaro Banno Date: Tue, 3 Sep 2024 00:27:27 +0000 Subject: [PATCH] skip reconciliation if role is secondary Signed-off-by: Ryotaro Banno --- cmd/controller/main.go | 2 ++ .../controller/mantlebackupconfig_controller.go | 16 ++++++++++++++-- .../mantlebackupconfig_controller_test.go | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cmd/controller/main.go b/cmd/controller/main.go index 127cac3..286beae 100644 --- a/cmd/controller/main.go +++ b/cmd/controller/main.go @@ -136,12 +136,14 @@ func setupReconcilers(mgr manager.Manager, primarySettings *controller.PrimarySe setupLog.Error(err, "unable to create controller", "controller", "MantleRestore") return err } + if err := controller.NewMantleBackupConfigReconciler( mgr.GetClient(), mgr.GetScheme(), managedCephClusterID, expireOffset, overwriteMBCSchedule, + role, ).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "MantleBackupConfig") return err diff --git a/internal/controller/mantlebackupconfig_controller.go b/internal/controller/mantlebackupconfig_controller.go index b8ab603..36c8d76 100644 --- a/internal/controller/mantlebackupconfig_controller.go +++ b/internal/controller/mantlebackupconfig_controller.go @@ -34,10 +34,18 @@ type MantleBackupConfigReconciler struct { managedCephClusterID string expireOffset string overwriteMBCSchedule string + role string } -func NewMantleBackupConfigReconciler(cli client.Client, scheme *runtime.Scheme, managedCephClusterID string, expireOffset string, overwriteMBCSchedule string) *MantleBackupConfigReconciler { - return &MantleBackupConfigReconciler{cli, scheme, managedCephClusterID, expireOffset, overwriteMBCSchedule} +func NewMantleBackupConfigReconciler( + cli client.Client, + scheme *runtime.Scheme, + managedCephClusterID string, + expireOffset string, + overwriteMBCSchedule string, + role string, +) *MantleBackupConfigReconciler { + return &MantleBackupConfigReconciler{cli, scheme, managedCephClusterID, expireOffset, overwriteMBCSchedule, role} } //+kubebuilder:rbac:groups=mantle.cybozu.io,resources=mantlebackupconfigs,verbs=get;list;watch;create;update;patch;delete @@ -56,6 +64,10 @@ func NewMantleBackupConfigReconciler(cli client.Client, scheme *runtime.Scheme, // For more details, check Reconcile and its Result here: // - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.16.3/pkg/reconcile func (r *MantleBackupConfigReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + if r.role == RoleSecondary { + return ctrl.Result{}, nil + } + // Get the CronJob info to be created or updated cronJobInfo, err := getCronJobInfo(ctx, r.Client) if err != nil { diff --git a/internal/controller/mantlebackupconfig_controller_test.go b/internal/controller/mantlebackupconfig_controller_test.go index fcb7f32..284c2a2 100644 --- a/internal/controller/mantlebackupconfig_controller_test.go +++ b/internal/controller/mantlebackupconfig_controller_test.go @@ -171,7 +171,7 @@ var _ = Describe("MantleBackupConfig controller", func() { }) Expect(err).ToNot(HaveOccurred()) - reconciler = NewMantleBackupConfigReconciler(k8sClient, mgr.GetScheme(), storageClassClusterID, "0s", "") + reconciler = NewMantleBackupConfigReconciler(k8sClient, mgr.GetScheme(), storageClassClusterID, "0s", "", RoleStandalone) err = reconciler.SetupWithManager(mgr) Expect(err).NotTo(HaveOccurred())