@@ -47,10 +47,6 @@ func (r *InstanceReconciler) Reconcile(ctx context.Context, req mcreconcile.Requ
4747 return ctrl.Result {}, err
4848 }
4949
50- if ! instance .DeletionTimestamp .IsZero () {
51- return ctrl.Result {}, nil
52- }
53-
5450 logger .Info ("reconciling instance" )
5551 defer logger .Info ("reconcile complete" )
5652
@@ -94,7 +90,6 @@ func (r *InstanceReconciler) Reconcile(ctx context.Context, req mcreconcile.Requ
9490 reason = condition .Reason
9591 }
9692
97- logger .Info ("updating instance status" , "instance" , instance .Name )
9893 if _ , err := controllerutil .CreateOrPatch (ctx , cl .GetClient (), & instance , func () error {
9994 apimeta .SetStatusCondition (& instance .Status .Conditions , metav1.Condition {
10095 Type : computev1alpha .InstanceReady ,
@@ -112,6 +107,33 @@ func (r *InstanceReconciler) Reconcile(ctx context.Context, req mcreconcile.Requ
112107
113108 logger .Info ("instance is programmed" , "instance" , instance .Name )
114109
110+ if condition := apimeta .FindStatusCondition (instance .Status .Conditions , computev1alpha .InstanceRunning ); condition .Status != metav1 .ConditionTrue {
111+ logger .Info ("instance is not running" , "instance" , instance .Name )
112+ message := "Instance is not running"
113+ if condition .Status != metav1 .ConditionUnknown {
114+ message = condition .Message
115+ }
116+
117+ reason := "Pending"
118+ if condition .Reason != "Pending" {
119+ reason = condition .Reason
120+ }
121+
122+ if _ , err := controllerutil .CreateOrPatch (ctx , cl .GetClient (), & instance , func () error {
123+ apimeta .SetStatusCondition (& instance .Status .Conditions , metav1.Condition {
124+ Type : computev1alpha .InstanceReady ,
125+ Status : metav1 .ConditionFalse ,
126+ Reason : reason ,
127+ Message : message ,
128+ ObservedGeneration : instance .Generation ,
129+ })
130+ return nil
131+ }); err != nil {
132+ return ctrl.Result {}, fmt .Errorf ("failed updating instance status: %w" , err )
133+ }
134+ return ctrl.Result {}, nil
135+ }
136+
115137 if _ , err := controllerutil .CreateOrPatch (ctx , cl .GetClient (), & instance , func () error {
116138 apimeta .SetStatusCondition (& instance .Status .Conditions , metav1.Condition {
117139 Type : computev1alpha .InstanceReady ,
0 commit comments