This is an automated email from the ASF dual-hosted git repository. saadurrahman pushed a commit to branch saadurrahman/3821-Remove-Deprecated-Volumes-K8s-dev in repository https://gitbox.apache.org/repos/asf/incubator-heron.git
commit 616eb440abd6c22dfc20db055804c8c1c90d81eb Author: Saad Ur Rahman <[email protected]> AuthorDate: Sun May 1 15:35:23 2022 -0400 [K8s] Interfaces in Volume Factory updated. Added interfaces: - Volume Mounts - Persistent Volume Claim --- .../apache/heron/scheduler/kubernetes/Volumes.java | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java b/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java index c7abff725b6..038dd08a7d6 100644 --- a/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java +++ b/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java @@ -23,8 +23,10 @@ import java.util.HashMap; import java.util.Map; import io.kubernetes.client.custom.Quantity; +import io.kubernetes.client.openapi.models.V1PersistentVolumeClaim; import io.kubernetes.client.openapi.models.V1Volume; import io.kubernetes.client.openapi.models.V1VolumeBuilder; +import io.kubernetes.client.openapi.models.V1VolumeMount; final class Volumes { @@ -35,7 +37,7 @@ final class Volumes { PersistentVolumeClaim, VolumeMount } - private final Map<VolumeType, VolumeFactory> volumes = new HashMap<>(); + private final Map<VolumeType, IVolumeFactory> volumes = new HashMap<>(); private Volumes() { volumes.put(VolumeType.EmptyDir, new EmptyDirVolumeFactory()); @@ -63,11 +65,21 @@ final class Volumes { return null; } - interface VolumeFactory { + interface IVolumeFactory { V1Volume create(String volumeName, Map<KubernetesConstants.VolumeConfigKeys, String> configs); } - static class EmptyDirVolumeFactory implements VolumeFactory { + interface IVolumeMountFactory { + V1VolumeMount create(String volumeName, + Map<KubernetesConstants.VolumeConfigKeys, String> configs); + } + + interface IPersistentVolumeClaimFactory { + V1PersistentVolumeClaim create(String volumeName, + Map<KubernetesConstants.VolumeConfigKeys, String> configs); + } + + static class EmptyDirVolumeFactory implements IVolumeFactory { /** * Generates an <code>Empty Directory</code> <code>V1 Volume</code>. @@ -101,7 +113,7 @@ final class Volumes { } } - static class HostPathVolumeFactory implements VolumeFactory { + static class HostPathVolumeFactory implements IVolumeFactory { /** * Generates a <code>Host Path</code> <code>V1 Volume</code>. @@ -134,7 +146,7 @@ final class Volumes { } } - static class NetworkFileSystemVolumeFactory implements VolumeFactory { + static class NetworkFileSystemVolumeFactory implements IVolumeFactory { /** * Generates a <code>Network File System</code> <code>V1 Volume</code>.
