From 9d364fc518338e3a88651c1971a865a9401c2cb4 Mon Sep 17 00:00:00 2001 From: Chris Malloy Date: Sun, 7 Jan 2024 18:49:56 -0400 Subject: [PATCH] Handle creating new configmap for authorized_keys --- pom.xml | 8 ++++++++ .../java/jasper/component/k8s/TunnelServer.java | 13 ++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 26e6d3b9..369a9dd6 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,7 @@ 1.16.1 2.3.8 0.18.2 + 6.4.1 @@ -383,6 +384,13 @@ + + io.fabric8 + kubernetes-client-bom + ${fabric8.version} + import + pom + org.springframework.cloud spring-cloud-dependencies diff --git a/src/main/java/jasper/component/k8s/TunnelServer.java b/src/main/java/jasper/component/k8s/TunnelServer.java index 4fc3a4d2..10635671 100644 --- a/src/main/java/jasper/component/k8s/TunnelServer.java +++ b/src/main/java/jasper/component/k8s/TunnelServer.java @@ -37,7 +37,7 @@ public class TunnelServer { timeUnit = TimeUnit.SECONDS) public void generateConfig() { var changed = false; - StringBuilder result = new StringBuilder(); + var result = new StringBuilder(); for (var origin : props.getSshOrigins()) { var cursor = userRepository.getCursor(origin); if (cursor != null) { @@ -65,8 +65,15 @@ public void generateConfig() { } } try (var client = new DefaultKubernetesClient()) { - client.configMaps().inNamespace(props.getSshConfigNamespace()).withName(props.getSshConfigMapName()) - .edit(c -> new ConfigMapBuilder(c).addToData("authorized_keys", result.toString()).build()); + client.configMaps() + .inNamespace(props.getSshConfigNamespace()) + .resource(new ConfigMapBuilder() + .withNewMetadata() + .withName(props.getSshConfigMapName()) + .and() + .addToData("authorized_keys", result.toString()) + .build()) + .serverSideApply(); } }