From 4764cb30e62381c03f8808ac58205224176cc4bf Mon Sep 17 00:00:00 2001 From: Vedant Durgam Date: Tue, 7 Jul 2026 20:29:31 +0530 Subject: [PATCH] Fix ClusterExtension Progressing condition stuck at True after successful install The setStatusProgressing function defaults the Progressing condition to Status=True with Reason=Succeeded when no error occurs. Per standard Kubernetes condition conventions, Progressing=True means work is still in progress. When the desired state has been reached (no error), Progressing should be False. This causes `oc get clusterextension` to permanently show PROGRESSING=True even when the operator is fully installed and running. Fix: default to ConditionFalse (done progressing) and only set ConditionTrue when a non-terminal error triggers a retry. Co-authored-by: Cursor --- internal/operator-controller/controllers/common_controller.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/operator-controller/controllers/common_controller.go b/internal/operator-controller/controllers/common_controller.go index 46197c6c36..1608d79203 100644 --- a/internal/operator-controller/controllers/common_controller.go +++ b/internal/operator-controller/controllers/common_controller.go @@ -148,13 +148,14 @@ func setInstallStatus(ext *ocv1.ClusterExtension, installStatus *ocv1.ClusterExt func setStatusProgressing(ext *ocv1.ClusterExtension, err error) { progressingCond := metav1.Condition{ Type: ocv1.TypeProgressing, - Status: metav1.ConditionTrue, + Status: metav1.ConditionFalse, Reason: ocv1.ReasonSucceeded, Message: "Desired state reached", ObservedGeneration: ext.GetGeneration(), } if err != nil { + progressingCond.Status = metav1.ConditionTrue progressingCond.Reason = ocv1.ReasonRetrying // Unwrap TerminalError to avoid "terminal error:" prefix in message progressingCond.Message = errorutil.SanitizeNetworkError(errorutil.UnwrapTerminal(err))