You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gf...@apache.org on 2025/02/19 16:51:25 UTC

(camel) branch main updated: camel-jbang-plugin-kubernetes - jkube to generate Deployment instead of DeploymentConfig

This is an automated email from the ASF dual-hosted git repository.

gfournier 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 144d059470f camel-jbang-plugin-kubernetes - jkube to generate Deployment instead of DeploymentConfig
144d059470f is described below

commit 144d059470f7bee5d108d334d99376498a138103
Author: Claudio Miranda <cl...@claudius.com.br>
AuthorDate: Wed Feb 19 12:06:53 2025 +0000

    camel-jbang-plugin-kubernetes - jkube to generate Deployment instead of DeploymentConfig
    
    when the target is an openshift cluster
---
 .../jbang/core/commands/kubernetes/KubernetesExport.java  |  3 +++
 .../core/commands/kubernetes/KubernetesExportTest.java    | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
index 786a9d36bbb..4e55e823916 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
@@ -292,6 +292,9 @@ public class KubernetesExport extends Export {
                 printer().printf("OpenShift forcing --image-builder=docker%n");
                 imageBuilder = "docker";
             }
+            // the deployment trait already generates the src/main/jkube/deployment.yml
+            // but we also have to set in the jkube to generate Deployment instead of DeploymentConfig
+            buildProperties.add("jkube.build.switchToDeployment=true");
             buildProperties.add("jkube.maven.plugin=%s".formatted("openshift-maven-plugin"));
         } else {
             buildProperties.add("jkube.maven.plugin=%s".formatted("kubernetes-maven-plugin"));
diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
index a786b627d61..c49cf8b7359 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
@@ -312,6 +312,21 @@ class KubernetesExportTest extends KubernetesExportBaseTest {
         Assertions.assertTrue(key.startsWith(route.getSpec().getTls().getKey()));
     }
 
+    @ParameterizedTest
+    @MethodSource("runtimeProvider")
+    public void shouldAddJkubeOpenshiftDeploymentProperty(RuntimeType rt) throws Exception {
+        KubernetesExport command = createCommand(new String[] { "classpath:route-service.yaml" },
+                "--cluster-type", "openshift",
+                "--runtime=" + rt.runtime());
+        var exit = command.doCall();
+        Assertions.assertEquals(0, exit);
+
+        Model model = readMavenModel();
+        Properties props = model.getProperties();
+        Assertions.assertEquals("true", props.get("jkube.build.switchToDeployment"),
+                "property jkube.build.switchToDeployment=true not set in pom.xml");
+    }
+
     @ParameterizedTest
     @MethodSource("runtimeProvider")
     public void shouldAddContainerSpec(RuntimeType rt) throws Exception {