@@ -339,17 +339,32 @@ func (c *ClusterExtensionRevisionReconciler) teardown(ctx context.Context, rev *
339339 return ctrl.Result {}, fmt .Errorf ("error stopping informers: %v" , err )
340340 }
341341
342- // Ensure Available condition is set to Unknown before removing the finalizer when archiving
343- if rev .Spec .LifecycleState == ocv1 .ClusterExtensionRevisionLifecycleStateArchived &&
344- ! meta .IsStatusConditionPresentAndEqual (rev .Status .Conditions , ocv1 .ClusterExtensionRevisionTypeAvailable , metav1 .ConditionUnknown ) {
345- meta .SetStatusCondition (& rev .Status .Conditions , metav1.Condition {
346- Type : ocv1 .ClusterExtensionRevisionTypeAvailable ,
347- Status : metav1 .ConditionUnknown ,
348- Reason : ocv1 .ClusterExtensionRevisionReasonArchived ,
349- Message : "revision is archived" ,
350- ObservedGeneration : rev .Generation ,
351- })
352- return ctrl.Result {}, nil
342+ // Ensure conditions are set before removing the finalizer when archiving
343+ if rev .Spec .LifecycleState == ocv1 .ClusterExtensionRevisionLifecycleStateArchived {
344+ condUpdated := false
345+ if cnd := meta .FindStatusCondition (rev .Status .Conditions , ocv1 .ClusterExtensionRevisionTypeAvailable ); cnd == nil || cnd .Reason != ocv1 .ClusterExtensionRevisionReasonArchived || cnd .Status != metav1 .ConditionUnknown {
346+ meta .SetStatusCondition (& rev .Status .Conditions , metav1.Condition {
347+ Type : ocv1 .ClusterExtensionRevisionTypeAvailable ,
348+ Status : metav1 .ConditionUnknown ,
349+ Reason : ocv1 .ClusterExtensionRevisionReasonArchived ,
350+ Message : "revision is archived" ,
351+ ObservedGeneration : rev .Generation ,
352+ })
353+ condUpdated = true
354+ }
355+ if cnd := meta .FindStatusCondition (rev .Status .Conditions , ocv1 .ClusterExtensionRevisionTypeProgressing ); cnd == nil || cnd .Reason != ocv1 .ClusterExtensionRevisionReasonArchived || cnd .Status != metav1 .ConditionFalse {
356+ meta .SetStatusCondition (& rev .Status .Conditions , metav1.Condition {
357+ Type : ocv1 .ClusterExtensionRevisionTypeProgressing ,
358+ Status : metav1 .ConditionFalse ,
359+ Reason : ocv1 .ClusterExtensionRevisionReasonArchived ,
360+ Message : "revision is archived" ,
361+ ObservedGeneration : rev .Generation ,
362+ })
363+ condUpdated = true
364+ }
365+ if condUpdated {
366+ return ctrl.Result {}, nil
367+ }
353368 }
354369
355370 if err := c .removeFinalizer (ctx , rev , clusterExtensionRevisionTeardownFinalizer ); err != nil {
0 commit comments