This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 2f8a0881ed6 CAMEL-21625: camel-jbang - camel k8s run may not cleanup properly on openshift (#16825) 2f8a0881ed6 is described below commit 2f8a0881ed6e65cecf9bf7ae2e3968f2751d8bd1 Author: Thomas Diesler <tdies...@redhat.com> AuthorDate: Thu Jan 16 12:15:19 2025 +0100 CAMEL-21625: camel-jbang - camel k8s run may not cleanup properly on openshift (#16825) --- .../core/commands/kubernetes/KubernetesHelper.java | 32 ++++------------------ .../core/commands/kubernetes/KubernetesRun.java | 23 +++++++++++++++- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java index c0983a9419a..9ea8b63fe47 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java @@ -34,10 +34,6 @@ import com.fasterxml.jackson.databind.json.JsonMapper; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientBuilder; -import io.fabric8.kubernetes.client.vertx.VertxHttpClientFactory; -import io.vertx.core.Vertx; -import io.vertx.core.VertxOptions; -import io.vertx.core.file.FileSystemOptions; import org.apache.camel.dsl.jbang.core.commands.CommandHelper; import org.apache.camel.dsl.jbang.core.common.YamlHelper; import org.apache.camel.util.FileUtil; @@ -154,21 +150,6 @@ public final class KubernetesHelper { KubernetesHelper.kubernetesClient = kubernetesClient; } - // KubernetesClientVertx can no longer be used in ShutdownHook - // https://issues.apache.org/jira/browse/CAMEL-21621 - public static KubernetesClient createKubernetesClientForShutdownHook() { - System.setProperty("vertx.disableDnsResolver", "true"); - var vertx = Vertx.vertx((new VertxOptions()) - .setFileSystemOptions((new FileSystemOptions()) - .setFileCachingEnabled(false) - .setClassPathResolvingEnabled(false)) - .setUseDaemonThread(true)); - var client = new KubernetesClientBuilder() - .withHttpClientFactory(new VertxHttpClientFactory(vertx)) - .build(); - return client; - } - /** * Dump given domain model object as YAML. Uses Json conversion to generic map as intermediate step. This makes sure * to properly write Json additional properties. @@ -220,13 +201,12 @@ public final class KubernetesHelper { } public static File getKubernetesManifest(String clusterType, File workingDir, String extension) { - ClusterType cs = ClusterType - .valueOf(Optional.ofNullable(clusterType).map(String::toUpperCase).orElse(ClusterType.KUBERNETES.name())); - String manifestFile = switch (cs) { - case KIND, MINIKUBE -> "kubernetes"; - case OPENSHIFT -> "_openshift"; - default -> cs.name().toLowerCase(); - }; + String manifestFile; + if (ClusterType.KIND.isEqualTo(clusterType) || ClusterType.MINIKUBE.isEqualTo(clusterType)) { + manifestFile = "kubernetes"; + } else { + manifestFile = Optional.ofNullable(clusterType).map(String::toLowerCase).orElse("kubernetes"); + } return new File(workingDir, "%s.%s".formatted(manifestFile, extension)); } } diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java index bb8a1768860..432c390ec48 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java @@ -27,6 +27,12 @@ import java.util.List; import java.util.concurrent.TimeUnit; import io.fabric8.kubernetes.api.model.Pod; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClientBuilder; +import io.fabric8.kubernetes.client.vertx.VertxHttpClientFactory; +import io.vertx.core.Vertx; +import io.vertx.core.VertxOptions; +import io.vertx.core.file.FileSystemOptions; import org.apache.camel.CamelContext; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; import org.apache.camel.dsl.jbang.core.commands.CommandHelper; @@ -506,7 +512,7 @@ public class KubernetesRun extends KubernetesBaseCommand { deleteCommand.clusterType = clusterType; deleteCommand.workingDir = workingDir; deleteCommand.name = projectName; - try (var client = KubernetesHelper.createKubernetesClientForShutdownHook()) { + try (var client = createKubernetesClientForShutdownHook()) { KubernetesHelper.setKubernetesClient(client); deleteCommand.doCall(); CommandHelper.cleanExportDir(deleteCommand.workingDir, false); @@ -518,6 +524,21 @@ public class KubernetesRun extends KubernetesBaseCommand { Runtime.getRuntime().addShutdownHook(devModeShutdownTask); } + // KubernetesClientVertx can no longer be used in ShutdownHook + // https://issues.apache.org/jira/browse/CAMEL-21621 + private KubernetesClient createKubernetesClientForShutdownHook() { + System.setProperty("vertx.disableDnsResolver", "true"); + var vertx = Vertx.vertx((new VertxOptions()) + .setFileSystemOptions((new FileSystemOptions()) + .setFileCachingEnabled(false) + .setClassPathResolvingEnabled(false)) + .setUseDaemonThread(true)); + var client = new KubernetesClientBuilder() + .withHttpClientFactory(new VertxHttpClientFactory(vertx)) + .build(); + return client; + } + private Integer buildProject(String workingDir) throws IOException, InterruptedException { printer().println("Building Camel application ...");