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

cdeppisch 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 5d55ad7a815 CAMEL-21904: Use cluster specific labels on Kubernetes 
deployment
5d55ad7a815 is described below

commit 5d55ad7a81552b53dad17954de7c1657d51b7541
Author: Christoph Deppisch <[email protected]>
AuthorDate: Thu Mar 27 16:26:57 2025 +0100

    CAMEL-21904: Use cluster specific labels on Kubernetes deployment
    
    - Add OpenShift specific runtime label on Kubernetes deployment when doing 
the Camel JBang project export to OpenShift cluster
    - Makes sure to display the Camel logo as part of the Deployment in 
OpenShift
---
 .../core/commands/kubernetes/KubernetesExport.java | 25 +++++++++-------------
 .../commands/kubernetes/traits/TraitContext.java   |  4 ++++
 2 files changed, 14 insertions(+), 15 deletions(-)

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 d54e6230fdb..3b9c8f7a695 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
@@ -240,11 +240,13 @@ public class KubernetesExport extends Export {
         // app.kubernetes.io/name
         // app.kubernetes.io/version
         //
-        addLabel("app.kubernetes.io/runtime", "camel");
-        context.addLabels(Arrays.stream(labels)
-                .map(item -> item.split("="))
-                .filter(parts -> parts.length == 2)
-                .collect(Collectors.toMap(parts -> parts[0], parts -> 
parts[1])));
+        context.addLabel("app.kubernetes.io/runtime", "camel");
+        if (labels != null) {
+            context.addLabels(Arrays.stream(labels)
+                    .map(item -> item.split("="))
+                    .filter(parts -> parts.length == 2)
+                    .collect(Collectors.toMap(parts -> parts[0], parts -> 
parts[1])));
+        }
 
         if (clusterType != null) {
             
context.setClusterType(ClusterType.valueOf(clusterType.toUpperCase()));
@@ -297,6 +299,9 @@ public class KubernetesExport extends Export {
         buildProperties.add("jkube.skip.push=%b".formatted(!imagePush));
 
         if (ClusterType.OPENSHIFT.isEqualTo(clusterType)) {
+            // Displays the Camel logo as part the deployment
+            context.addLabel("app.openshift.io/runtime", "camel");
+
             if (!"docker".equals(imageBuilder)) {
                 printer().printf("OpenShift forcing --image-builder=docker%n");
                 imageBuilder = "docker";
@@ -429,16 +434,6 @@ public class KubernetesExport extends Export {
         }
     }
 
-    private void addLabel(String key, String value) {
-        var labelArray = Optional.ofNullable(labels).orElse(new String[0]);
-        var labelList = new ArrayList<>(Arrays.asList(labelArray));
-        var labelEntry = "%s=%s".formatted(key, value);
-        if (!labelList.contains(labelEntry)) {
-            labelList.add(labelEntry);
-            labels = labelList.toArray(new String[0]);
-        }
-    }
-
     private String resolveImageGroup() {
         if (image != null) {
             return extractImageGroup(image);
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitContext.java
 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitContext.java
index 90569eb5bd6..7687e3a6645 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitContext.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitContext.java
@@ -186,6 +186,10 @@ public class TraitContext {
                 .collect(Collectors.toList());
     }
 
+    public void addLabel(String name, String value) {
+        this.labels.put(name, value);
+    }
+
     public void addLabels(Map<String, String> labels) {
         this.labels.putAll(labels);
     }

Reply via email to