From d6fbd010da8c0cfbb22d09883c1f66fcada089b3 Mon Sep 17 00:00:00 2001 From: csviri Date: Fri, 31 Mar 2023 13:30:41 +0200 Subject: [PATCH] feat: update config flag --- .../jenvtest/KubeAPIServer.java | 4 +++- .../jenvtest/KubeAPIServerConfig.java | 9 ++++++++- .../jenvtest/KubeAPIServerConfigBuilder.java | 18 ++++++++++++++---- .../jenvtest/KubeApiServerTest.java | 4 +++- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServer.java b/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServer.java index 20cbc04..da85e32 100644 --- a/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServer.java +++ b/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServer.java @@ -44,7 +44,9 @@ public void start() { etcdProcess.cleanEtcdData(); var etcdPort = etcdProcess.startEtcd(); var apiServerPort = kubeApiServerProcess.startApiServer(etcdPort); - kubeConfig.updateKubeConfig(apiServerPort); + if (config.isUpdateKubeConfig()) { + kubeConfig.updateKubeConfig(apiServerPort); + } kubeApiServerProcess.waitUntilDefaultNamespaceCreated(); log.debug("API Server ready to use"); } diff --git a/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfig.java b/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfig.java index fed2abd..24b9a86 100644 --- a/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfig.java +++ b/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfig.java @@ -33,12 +33,15 @@ public class KubeAPIServerConfig { */ private final List apiServerFlags; + private final boolean updateKubeConfig; + KubeAPIServerConfig(String jenvtestDir, String apiServerVersion, boolean offlineMode, - List apiServerFlags) { + List apiServerFlags, boolean updateKubeConfig) { this.jenvtestDir = jenvtestDir; this.apiServerVersion = apiServerVersion; this.offlineMode = offlineMode; this.apiServerFlags = apiServerFlags; + this.updateKubeConfig = updateKubeConfig; } public String getJenvtestDir() { @@ -56,4 +59,8 @@ public boolean isOfflineMode() { public List getApiServerFlags() { return apiServerFlags; } + + public boolean isUpdateKubeConfig() { + return updateKubeConfig; + } } diff --git a/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfigBuilder.java b/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfigBuilder.java index 4e59fb0..bc877b0 100644 --- a/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfigBuilder.java +++ b/core/src/main/java/io/javaoperatorsdk/jenvtest/KubeAPIServerConfigBuilder.java @@ -15,6 +15,7 @@ public final class KubeAPIServerConfigBuilder { private String jenvtestDir; private String apiServerVersion; private Boolean offlineMode; + private boolean updateKubeConfig = true; private final List apiServerFlags = new ArrayList<>(0); public KubeAPIServerConfigBuilder() {} @@ -61,22 +62,31 @@ public KubeAPIServerConfig build() { this.apiServerVersion = apiServerVersionEnvVar; } } - return new KubeAPIServerConfig(jenvtestDir, apiServerVersion, offlineMode, apiServerFlags); + return new KubeAPIServerConfig(jenvtestDir, apiServerVersion, offlineMode, apiServerFlags, + updateKubeConfig); } - public void withApiServerFlags(List flags) { + public KubeAPIServerConfigBuilder withUpdateKubeConfig(boolean updateKubeConfig) { + this.updateKubeConfig = updateKubeConfig; + return this; + } + + public KubeAPIServerConfigBuilder withApiServerFlags(List flags) { apiServerFlags.addAll(flags); + return this; } - public void withApiServerFlag(String key, String value) { + public KubeAPIServerConfigBuilder withApiServerFlag(String key, String value) { checkKeyPrefix(key); apiServerFlags.add(key); apiServerFlags.add(value); + return this; } - public void withApiServerFlag(String key) { + public KubeAPIServerConfigBuilder withApiServerFlag(String key) { checkKeyPrefix(key); apiServerFlags.add(key); + return this; } private void checkKeyPrefix(String key) { diff --git a/samples/src/test/java/io/javaoperatorsdk/jenvtest/KubeApiServerTest.java b/samples/src/test/java/io/javaoperatorsdk/jenvtest/KubeApiServerTest.java index 7cf0278..3e0bd1d 100644 --- a/samples/src/test/java/io/javaoperatorsdk/jenvtest/KubeApiServerTest.java +++ b/samples/src/test/java/io/javaoperatorsdk/jenvtest/KubeApiServerTest.java @@ -39,7 +39,9 @@ void usingWildcardVersion() { @Test void creatingClientFromConfigString() { - var kubeApi = new KubeAPIServer(); + var kubeApi = new KubeAPIServer(KubeAPIServerConfigBuilder.anAPIServerConfig() + .withUpdateKubeConfig(false) + .build()); kubeApi.start(); var client =