From 5e897ef207efe6eaaf4fb9e5168bdebbe2afcb44 Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Fri, 13 Mar 2026 00:31:56 +0100 Subject: [PATCH] fix(operator): requeue packages when dependencies are not ready When dependencies are not ready the reconciler returned without requeueing, relying solely on watch events to re-trigger. If a watch event was missed (controller restart, race condition, dependency already ready before watch setup), the package would stay stuck in DependenciesNotReady forever. Add RequeueAfter: 30s so dependencies are periodically rechecked. Co-Authored-By: Claude Signed-off-by: Andrei Kvapil (cherry picked from commit f906a0d8ad56f9cee705b6ae3c8332bce8eac525) --- internal/operator/package_reconciler.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/operator/package_reconciler.go b/internal/operator/package_reconciler.go index 32e667e46..d95d3e670 100644 --- a/internal/operator/package_reconciler.go +++ b/internal/operator/package_reconciler.go @@ -20,6 +20,7 @@ import ( "context" "fmt" "strings" + "time" cozyv1alpha1 "github.com/cozystack/cozystack/api/v1alpha1" helmv2 "github.com/fluxcd/helm-controller/api/v2" @@ -141,8 +142,8 @@ func (r *PackageReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct if err := r.Status().Update(ctx, pkg); err != nil { return ctrl.Result{}, err } - // Return success to avoid requeue, but don't create HelmReleases - return ctrl.Result{}, nil + // Requeue to periodically recheck dependencies in case watch events are missed + return ctrl.Result{RequeueAfter: 30 * time.Second}, nil } // Create HelmReleases for components with Install section