Skip to content

Commit 5fe3ef2

Browse files
committed
fix: expired cachedimages with pull errors were not deleted
1 parent 3188ced commit 5fe3ef2

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

internal/controller/kuik/cachedimage_controller.go

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ func (r *CachedImageReconciler) Reconcile(ctx context.Context, req ctrl.Request)
107107
repository.Spec.Name = repositoryName
108108
return nil
109109
})
110-
111110
if err != nil {
112111
return ctrl.Result{}, err
113112
}
@@ -219,6 +218,23 @@ func (r *CachedImageReconciler) Reconcile(ctx context.Context, req ctrl.Request)
219218
return ctrl.Result{}, err
220219
}
221220

221+
// Delete expired CachedImage and schedule deletion for expiring ones
222+
if !expiresAt.IsZero() {
223+
if time.Now().After(expiresAt.Time) {
224+
log.Info("cachedimage expired, deleting it", "now", time.Now(), "expiresAt", expiresAt)
225+
r.Recorder.Eventf(&cachedImage, "Normal", "Expiring", "Image %s has expired, deleting it", cachedImage.Spec.SourceImage)
226+
err := r.Delete(ctx, &cachedImage)
227+
if err != nil {
228+
r.Recorder.Eventf(&cachedImage, "Warning", "ExpiringFailed", "Image %s could not expire: %s", cachedImage.Spec.SourceImage, err)
229+
return ctrl.Result{}, err
230+
}
231+
r.Recorder.Eventf(&cachedImage, "Normal", "Expired", "Image %s successfully expired", cachedImage.Spec.SourceImage)
232+
return ctrl.Result{}, nil
233+
} else {
234+
return ctrl.Result{RequeueAfter: time.Until(expiresAt.Time)}, nil
235+
}
236+
}
237+
222238
// Adding image to registry
223239
putImageInCache := true
224240
if isCached && !forceUpdate {
@@ -247,23 +263,6 @@ func (r *CachedImageReconciler) Reconcile(ctx context.Context, req ctrl.Request)
247263
return ctrl.Result{}, err
248264
}
249265

250-
// Delete expired CachedImage and schedule deletion for expiring ones
251-
if !expiresAt.IsZero() {
252-
if time.Now().After(expiresAt.Time) {
253-
log.Info("cachedimage expired, deleting it", "now", time.Now(), "expiresAt", expiresAt)
254-
r.Recorder.Eventf(&cachedImage, "Normal", "Expiring", "Image %s has expired, deleting it", cachedImage.Spec.SourceImage)
255-
err := r.Delete(ctx, &cachedImage)
256-
if err != nil {
257-
r.Recorder.Eventf(&cachedImage, "Warning", "ExpiringFailed", "Image %s could not expire: %s", cachedImage.Spec.SourceImage, err)
258-
return ctrl.Result{}, err
259-
}
260-
r.Recorder.Eventf(&cachedImage, "Normal", "Expired", "Image %s successfully expired", cachedImage.Spec.SourceImage)
261-
return ctrl.Result{}, nil
262-
} else {
263-
return ctrl.Result{RequeueAfter: time.Until(expiresAt.Time)}, nil
264-
}
265-
}
266-
267266
log.Info("cachedimage reconciled")
268267
return ctrl.Result{}, nil
269268
}

0 commit comments

Comments
 (0)