From a1e2b319a5e7d6135810c6aa5d94fa4f98020648 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 6 Jul 2023 09:40:09 +0200 Subject: [PATCH] OZG-3961 - manually re-reconcile on errors --- src/main/java/de/ozgcloud/operator/Config.java | 1 + .../operator/keycloak/client/KeycloakClientReconciler.java | 3 +-- .../operator/keycloak/group/KeycloakGroupReconciler.java | 3 +-- .../operator/keycloak/realm/KeycloakRealmReconciler.java | 5 +++-- .../operator/keycloak/user/KeycloakUserReconciler.java | 3 +-- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/ozgcloud/operator/Config.java b/src/main/java/de/ozgcloud/operator/Config.java index b0cdd1d..6cf75ae 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 f83e774..65dff6e 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 437efde..66f05bf 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 1675062..ebddb29 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 d1eae89..c08951b 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)); } } -- GitLab