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);
}