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 ...");
 

Reply via email to