From 25acf0573c24a45dd3d06bd84b922e7ea9f9b3e5 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 3 Jan 2023 22:18:39 +0530 Subject: [PATCH] refactor (jkube-kit/enricher) : Move storageClass related functionality out of VolumePermissionEnricher (#1179) Related to #1179 + Move setting PersistentVolumeClaim's storageClass related logic into a new enricher : PersistentVolumeClaimStorageClassEnricher . This way user can simply exclude VolumePermissionEnricher to opt out of volume permission initContainer. + Deprecate VolumePermissionEnricher's `defaultStorageClass` and `useStorageClassAnnotation` fields in favor of PersistentVolumeClaimStorageClassEnricher equivalents. Signed-off-by: Rohan Kumar --- CHANGELOG.md | 1 + .../META-INF/jkube/profiles-default.yml | 1 + .../META-INF/jkube/profiles-default.yml | 1 + .../doc/src/main/asciidoc/inc/_enricher.adoc | 5 + ...be_persistentvolumeclaim_storageclass.adoc | 20 ++++ .../_jkube_volume_permission.adoc | 8 +- ...istentVolumeClaimStorageClassEnricher.java | 84 +++++++++++++++++ .../generic/VolumePermissionEnricher.java | 48 ++++++---- .../resources/META-INF/jkube/enricher-default | 3 + ...ntVolumeClaimStorageClassEnricherTest.java | 93 +++++++++++++++++++ .../generic/VolumePermissionEnricherTest.java | 52 ----------- .../META-INF/jkube/profiles-default.yml | 1 + .../META-INF/jkube/profiles-default.yml | 1 + 13 files changed, 245 insertions(+), 73 deletions(-) create mode 100644 jkube-kit/doc/src/main/asciidoc/inc/enricher/persistentvolumeclaim-storageclass/_jkube_persistentvolumeclaim_storageclass.adoc create mode 100644 jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricher.java create mode 100644 jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricherTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index ede0973f05..4483ba0d12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ Usage: ./scripts/extract-changelog-for-version.sh 1.3.37 5 ``` ### 1.12-SNAPSHOT +* Fix #1179: Move storageClass related functionality out of VolumePermissionEnricher to PersistentVolumeClaimStorageClassEnricher ### 1.11.0 (2023-02-16) * Fix #1316: Add support for adding InitContainers via plugin configuration diff --git a/gradle-plugin/kubernetes/src/main/resources/META-INF/jkube/profiles-default.yml b/gradle-plugin/kubernetes/src/main/resources/META-INF/jkube/profiles-default.yml index 9be0beb708..faaea979de 100644 --- a/gradle-plugin/kubernetes/src/main/resources/META-INF/jkube/profiles-default.yml +++ b/gradle-plugin/kubernetes/src/main/resources/META-INF/jkube/profiles-default.yml @@ -37,6 +37,7 @@ # TODO: Documents and verify enrichers below - jkube-debug - jkube-volume-permission + - jkube-persistentvolumeclaim-storageclass - jkube-configmap-file - jkube-secret-file diff --git a/gradle-plugin/openshift/src/main/resources/META-INF/jkube/profiles-default.yml b/gradle-plugin/openshift/src/main/resources/META-INF/jkube/profiles-default.yml index f65df7360c..83a3a53712 100644 --- a/gradle-plugin/openshift/src/main/resources/META-INF/jkube/profiles-default.yml +++ b/gradle-plugin/openshift/src/main/resources/META-INF/jkube/profiles-default.yml @@ -39,6 +39,7 @@ # TODO: Documents and verify enrichers below - jkube-debug - jkube-volume-permission + - jkube-persistentvolumeclaim-storageclass - jkube-configmap-file - jkube-secret-file diff --git a/jkube-kit/doc/src/main/asciidoc/inc/_enricher.adoc b/jkube-kit/doc/src/main/asciidoc/inc/_enricher.adoc index 934129e915..9c44d6a330 100644 --- a/jkube-kit/doc/src/main/asciidoc/inc/_enricher.adoc +++ b/jkube-kit/doc/src/main/asciidoc/inc/_enricher.adoc @@ -99,6 +99,9 @@ include::enricher/project/_jkube_openshift_project_entry.adoc[] include::enricher/route/_jkube_openshift_route_entry.adoc[] endif::[] +|<> +| Add name of StorageClass required by PersistentVolumeClaim either in metadata or in spec. + | <> | Copy over annotations from a `Deployment` to a `Pod` @@ -200,6 +203,8 @@ include::enricher/port-name/_jkube_port_name.adoc[] include::enricher/project-label/_jkube_project_label.adoc[] +include::enricher/persistentvolumeclaim-storageclass/_jkube_persistentvolumeclaim_storageclass.adoc[] + include::enricher/_jkube_replicas.adoc[] include::enricher/revisionhistory/_jkube_revision_history.adoc[] diff --git a/jkube-kit/doc/src/main/asciidoc/inc/enricher/persistentvolumeclaim-storageclass/_jkube_persistentvolumeclaim_storageclass.adoc b/jkube-kit/doc/src/main/asciidoc/inc/enricher/persistentvolumeclaim-storageclass/_jkube_persistentvolumeclaim_storageclass.adoc new file mode 100644 index 0000000000..6bcae0e02b --- /dev/null +++ b/jkube-kit/doc/src/main/asciidoc/inc/enricher/persistentvolumeclaim-storageclass/_jkube_persistentvolumeclaim_storageclass.adoc @@ -0,0 +1,20 @@ +[[jkube-persistentvolumeclaim-storageclass]] +==== jkube-persistentvolumeclaim-storageclass + +Enricher which fixes adds name of StorageClass required by PersistentVolumeClaim either in metadata or in spec. + +.Supported properties +[cols="1,6,1"] +|=== +| Option | Description | Property + +| *defaultStorageClass* +| PersistentVolume storage class. +| `jkube.enricher.jkube-volume-permission.defaultStorageClass` + +| *useStorageClassAnnotation* +| If enabled, storage class would be added to PersistentVolumeClaim metadata as `volume.beta.kubernetes.io/storage-class=` annotation rather than `.spec.storageClassName` + +Defaults to `false` +| `jkube.enricher.jkube-volume-permission.useStorageClassAnnotation` +|=== diff --git a/jkube-kit/doc/src/main/asciidoc/inc/enricher/volume-permission/_jkube_volume_permission.adoc b/jkube-kit/doc/src/main/asciidoc/inc/enricher/volume-permission/_jkube_volume_permission.adoc index 2f9ed1a2bd..8f360c93a8 100644 --- a/jkube-kit/doc/src/main/asciidoc/inc/enricher/volume-permission/_jkube_volume_permission.adoc +++ b/jkube-kit/doc/src/main/asciidoc/inc/enricher/volume-permission/_jkube_volume_permission.adoc @@ -23,11 +23,15 @@ Defaults to `777`. | `jkube.enricher.jkube-volume-permission.permission` | *defaultStorageClass* -| PersistentVolume storage class. +| _Deprecated: Use <>'s defaultStorageClass field_ + +PersistentVolume storage class. | `jkube.enricher.jkube-volume-permission.defaultStorageClass` | *useStorageClassAnnotation* -| If enabled, storage class would be added to PersistentVolumeClaim metadata as `volume.beta.kubernetes.io/storage-class=` annotation rather than `.spec.storageClassName` +| _Deprecated: Use <>'s defaultStorageClass field_ + +If enabled, storage class would be added to PersistentVolumeClaim metadata as `volume.beta.kubernetes.io/storage-class=` annotation rather than `.spec.storageClassName` Defaults to `false` | `jkube.enricher.jkube-volume-permission.useStorageClassAnnotation` diff --git a/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricher.java b/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricher.java new file mode 100644 index 0000000000..288c112c4f --- /dev/null +++ b/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricher.java @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2019 Red Hat, Inc. + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at: + * + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + */ +package org.eclipse.jkube.enricher.generic; + +import io.fabric8.kubernetes.api.builder.TypedVisitor; +import io.fabric8.kubernetes.api.model.KubernetesListBuilder; +import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; +import org.eclipse.jkube.kit.common.Configs; +import org.eclipse.jkube.kit.config.resource.PlatformMode; +import org.eclipse.jkube.kit.enricher.api.BaseEnricher; +import org.eclipse.jkube.kit.enricher.api.JKubeEnricherContext; + +public class PersistentVolumeClaimStorageClassEnricher extends BaseEnricher { + + public static final String ENRICHER_NAME = "jkube-persistentvolumeclaim-storageclass"; + static final String VOLUME_STORAGE_CLASS_ANNOTATION = "volume.beta.kubernetes.io/storage-class"; + + @AllArgsConstructor + enum Config implements Configs.Config { + DEFAULT_STORAGE_CLASS("defaultStorageClass", null), + USE_ANNOTATION("useStorageClassAnnotation", "false"); + + @Getter + protected String key; + @Getter + protected String defaultValue; + } + + public PersistentVolumeClaimStorageClassEnricher(JKubeEnricherContext buildContext) { + super(buildContext, ENRICHER_NAME); + } + + @Override + public void enrich(PlatformMode platformMode, KubernetesListBuilder builder) { + builder.accept(new TypedVisitor() { + @Override + public void visit(PersistentVolumeClaimBuilder pvcBuilder) { + // lets ensure we have a default storage class so that PVs will get dynamically created OOTB + if (pvcBuilder.buildMetadata() == null) { + pvcBuilder.withNewMetadata().endMetadata(); + } + String storageClass = getStorageClass(); + if (StringUtils.isNotBlank(storageClass)) { + if (shouldUseAnnotation()) { + pvcBuilder.editMetadata().addToAnnotations(VOLUME_STORAGE_CLASS_ANNOTATION, storageClass).endMetadata(); + } else { + pvcBuilder.editSpec().withStorageClassName(storageClass).endSpec(); + } + } + } + }); + } + + private boolean shouldUseAnnotation() { + if (Boolean.TRUE.equals(Boolean.parseBoolean(getConfig(Config.USE_ANNOTATION)))) { + return true; + } + VolumePermissionEnricher volumePermissionEnricher = new VolumePermissionEnricher((JKubeEnricherContext) getContext()); + return Boolean.TRUE.equals(volumePermissionEnricher.shouldUseAnnotation()); + } + + private String getStorageClass() { + String storageClassConfig = getConfig(Config.DEFAULT_STORAGE_CLASS); + if (StringUtils.isNotBlank(storageClassConfig)) { + return storageClassConfig; + } + VolumePermissionEnricher volumePermissionEnricher = new VolumePermissionEnricher((JKubeEnricherContext) getContext()); + return volumePermissionEnricher.getDefaultStorageClass(); + } +} diff --git a/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricher.java b/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricher.java index 4a8dc3447b..ec7d33113e 100644 --- a/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricher.java +++ b/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricher.java @@ -19,7 +19,6 @@ import io.fabric8.kubernetes.api.model.Container; import io.fabric8.kubernetes.api.model.ContainerBuilder; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; -import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder; import io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource; import io.fabric8.kubernetes.api.model.PodSpec; import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder; @@ -51,13 +50,20 @@ public class VolumePermissionEnricher extends BaseEnricher { public static final String ENRICHER_NAME = "jkube-volume-permission"; - static final String VOLUME_STORAGE_CLASS_ANNOTATION = "volume.beta.kubernetes.io/storage-class"; @AllArgsConstructor enum Config implements Configs.Config { IMAGE_NAME("imageName", "busybox"), PERMISSION("permission", "777"), + /** + * @deprecated Use configuration field in PersistentVolumeClaimStorageClassEnricher + */ + @Deprecated DEFAULT_STORAGE_CLASS("defaultStorageClass", null), + /** + * @deprecated Use configuration field in PersistentVolumeClaimStorageClassEnricher + */ + @Deprecated USE_ANNOTATION("useStorageClassAnnotation", "false"), CPU_LIMIT("cpuLimit", null), CPU_REQUEST("cpuRequest", null), @@ -199,23 +205,27 @@ private Map createResourcesMap(Configs.Config cpu, Configs.Con return resourcesMap; } }); + } - builder.accept(new TypedVisitor() { - @Override - public void visit(PersistentVolumeClaimBuilder pvcBuilder) { - // lets ensure we have a default storage class so that PVs will get dynamically created OOTB - if (pvcBuilder.buildMetadata() == null) { - pvcBuilder.withNewMetadata().endMetadata(); - } - String storageClass = getConfig(Config.DEFAULT_STORAGE_CLASS); - if (StringUtils.isNotBlank(storageClass)) { - if (Boolean.parseBoolean(getConfig(Config.USE_ANNOTATION))) { - pvcBuilder.editMetadata().addToAnnotations(VOLUME_STORAGE_CLASS_ANNOTATION, storageClass).endMetadata(); - } else { - pvcBuilder.editSpec().withStorageClassName(storageClass).endSpec(); - } - } - } - }); + /** + * Get useAnnotation from enricher configuration + * TODO: This method is kept only for backward compatibility. This should + * be removed in future. See GitHub Issue for more details + * + * @return boolean value indicating whether StorageClass annotation should be used or not + */ + public boolean shouldUseAnnotation() { + return Boolean.parseBoolean(getConfig(Config.USE_ANNOTATION)); + } + + /** + * Get Default StorageClass from enricher configuration + * + * TODO: This method is kept only for backward compatibility. This should + * be removed in future. See GitHub Issue for more details + * @return default storage class + */ + public String getDefaultStorageClass() { + return getConfig(Config.DEFAULT_STORAGE_CLASS); } } diff --git a/jkube-kit/enricher/generic/src/main/resources/META-INF/jkube/enricher-default b/jkube-kit/enricher/generic/src/main/resources/META-INF/jkube/enricher-default index e7120158ed..1b80f5c3be 100644 --- a/jkube-kit/enricher/generic/src/main/resources/META-INF/jkube/enricher-default +++ b/jkube-kit/enricher/generic/src/main/resources/META-INF/jkube/enricher-default @@ -103,3 +103,6 @@ org.eclipse.jkube.enricher.generic.ReplicaCountEnricher # Set ImagePullPolicy on a Controller's container org.eclipse.jkube.enricher.generic.ImagePullPolicyEnricher + +# Set StorageClass name in PersistentVolumeClaim annotation or in spec +org.eclipse.jkube.enricher.generic.PersistentVolumeClaimStorageClassEnricher diff --git a/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricherTest.java b/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricherTest.java new file mode 100644 index 0000000000..d9035a4d5d --- /dev/null +++ b/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/PersistentVolumeClaimStorageClassEnricherTest.java @@ -0,0 +1,93 @@ +/** + * Copyright (c) 2019 Red Hat, Inc. + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at: + * + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + */ +package org.eclipse.jkube.enricher.generic; + +import io.fabric8.kubernetes.api.model.KubernetesListBuilder; +import io.fabric8.kubernetes.api.model.PersistentVolumeClaim; +import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder; +import org.assertj.core.api.InstanceOfAssertFactories; +import org.eclipse.jkube.kit.config.resource.PlatformMode; +import org.eclipse.jkube.kit.enricher.api.JKubeEnricherContext; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +import java.util.Collections; +import java.util.Properties; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +class PersistentVolumeClaimStorageClassEnricherTest { + private JKubeEnricherContext context; + + @BeforeEach + void setUp() { + context = mock(JKubeEnricherContext.class, RETURNS_DEEP_STUBS); + } + + @ParameterizedTest + @ValueSource(strings = {"jkube-persistentvolumeclaim-storageclass", "jkube-volume-permission"}) + void enrich_withPersistentVolumeClaim_shouldAddStorageClassToSpec(String enricher) { + // Given + Properties properties = new Properties(); + properties.put("jkube.enricher." + enricher + ".defaultStorageClass", "standard"); + when(context.getProperties()).thenReturn(properties); + PersistentVolumeClaimStorageClassEnricher volumePermissionEnricher = new PersistentVolumeClaimStorageClassEnricher(context); + KubernetesListBuilder klb = new KubernetesListBuilder(); + klb.addToItems(createNewPersistentVolumeClaim()); + + // When + volumePermissionEnricher.enrich(PlatformMode.kubernetes, klb); + + // Then + assertThat(klb.buildItems()) + .singleElement(InstanceOfAssertFactories.type(PersistentVolumeClaim.class)) + .hasFieldOrPropertyWithValue("spec.storageClassName", "standard") + .extracting("metadata.annotations") + .asInstanceOf(InstanceOfAssertFactories.map(String.class, Object.class)) + .isNullOrEmpty(); + } + + @ParameterizedTest + @ValueSource(strings = {"jkube-persistentvolumeclaim-storageclass", "jkube-volume-permission"}) + void enrich_withPersistentVolumeClaimAndUseAnnotationEnabled_shouldAddStorageClassAnnotation(String enricher) { + // Given + Properties properties = new Properties(); + properties.put("jkube.enricher." + enricher + ".defaultStorageClass", "standard"); + properties.put("jkube.enricher." + enricher + ".useStorageClassAnnotation", "true"); + when(context.getProperties()).thenReturn(properties); + PersistentVolumeClaimStorageClassEnricher volumePermissionEnricher = new PersistentVolumeClaimStorageClassEnricher(context); + KubernetesListBuilder klb = new KubernetesListBuilder(); + klb.addToItems(createNewPersistentVolumeClaim()); + + // When + volumePermissionEnricher.enrich(PlatformMode.kubernetes, klb); + + // Then + assertThat(klb.buildItems()) + .singleElement(InstanceOfAssertFactories.type(PersistentVolumeClaim.class)) + .hasFieldOrPropertyWithValue("metadata.annotations", Collections.singletonMap("volume.beta.kubernetes.io/storage-class", "standard")) + .hasFieldOrPropertyWithValue("spec.storageClassName", null); + } + + private PersistentVolumeClaim createNewPersistentVolumeClaim() { + return new PersistentVolumeClaimBuilder() + .withNewMetadata().withName("pv1").endMetadata() + .withNewSpec().endSpec() + .build(); + } +} diff --git a/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricherTest.java b/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricherTest.java index ad7a5833fb..71c76b1695 100644 --- a/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricherTest.java +++ b/jkube-kit/enricher/generic/src/test/java/org/eclipse/jkube/enricher/generic/VolumePermissionEnricherTest.java @@ -16,8 +16,6 @@ import io.fabric8.kubernetes.api.model.Container; import io.fabric8.kubernetes.api.model.ContainerBuilder; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; -import io.fabric8.kubernetes.api.model.PersistentVolumeClaim; -import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder; import io.fabric8.kubernetes.api.model.PodSpec; import io.fabric8.kubernetes.api.model.PodTemplate; import io.fabric8.kubernetes.api.model.PodTemplateBuilder; @@ -156,49 +154,6 @@ void adapt() { } } - @Test - void enrich_withPersistentVolumeClaim_shouldAddStorageClassToSpec() { - // Given - Properties properties = new Properties(); - properties.put("jkube.enricher.jkube-volume-permission.defaultStorageClass", "standard"); - when(context.getProperties()).thenReturn(properties); - VolumePermissionEnricher volumePermissionEnricher = new VolumePermissionEnricher(context); - KubernetesListBuilder klb = new KubernetesListBuilder(); - klb.addToItems(createNewPersistentVolumeClaim("pv1")); - - // When - volumePermissionEnricher.enrich(PlatformMode.kubernetes, klb); - - // Then - assertThat(klb.buildItems()) - .singleElement(InstanceOfAssertFactories.type(PersistentVolumeClaim.class)) - .hasFieldOrPropertyWithValue("spec.storageClassName", "standard") - .extracting("metadata.annotations") - .asInstanceOf(InstanceOfAssertFactories.map(String.class, Object.class)) - .isNullOrEmpty(); - } - - @Test - void enrich_withPersistentVolumeClaimAndUseAnnotationEnabled_shouldAddStorageClassAnnotation() { - // Given - Properties properties = new Properties(); - properties.put("jkube.enricher.jkube-volume-permission.defaultStorageClass", "standard"); - properties.put("jkube.enricher.jkube-volume-permission.useStorageClassAnnotation", "true"); - when(context.getProperties()).thenReturn(properties); - VolumePermissionEnricher volumePermissionEnricher = new VolumePermissionEnricher(context); - KubernetesListBuilder klb = new KubernetesListBuilder(); - klb.addToItems(createNewPersistentVolumeClaim("pv1")); - - // When - volumePermissionEnricher.enrich(PlatformMode.kubernetes, klb); - - // Then - assertThat(klb.buildItems()) - .singleElement(InstanceOfAssertFactories.type(PersistentVolumeClaim.class)) - .hasFieldOrPropertyWithValue("metadata.annotations", Collections.singletonMap("volume.beta.kubernetes.io/storage-class", "standard")) - .hasFieldOrPropertyWithValue("spec.storageClassName", null); - } - @Test void enrich_withResourcesEnabledInConfiguration_shouldAddRequestsLimitsToVolumeInitContainer() { // Given @@ -259,13 +214,6 @@ public PodTemplateBuilder createEmptyPodTemplate() { .endTemplate(); } - private PersistentVolumeClaim createNewPersistentVolumeClaim(String name) { - return new PersistentVolumeClaimBuilder() - .withNewMetadata().withName(name).endMetadata() - .withNewSpec().endSpec() - .build(); - } - private List getExpectedCommand(TestConfig tc) { String permission = StringUtils.isBlank(tc.permission) ? "777" : tc.permission; List expectedCommandStr = new ArrayList<>(); diff --git a/kubernetes-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml b/kubernetes-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml index c8f3e62c27..2c4f853e1e 100644 --- a/kubernetes-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml +++ b/kubernetes-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml @@ -37,6 +37,7 @@ # TODO: Documents and verify enrichers below - jkube-debug - jkube-volume-permission + - jkube-persistentvolumeclaim-storageclass - jkube-configmap-file - jkube-secret-file diff --git a/openshift-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml b/openshift-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml index f4fd08fc5c..fefb1f617f 100644 --- a/openshift-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml +++ b/openshift-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml @@ -39,6 +39,7 @@ # TODO: Documents and verify enrichers below - jkube-debug - jkube-volume-permission + - jkube-persistentvolumeclaim-storageclass - jkube-configmap-file - jkube-secret-file