diff --git a/.github/workflows/operator-ci.yml b/.github/workflows/operator-ci.yml index 66420966165..876dbe52463 100644 --- a/.github/workflows/operator-ci.yml +++ b/.github/workflows/operator-ci.yml @@ -124,6 +124,7 @@ jobs: -Dkc.operator.keycloak.image=keycloak:${{ env.version_remote }} \ -Dquarkus.kubernetes.env.vars.kc-operator-keycloak-image-pull-policy=Never \ -Dtest.operator.custom.image=custom-keycloak:${{ env.version_remote }} \ + -Dtest.operator.client-controllers=true \ --no-transfer-progress -Dtest.operator.deployment=remote ${PARAMS["${{ matrix.suite }}"]} test-olm: diff --git a/operator/scripts/create-olm-bundle.sh b/operator/scripts/create-olm-bundle.sh index 30c305a17d2..63980df5553 100755 --- a/operator/scripts/create-olm-bundle.sh +++ b/operator/scripts/create-olm-bundle.sh @@ -72,6 +72,10 @@ yq ea -i '.spec.install.spec.deployments[0].spec.template.spec.containers[0].env # Remove ServiceMonitors GVK from nativeAPIS to allow CSV installation when CRDs not present yq ea -i 'del(.spec.nativeAPIs[] | select(.kind == "ServiceMonitor"))' "$CSV_PATH" +# Remove Client CRDs to prevent their usage by default +yq ea -i 'del(.spec.customresourcedefinitions.owned[] | select(.kind == "KeycloakOIDCClient" or .kind == "KeycloakSAMLClient"))' "$CSV_PATH" +rm ../olm/$VERSION/manifests/keycloak*clients.k8s.keycloak.org-v1.crd.yml + { set +x; } 2>/dev/null echo "" echo "Created OLM bundle ok!" diff --git a/operator/src/main/java/org/keycloak/operator/controllers/KeycloakOIDCClientController.java b/operator/src/main/java/org/keycloak/operator/controllers/KeycloakOIDCClientController.java index 43f43cf47d0..20661d8c1f6 100644 --- a/operator/src/main/java/org/keycloak/operator/controllers/KeycloakOIDCClientController.java +++ b/operator/src/main/java/org/keycloak/operator/controllers/KeycloakOIDCClientController.java @@ -29,7 +29,9 @@ import io.fabric8.kubernetes.api.model.SecretKeySelector; import io.fabric8.kubernetes.client.ResourceNotFoundException; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; +import io.quarkus.arc.properties.IfBuildProperty; +@IfBuildProperty(name = "test.operator.client-controllers", stringValue = "true") @ControllerConfiguration public class KeycloakOIDCClientController extends KeycloakClientBaseController { diff --git a/operator/src/main/java/org/keycloak/operator/controllers/KeycloakSAMLClientController.java b/operator/src/main/java/org/keycloak/operator/controllers/KeycloakSAMLClientController.java index 10eaab24b6a..e685b11a221 100644 --- a/operator/src/main/java/org/keycloak/operator/controllers/KeycloakSAMLClientController.java +++ b/operator/src/main/java/org/keycloak/operator/controllers/KeycloakSAMLClientController.java @@ -22,7 +22,9 @@ import org.keycloak.representations.admin.v2.SAMLClientRepresentation; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; +import io.quarkus.arc.properties.IfBuildProperty; +@IfBuildProperty(name = "test.operator.client-controllers", stringValue = "true") @ControllerConfiguration public class KeycloakSAMLClientController extends KeycloakClientBaseController { diff --git a/operator/src/test/resources/application.properties b/operator/src/test/resources/application.properties index 3a8def83424..30414c96976 100644 --- a/operator/src/test/resources/application.properties +++ b/operator/src/test/resources/application.properties @@ -13,3 +13,5 @@ kc.operator.keycloak.pod-labels."testLabelWithExpression"=${OPERATOR_TEST_LABEL_ kc.operator.keycloak.poll-interval-seconds=10 # Update Pod timeout reduced to 1 min for testing kc.operator.keycloak.update-pod-deadline-seconds=60 + +test.operator.client-controllers=true