@@ -55,9 +55,13 @@ func (r *BackupReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
5555 return ctrl.Result {}, nil
5656 }
5757
58- // No further action needed for completed backups
59- if backup .Status .IsDone () {
60- return ctrl.Result {}, nil
58+ // If the backup is already done and not expired, requeue to check expiration
59+ if backup .Status .IsDone () && backup .Status .ExpiredAt != nil {
60+ requeueAfter := time .Until (backup .Status .ExpiredAt .Time )
61+ if requeueAfter < 0 {
62+ requeueAfter = time .Minute
63+ }
64+ return ctrl.Result {RequeueAfter : requeueAfter }, nil
6165 }
6266
6367 // Fetch the associated DocumentDB cluster
@@ -231,7 +235,11 @@ func (r *BackupReconciler) SetBackupPhaseFailed(ctx context.Context, backup *dbp
231235 }
232236
233237 r .Recorder .Event (backup , "Warning" , "BackupFailed" , errMessage )
234- return ctrl.Result {}, nil
238+ requeueAfter := time .Until (backup .Status .ExpiredAt .Time )
239+ if requeueAfter < 0 {
240+ requeueAfter = time .Minute
241+ }
242+ return ctrl.Result {RequeueAfter : requeueAfter }, nil
235243}
236244
237245func (r * BackupReconciler ) SetBackupPhaseSkipped (ctx context.Context , backup * dbpreview.Backup , errMessage string , backupConfiguration * dbpreview.BackupConfiguration ) (ctrl.Result , error ) {
@@ -248,7 +256,11 @@ func (r *BackupReconciler) SetBackupPhaseSkipped(ctx context.Context, backup *db
248256 }
249257
250258 r .Recorder .Event (backup , "Warning" , "BackupSkipped" , errMessage )
251- return ctrl.Result {}, nil
259+ requeueAfter := time .Until (backup .Status .ExpiredAt .Time )
260+ if requeueAfter < 0 {
261+ requeueAfter = time .Minute
262+ }
263+ return ctrl.Result {RequeueAfter : requeueAfter }, nil
252264}
253265
254266// SetupWithManager sets up the controller with the Manager.
0 commit comments