diff --git a/controllers/ironic_controller.go b/controllers/ironic_controller.go index fb705b5c..7a2f904d 100644 --- a/controllers/ironic_controller.go +++ b/controllers/ironic_controller.go @@ -150,6 +150,11 @@ func (r *IronicReconciler) Reconcile(ctx context.Context, req ctrl.Request) (res // Always patch the instance status when exiting this function so we can // persist any changes. defer func() { + // Don't update the status, if reconciler Panics + if r := recover(); r != nil { + Log.Info(fmt.Sprintf("panic during reconcile %v\n", r)) + panic(r) + } condition.RestoreLastTransitionTimes( &instance.Status.Conditions, savedConditions) if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) { diff --git a/controllers/ironicapi_controller.go b/controllers/ironicapi_controller.go index 216d9aef..dd3fb346 100644 --- a/controllers/ironicapi_controller.go +++ b/controllers/ironicapi_controller.go @@ -146,6 +146,11 @@ func (r *IronicAPIReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( // Always patch the instance status when exiting this function so we can // persist any changes. defer func() { + // Don't update the status, if reconciler Panics + if r := recover(); r != nil { + Log.Info(fmt.Sprintf("panic during reconcile %v\n", r)) + panic(r) + } condition.RestoreLastTransitionTimes( &instance.Status.Conditions, savedConditions) if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) { diff --git a/controllers/ironicconductor_controller.go b/controllers/ironicconductor_controller.go index 9dac0798..f526908c 100644 --- a/controllers/ironicconductor_controller.go +++ b/controllers/ironicconductor_controller.go @@ -140,6 +140,11 @@ func (r *IronicConductorReconciler) Reconcile(ctx context.Context, req ctrl.Requ // Always patch the instance status when exiting this function so we can // persist any changes. defer func() { + // Don't update the status, if reconciler Panics + if r := recover(); r != nil { + Log.Info(fmt.Sprintf("panic during reconcile %v\n", r)) + panic(r) + } condition.RestoreLastTransitionTimes( &instance.Status.Conditions, savedConditions) if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) { diff --git a/controllers/ironicinspector_controller.go b/controllers/ironicinspector_controller.go index 8699ac98..1f15903d 100644 --- a/controllers/ironicinspector_controller.go +++ b/controllers/ironicinspector_controller.go @@ -165,6 +165,11 @@ func (r *IronicInspectorReconciler) Reconcile( // Always patch the instance status when exiting this function so we can // persist any changes. defer func() { + // Don't update the status, if reconciler Panics + if r := recover(); r != nil { + Log.Info(fmt.Sprintf("panic during reconcile %v\n", r)) + panic(r) + } condition.RestoreLastTransitionTimes( &instance.Status.Conditions, savedConditions) if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) { diff --git a/controllers/ironicneutronagent_controller.go b/controllers/ironicneutronagent_controller.go index 78566efb..02985ff0 100644 --- a/controllers/ironicneutronagent_controller.go +++ b/controllers/ironicneutronagent_controller.go @@ -138,6 +138,11 @@ func (r *IronicNeutronAgentReconciler) Reconcile( // Always patch the instance status when exiting this function so we can // persist any changes. defer func() { + // Don't update the status, if reconciler Panics + if r := recover(); r != nil { + Log.Info(fmt.Sprintf("panic during reconcile %v\n", r)) + panic(r) + } condition.RestoreLastTransitionTimes( &instance.Status.Conditions, savedConditions) if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) {