You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@heron.apache.org by sa...@apache.org on 2022/05/03 14:58:06 UTC
[incubator-heron] 03/04: [K8s] generating volume with PVC in Volume Factory.
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 b4d7cd3a70e56b3791ea488e56cc4b5a3bf1821e
Author: Saad Ur Rahman <sa...@apache.org>
AuthorDate: Tue May 3 10:57:11 2022 -0400
[K8s] generating volume with PVC in Volume Factory.
---
.../org/apache/heron/scheduler/kubernetes/Volumes.java | 15 +++++++++++++++
.../apache/heron/scheduler/kubernetes/VolumesTests.java | 16 ++++++++++++++++
2 files changed, 31 insertions(+)
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 d9e641f78cc..4dcba8fdccb 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
@@ -142,6 +142,21 @@ final class Volumes {
return claim;
}
+ /**
+ * Generates a <code>Volume</code> with a <code>Persistent Volume Claim</code> inserted.
+ * @param claimName Name of the <code>Persistent Volume Claim</code>.
+ * @param volumeName Name of the <code>Volume</code> to place the <code>Persistent Volume Claim</code> in.
+ * @return Fully configured <code>Volume</code> with <code>Persistent Volume Claim</code> in it.
+ */
+ V1Volume createPersistentVolumeClaim(String claimName, String volumeName) {
+ return new V1VolumeBuilder()
+ .withName(volumeName)
+ .withNewPersistentVolumeClaim()
+ .withClaimName(claimName)
+ .endPersistentVolumeClaim()
+ .build();
+ }
+
interface IVolumeFactory {
V1Volume create(String volumeName, Map<KubernetesConstants.VolumeConfigKeys, String> configs);
}
diff --git a/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java b/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java
index 1cd7889741b..c457012e342 100644
--- a/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java
+++ b/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java
@@ -340,4 +340,20 @@ public class VolumesTests {
.createPersistentVolumeClaim(volumeNameStatic, labels, volStaticConfig);
Assert.assertEquals("Volume static PVC", claimStatic, actualPVCStatic);
}
+
+ @Test
+ public void testVolumeWithPersistentVolumeClaim() {
+ final String claimName = "claim-name";
+ final String volumeName = "volume-name";
+ final V1Volume expected = new V1VolumeBuilder()
+ .withName(volumeName)
+ .withNewPersistentVolumeClaim()
+ .withClaimName(claimName)
+ .endPersistentVolumeClaim()
+ .build();
+
+ final V1Volume actual = Volumes.get().createPersistentVolumeClaim(claimName, volumeName);
+
+ Assert.assertEquals("Volume with Persistent Volume Claim configured", expected, actual);
+ }
}