From b6d5083e9bd0c67bc7f620cdd77f188d0f695c26 Mon Sep 17 00:00:00 2001 From: Steven Hawkins Date: Wed, 15 Nov 2023 08:08:27 -0500 Subject: [PATCH] fix: check operand StatefulSet is ready before creating job (#24720) closes #24526 Signed-off-by: Steve Hawkins Co-authored-by: Piotr Godowski --- .../KeycloakRealmImportController.java | 15 ++++++++- .../integration/RealmImportTest.java | 31 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/operator/src/main/java/org/keycloak/operator/controllers/KeycloakRealmImportController.java b/operator/src/main/java/org/keycloak/operator/controllers/KeycloakRealmImportController.java index 0bdbb845c00..60fe705eb2c 100644 --- a/operator/src/main/java/org/keycloak/operator/controllers/KeycloakRealmImportController.java +++ b/operator/src/main/java/org/keycloak/operator/controllers/KeycloakRealmImportController.java @@ -17,6 +17,7 @@ package org.keycloak.operator.controllers; import io.fabric8.kubernetes.api.model.apps.StatefulSet; +import io.fabric8.kubernetes.api.model.apps.StatefulSetStatus; import io.fabric8.kubernetes.api.model.batch.v1.Job; import io.fabric8.kubernetes.client.KubernetesClient; import io.javaoperatorsdk.operator.api.reconciler.Context; @@ -37,6 +38,7 @@ import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatus import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusCondition; import java.util.Map; +import java.util.Optional; import java.util.concurrent.TimeUnit; import jakarta.inject.Inject; @@ -74,7 +76,9 @@ public class KeycloakRealmImportController implements Reconciler 0) { + jobDependentResource.reconcile(realm, context); + } } updateStatus(statusBuilder, realm, existingJob, existingDeployment); @@ -118,6 +122,11 @@ public class KeycloakRealmImportController implements Reconciler { + KeycloakRealmImport keycloak = crSelector.get(); + CRAssert.assertKeycloakRealmImportStatusCondition(keycloak, DONE, false); + CRAssert.assertKeycloakRealmImportStatusCondition(keycloak, STARTED, false); + CRAssert.assertKeycloakRealmImportStatusCondition(keycloak, HAS_ERRORS, true); + }); + } + }