@@ -94,9 +94,10 @@ func (r *AnsibleTestReconciler) Reconcile(ctx context.Context, req ctrl.Request)
9494 // Always patch the instance status when exiting this function so we
9595 // can persist any changes.
9696 defer func () {
97- // update the overall status condition if service is ready
98- if instance .Status .Conditions .AllSubConditionIsTrue () {
99- instance .Status .Conditions .MarkTrue (condition .ReadyCondition , condition .ReadyMessage )
97+ // Don't update the status, if reconciler Panics
98+ if r := recover (); r != nil {
99+ Log .Info (fmt .Sprintf ("panic during reconcile %v\n " , r ))
100+ panic (r )
100101 }
101102 condition .RestoreLastTransitionTimes (& instance .Status .Conditions , savedConditions )
102103 if instance .Status .Conditions .IsUnknown (condition .ReadyCondition ) {
@@ -122,8 +123,8 @@ func (r *AnsibleTestReconciler) Reconcile(ctx context.Context, req ctrl.Request)
122123 // Register overall status immediately to have an early feedback
123124 // e.g. in the cli
124125 return ctrl.Result {}, nil
125-
126126 }
127+ instance .Status .ObservedGeneration = instance .Generation
127128
128129 workflowLength := len (instance .Spec .Workflow )
129130 nextAction , nextWorkflowStep , err := r .NextAction (ctx , instance , workflowLength )
@@ -151,6 +152,10 @@ func (r *AnsibleTestReconciler) Reconcile(ctx context.Context, req ctrl.Request)
151152 condition .DeploymentReadyCondition ,
152153 condition .DeploymentReadyMessage )
153154
155+ if instance .Status .Conditions .AllSubConditionIsTrue () {
156+ instance .Status .Conditions .MarkTrue (condition .ReadyCondition , condition .ReadyMessage )
157+ }
158+
154159 Log .Info (InfoTestingCompleted )
155160 return ctrl.Result {}, nil
156161
@@ -250,6 +255,11 @@ func (r *AnsibleTestReconciler) Reconcile(ctx context.Context, req ctrl.Request)
250255 return ctrlResult , nil
251256 }
252257 // Create a new pod - end
258+
259+ if instance .Status .Conditions .AllSubConditionIsTrue () {
260+ instance .Status .Conditions .MarkTrue (condition .ReadyCondition , condition .ReadyMessage )
261+ }
262+
253263 Log .Info ("Reconciled Service successfully" )
254264 return ctrl.Result {}, nil
255265}
0 commit comments