diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java index f9a600f1a7..c5922fe7a3 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java @@ -2,6 +2,9 @@ import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.api.model.KubernetesResourceList; import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition; @@ -30,6 +33,8 @@ @SuppressWarnings({"unchecked"}) public class Controller implements Reconciler, LifecycleAware, EventSourceInitializer { + private static final Logger log = LoggerFactory.getLogger(Controller.class); + private final Reconciler reconciler; private final ControllerConfiguration configuration; private final KubernetesClient kubernetesClient; @@ -98,7 +103,13 @@ public String successTypeName(UpdateControl result) { @Override public UpdateControl execute() { - return reconciler.reconcile(resource, context); + try { + return reconciler.reconcile(resource, context); + } catch (Exception e) { + log.error("Reconciliation error for resource: " + ResourceID.fromResource(resource) + + " / reconciler: " + controllerName(), e); + throw e; + } } }); }