diff --git a/src/main/java/de/ozgcloud/operator/Config.java b/src/main/java/de/ozgcloud/operator/Config.java index b0cdd1d2d619a3962fd91fa9e4009dc2a3d77cb1..6cf75ae12c92efb722a8d120094db460884a916c 100644 --- a/src/main/java/de/ozgcloud/operator/Config.java +++ b/src/main/java/de/ozgcloud/operator/Config.java @@ -12,6 +12,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Reconciler; public class Config { public static final int RECONCILER_RETRY_SECONDS = 20; + public static final int RECONCILER_RETRY_SECONDS_ON_ERROR = 60; // @Bean // KeycloakUserReconciler customServiceController(KeycloakUserService keycloakUserService) { diff --git a/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java index f83e7749789b58f83d9e28c6462760c7f6a12a34..65dff6e95bd5b05d4e05022408405f5331df5d54 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java @@ -48,8 +48,7 @@ public class KeycloakClientReconciler implements Reconciler<OzgKeycloakClient> { + e.getMessage(), e); resource.setStatus(OzgKeycloakClientStatus.builder().status(OzgCustomResourceStatus.ERROR).message(e.getMessage()).build()); - UpdateControl.updateStatus(resource); - throw e; + return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java index 437efde4d682d549c9c82435c263fc2d2d8d1b3a..66f05bf079566584775a15ded2d659a4851bc730 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java @@ -48,8 +48,7 @@ public class KeycloakGroupReconciler implements Reconciler<OzgKeycloakGroup> { + e.getMessage(), e); resource.setStatus(OzgKeycloakGroupStatus.builder().status(OzgCustomResourceStatus.ERROR).message(e.getMessage()).build()); - UpdateControl.updateStatus(resource); - throw e; + return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java index 16750623e572bf98747fa4acf9cf282a4eda7f3e..ebddb29755afbb6f4413af3e5fa8769a61e6ff67 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java @@ -1,10 +1,12 @@ package de.ozgcloud.operator.keycloak.realm; +import java.time.Duration; import java.util.logging.Level; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import de.ozgcloud.operator.Config; import de.ozgcloud.operator.keycloak.OzgCustomResourceStatus; import io.javaoperatorsdk.operator.api.reconciler.Cleaner; import io.javaoperatorsdk.operator.api.reconciler.Context; @@ -41,8 +43,7 @@ public class KeycloakRealmReconciler implements Reconciler<OzgKeycloakRealm>, Cl + e.getMessage(), e); resource.setStatus(OzgKeycloakRealmStatus.builder().status(OzgCustomResourceStatus.ERROR).message(e.getMessage()).build()); - UpdateControl.updateStatus(resource); - throw e; + return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java index d1eae89ca7e17a2a5741c3b7023ca733e61f487c..c08951b8b09e6f635c6ecc89bd7210ece78383e9 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java @@ -50,8 +50,7 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea + e.getMessage(), e); resource.setStatus(OzgKeycloakUserStatus.builder().status(OzgCustomResourceStatus.ERROR).message(e.getMessage()).build()); - UpdateControl.updateStatus(resource); - throw e; + return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } }