From eb4321bf7e00f8eb103b3c02fe072f14262dd85e Mon Sep 17 00:00:00 2001 From: Mustafa Elbehery Date: Tue, 9 Jul 2024 14:18:51 +0200 Subject: [PATCH] skip recurring backups upon default annotation --- hack/defaultbackupcr.yaml | 14 ++++++++++++++ pkg/cmd/backuprestore/backupnoconfig.go | 1 + .../periodicbackupcontroller.go | 6 ++++++ 3 files changed, 21 insertions(+) create mode 100644 hack/defaultbackupcr.yaml diff --git a/hack/defaultbackupcr.yaml b/hack/defaultbackupcr.yaml new file mode 100644 index 0000000000..b755d0f81b --- /dev/null +++ b/hack/defaultbackupcr.yaml @@ -0,0 +1,14 @@ +apiVersion: config.openshift.io/v1alpha1 +kind: Backup +metadata: + name: default + annotations: + default: "true" +spec: + etcd: + schedule: "20 4 * * *" + timeZone: "UTC" + retentionPolicy: + retentionType: RetentionNumber + retentionNumber: + maxNumberOfBackups: 5 diff --git a/pkg/cmd/backuprestore/backupnoconfig.go b/pkg/cmd/backuprestore/backupnoconfig.go index e5a9656ff7..8c44847c84 100644 --- a/pkg/cmd/backuprestore/backupnoconfig.go +++ b/pkg/cmd/backuprestore/backupnoconfig.go @@ -15,6 +15,7 @@ import ( type backupNoConfig struct { snapshotExist bool + retention string backupOptions } diff --git a/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go b/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go index 47002712a5..a42e942018 100644 --- a/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go +++ b/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go @@ -3,6 +3,7 @@ package periodicbackupcontroller import ( "context" "fmt" + "slices" "time" backupv1alpha1 "github.com/openshift/api/config/v1alpha1" @@ -80,6 +81,11 @@ func (c *PeriodicBackupController) sync(ctx context.Context, _ factory.SyncConte return fmt.Errorf("PeriodicBackupController could not list backup CRDs, error was: %w", err) } + // ignore reconciliation of default backup + backups.Items = slices.DeleteFunc(backups.Items, func(b backupv1alpha1.Backup) bool { + return b.Name == "default" + }) + for _, item := range backups.Items { err := reconcileCronJob(ctx, cronJobsClient, item, c.operatorImagePullSpec) if err != nil {