diff --git a/hack/defaultbackupcr.yaml b/hack/defaultbackupcr.yaml new file mode 100644 index 0000000000..471bae4697 --- /dev/null +++ b/hack/defaultbackupcr.yaml @@ -0,0 +1,14 @@ +apiVersion: config.openshift.io/v1alpha1 +kind: Backup +metadata: + name: testbackup + 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..e9edf75f90 100644 --- a/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go +++ b/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go @@ -79,6 +79,11 @@ func (c *PeriodicBackupController) sync(ctx context.Context, _ factory.SyncConte if err != nil { return fmt.Errorf("PeriodicBackupController could not list backup CRDs, error was: %w", err) } + // skip if default backup enabled + if v1.HasAnnotation(backups.Items[0].ObjectMeta, "default") { + klog.V(4).Info("PeriodicBackupController is skipped due to default backup being enabled") + return nil + } for _, item := range backups.Items { err := reconcileCronJob(ctx, cronJobsClient, item, c.operatorImagePullSpec)