diff --git a/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ActivationConditions.java b/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ActivationConditions.java index ba2ba77a53..283aac6717 100644 --- a/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ActivationConditions.java +++ b/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ActivationConditions.java @@ -8,9 +8,12 @@ import io.apicurio.registry.operator.api.v1.spec.StudioUiSpec; import io.apicurio.registry.operator.api.v1.spec.UiSpec; import io.apicurio.registry.operator.resource.app.AppIngressResource; +import io.apicurio.registry.operator.resource.app.AppPodDisruptionBudgetResource; import io.apicurio.registry.operator.resource.studioui.StudioUIDeploymentResource; import io.apicurio.registry.operator.resource.studioui.StudioUIIngressResource; +import io.apicurio.registry.operator.resource.studioui.StudioUIPodDisruptionBudgetResource; import io.apicurio.registry.operator.resource.ui.UIIngressResource; +import io.apicurio.registry.operator.resource.ui.UIPodDisruptionBudgetResource; import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.api.model.networking.v1.Ingress; import io.fabric8.kubernetes.api.model.policy.v1.PodDisruptionBudget; @@ -49,8 +52,12 @@ public static class AppPodDisruptionBudgetActivationCondition @Override public boolean isMet(DependentResource resource, ApicurioRegistry3 primary, Context context) { - return ofNullable(primary.getSpec()).map(ApicurioRegistry3Spec::getApp) + Boolean isManaged = ofNullable(primary.getSpec()).map(ApicurioRegistry3Spec::getApp) .map(ComponentSpec::getManageDisruptionBudget).orElse(Boolean.TRUE); + if (!isManaged) { + ((AppPodDisruptionBudgetResource) resource).delete(primary, context); + } + return isManaged; } } @@ -77,8 +84,12 @@ public static class UIPodDisruptionBudgetActivationCondition @Override public boolean isMet(DependentResource resource, ApicurioRegistry3 primary, Context context) { - return ofNullable(primary.getSpec()).map(ApicurioRegistry3Spec::getUi) + Boolean isManaged = ofNullable(primary.getSpec()).map(ApicurioRegistry3Spec::getUi) .map(ComponentSpec::getManageDisruptionBudget).orElse(Boolean.TRUE); + if (!isManaged) { + ((UIPodDisruptionBudgetResource) resource).delete(primary, context); + } + return isManaged; } } @@ -121,8 +132,12 @@ public static class StudioUIPodDisruptionBudgetActivationCondition @Override public boolean isMet(DependentResource resource, ApicurioRegistry3 primary, Context context) { - return ofNullable(primary.getSpec()).map(ApicurioRegistry3Spec::getStudioUi) + Boolean isManaged = ofNullable(primary.getSpec()).map(ApicurioRegistry3Spec::getStudioUi) .map(ComponentSpec::getManageDisruptionBudget).orElse(Boolean.TRUE); + if (!isManaged) { + ((StudioUIPodDisruptionBudgetResource) resource).delete(primary, context); + } + return isManaged; } } diff --git a/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ResourceFactory.java b/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ResourceFactory.java index 8eae2a4769..789a33beda 100644 --- a/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ResourceFactory.java +++ b/operator/controller/src/main/java/io/apicurio/registry/operator/resource/ResourceFactory.java @@ -38,7 +38,7 @@ public class ResourceFactory { public static final String RESOURCE_TYPE_DEPLOYMENT = "deployment"; public static final String RESOURCE_TYPE_SERVICE = "service"; public static final String RESOURCE_TYPE_INGRESS = "ingress"; - public static final String RESOURCE_TYPE_POD_DISRUPTION_BUDGET = "podDisruptionBudget"; + public static final String RESOURCE_TYPE_POD_DISRUPTION_BUDGET = "poddisruptionbudget"; public Deployment getDefaultAppDeployment(ApicurioRegistry3 primary) { var r = initDefaultDeployment(primary, COMPONENT_APP, diff --git a/operator/controller/src/main/resources/k8s/default/app.podDisruptionBudget.yaml b/operator/controller/src/main/resources/k8s/default/app.poddisruptionbudget.yaml similarity index 100% rename from operator/controller/src/main/resources/k8s/default/app.podDisruptionBudget.yaml rename to operator/controller/src/main/resources/k8s/default/app.poddisruptionbudget.yaml diff --git a/operator/controller/src/main/resources/k8s/default/studio-ui.podDisruptionBudget.yaml b/operator/controller/src/main/resources/k8s/default/studio-ui.poddisruptionbudget.yaml similarity index 100% rename from operator/controller/src/main/resources/k8s/default/studio-ui.podDisruptionBudget.yaml rename to operator/controller/src/main/resources/k8s/default/studio-ui.poddisruptionbudget.yaml diff --git a/operator/controller/src/main/resources/k8s/default/ui.podDisruptionBudget.yaml b/operator/controller/src/main/resources/k8s/default/ui.poddisruptionbudget.yaml similarity index 100% rename from operator/controller/src/main/resources/k8s/default/ui.podDisruptionBudget.yaml rename to operator/controller/src/main/resources/k8s/default/ui.poddisruptionbudget.yaml diff --git a/operator/controller/src/test/java/io/apicurio/registry/operator/it/ITBase.java b/operator/controller/src/test/java/io/apicurio/registry/operator/it/ITBase.java index 06f1850f9d..5a725ab4f9 100644 --- a/operator/controller/src/test/java/io/apicurio/registry/operator/it/ITBase.java +++ b/operator/controller/src/test/java/io/apicurio/registry/operator/it/ITBase.java @@ -162,7 +162,7 @@ protected static PodDisruptionBudget checkPodDisruptionBudgetExists(ApicurioRegi await().ignoreExceptions().untilAsserted(() -> { PodDisruptionBudget pdb = client.policy().v1().podDisruptionBudget() - .withName(primary.getMetadata().getName() + "-" + component + "-podDisruptionBudget") + .withName(primary.getMetadata().getName() + "-" + component + "-poddisruptionbudget") .get(); assertThat(pdb).isNotNull(); rval.setValue(pdb);