From 60ce4adaed401be3706ff9f2fc4daec8029c6a15 Mon Sep 17 00:00:00 2001 From: Vitalii Parfonov Date: Thu, 8 Aug 2019 16:02:54 +0300 Subject: [PATCH 1/3] Fix mount path for case with '.' in host name Signed-off-by: Vitalii Parfonov --- .../kubernetes/provision/VcsSshKeysProvisioner.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeysProvisioner.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeysProvisioner.java index 7af239f1889..f44d2fd879f 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeysProvisioner.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeysProvisioner.java @@ -120,6 +120,7 @@ private void doProvisionSshKey(SshPair sshPair, KubernetesEnvironment k8sEnv, St if (isNullOrEmpty(sshPair.getName()) || isNullOrEmpty(sshPair.getPrivateKey())) { return; } + String validNameForSecret = getValidNameForSecret(sshPair.getName()); Secret secret = new SecretBuilder() .addToData( @@ -127,7 +128,7 @@ private void doProvisionSshKey(SshPair sshPair, KubernetesEnvironment k8sEnv, St Base64.getEncoder().encodeToString(sshPair.getPrivateKey().getBytes())) .withType(SECRET_TYPE_SSH) .withNewMetadata() - .withName(wsId + "-" + getValidNameForSecret(sshPair.getName())) + .withName(wsId + "-" + validNameForSecret) .endMetadata() .build(); @@ -137,7 +138,8 @@ private void doProvisionSshKey(SshPair sshPair, KubernetesEnvironment k8sEnv, St .getPodsData() .values() .forEach( - p -> mountSshKeySecret(secret.getMetadata().getName(), sshPair.getName(), p.getSpec())); + p -> + mountSshKeySecret(secret.getMetadata().getName(), validNameForSecret, p.getSpec())); } private void mountSshKeySecret(String secretName, String sshKeyName, PodSpec podSpec) { From c832b2ba3b919de8ef49d8b28c4fd203fdf97d62 Mon Sep 17 00:00:00 2001 From: Vitalii Parfonov Date: Thu, 8 Aug 2019 17:57:08 +0300 Subject: [PATCH 2/3] Add checking for name validation Signed-off-by: Vitalii Parfonov --- .../kubernetes/provision/VcsSshKeySecretProvisionerTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java index 378bd383826..e4748a44ce9 100644 --- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java +++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java @@ -106,6 +106,11 @@ public void addSshKeysConfigInPod() throws Exception { String key = secret.getData().get("ssh-privatekey"); assertNotNull(key); + //check if key nave valid name '.' replaced to the '-' + Secret secret3 = k8sEnv.getSecrets().get("wksp-" + keyName3.replace('.', '-')); + assertNotNull(secret3); + assertEquals(secret3.getType(), "kubernetes.io/ssh-auth"); + Map configMaps = k8sEnv.getConfigMaps(); assertNotNull(configMaps); assertTrue(configMaps.containsKey("wksp-sshconfigmap")); From 6fa36899c89fdd6df867bce95c2cafae71966697 Mon Sep 17 00:00:00 2001 From: Vitalii Parfonov Date: Thu, 8 Aug 2019 18:34:43 +0300 Subject: [PATCH 3/3] Fix formating Signed-off-by: Vitalii Parfonov --- .../kubernetes/provision/VcsSshKeySecretProvisionerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java index e4748a44ce9..ed8afcf85eb 100644 --- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java +++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/VcsSshKeySecretProvisionerTest.java @@ -106,7 +106,7 @@ public void addSshKeysConfigInPod() throws Exception { String key = secret.getData().get("ssh-privatekey"); assertNotNull(key); - //check if key nave valid name '.' replaced to the '-' + // check if key nave valid name '.' replaced to the '-' Secret secret3 = k8sEnv.getSecrets().get("wksp-" + keyName3.replace('.', '-')); assertNotNull(secret3); assertEquals(secret3.getType(), "kubernetes.io/ssh-auth");