From c55ccc3d2da795f799252dc414e365a51de71a1a Mon Sep 17 00:00:00 2001 From: Andrii Dema Date: Tue, 16 Jan 2024 13:36:23 +0200 Subject: [PATCH] K8SPG-496: trigger reconcile on `PerconaPGBackup` update (#636) https://perconadev.atlassian.net/browse/K8SPG-496 --- percona/controller/pgcluster/controller.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/percona/controller/pgcluster/controller.go b/percona/controller/pgcluster/controller.go index 02735b1b65..01c96e89f9 100644 --- a/percona/controller/pgcluster/controller.go +++ b/percona/controller/pgcluster/controller.go @@ -72,6 +72,7 @@ func (r *PGClusterReconciler) SetupWithManager(mgr manager.Manager) error { Watches(&corev1.Service{}, r.watchServices()). Watches(&corev1.Secret{}, r.watchSecrets()). Watches(&batchv1.Job{}, r.watchBackupJobs()). + Watches(&v2.PerconaPGBackup{}, r.watchPGBackups()). Complete(r) } @@ -109,6 +110,21 @@ func (r *PGClusterReconciler) watchBackupJobs() handler.Funcs { } } +func (r *PGClusterReconciler) watchPGBackups() handler.Funcs { + return handler.Funcs{ + UpdateFunc: func(ctx context.Context, e event.UpdateEvent, q workqueue.RateLimitingInterface) { + pgBackup, ok := e.ObjectNew.(*v2.PerconaPGBackup) + if !ok { + return + } + q.Add(reconcile.Request{NamespacedName: client.ObjectKey{ + Namespace: pgBackup.GetNamespace(), + Name: pgBackup.Spec.PGCluster, + }}) + }, + } +} + func (r *PGClusterReconciler) watchSecrets() handler.Funcs { return handler.Funcs{ UpdateFunc: func(ctx context.Context, e event.UpdateEvent, q workqueue.RateLimitingInterface) { @@ -374,7 +390,8 @@ func isBackupRunning(ctx context.Context, cl client.Reader, cr *v2.PerconaPGClus backupList := &v2.PerconaPGBackupList{} if err := cl.List(ctx, backupList, &client.ListOptions{ - Namespace: cr.Namespace}); err != nil { + Namespace: cr.Namespace, + }); err != nil { return false, errors.Wrap(err, "list backups") }