From de8c4b249661c045a042b04578549985183d6cd6 Mon Sep 17 00:00:00 2001 From: CARLI FLORENT Date: Wed, 5 Dec 2018 17:05:33 +0100 Subject: [PATCH] add PVC and configmaps support to kubernetes backend --- .../backend/kubernetes/KubernetesBackend.java | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/openanalytics/containerproxy/backend/kubernetes/KubernetesBackend.java b/src/main/java/eu/openanalytics/containerproxy/backend/kubernetes/KubernetesBackend.java index f5776c22..4d3e9ddd 100644 --- a/src/main/java/eu/openanalytics/containerproxy/backend/kubernetes/KubernetesBackend.java +++ b/src/main/java/eu/openanalytics/containerproxy/backend/kubernetes/KubernetesBackend.java @@ -45,6 +45,8 @@ import eu.openanalytics.containerproxy.model.runtime.Proxy; import eu.openanalytics.containerproxy.model.spec.ContainerSpec; import eu.openanalytics.containerproxy.util.Retrying; +import io.fabric8.kubernetes.api.model.ConfigMapVolumeSource; +import io.fabric8.kubernetes.api.model.ConfigMapVolumeSourceBuilder; import io.fabric8.kubernetes.api.model.ContainerBuilder; import io.fabric8.kubernetes.api.model.ContainerPort; import io.fabric8.kubernetes.api.model.ContainerPortBuilder; @@ -122,13 +124,28 @@ protected Container startContainer(ContainerSpec spec, Proxy proxy) throws Excep VolumeMount[] volumeMounts = new VolumeMount[volumeStrings.length]; for (int i = 0; i < volumeStrings.length; i++) { String[] volume = volumeStrings[i].split(":"); - String hostSource = volume[0]; + String volumeName = volume[0]; String containerDest = volume[1]; String name = "shinyproxy-volume-" + i; - volumes.add(new VolumeBuilder() - .withNewHostPath(hostSource) + if (volumeName.startsWith("configmap_")) { + ConfigMapVolumeSource configMapVolumeSource = new ConfigMapVolumeSourceBuilder() + .withName(volumeName.replace("configmap_","")) + .build(); + volumes.add(new VolumeBuilder() + .withConfigMap(configMapVolumeSource) + .withName(name) + .build()); + } else if (volumeName.startsWith("claim_")) { + volumes.add(new VolumeBuilder() + .withNewPersistentVolumeClaim(volumeName.replace("claim_",""),true) .withName(name) .build()); + } else { + volumes.add(new VolumeBuilder() + .withNewHostPath(volumeName) + .withName(name) + .build()); + } volumeMounts[i] = new VolumeMountBuilder() .withMountPath(containerDest) .withName(name) @@ -296,4 +313,4 @@ protected String getPropertyPrefix() { return PROPERTY_PREFIX; } -} \ No newline at end of file +}