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 b91ce12751fa CAMEL-22880: Add camel dashboard default label when
observe parameter is true for camel-jbang kubernetes plugin (#21300)
b91ce12751fa is described below
commit b91ce12751fad399e0048c7ef4a2ee4281b7aaa1
Author: Gaƫlle Fournier <[email protected]>
AuthorDate: Fri Feb 6 15:05:20 2026 +0100
CAMEL-22880: Add camel dashboard default label when observe parameter is
true for camel-jbang kubernetes plugin (#21300)
---
docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc | 2 ++
.../dsl/jbang/core/commands/kubernetes/KubernetesExport.java | 4 ++++
.../dsl/jbang/core/commands/kubernetes/traits/LabelTrait.java | 1 +
.../dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java | 8 +++++---
.../dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java | 2 ++
5 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc
b/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc
index e10f10e1a964..f65494a29bad 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-kubernetes.adoc
@@ -390,6 +390,8 @@ The CronJob configuration parameters:
You may need to add labels or annotations to the generated Kubernetes
resources.
By default, the generated resources will have the label
`camel.apache.org/integration` set to the exported project name.
+When the `--observe` command option is present (it is by default) then the
generated resources will also have the label `camel.apache.org/app` set to the
exported project name.
+
You can add labels and annotations with these options on the export command:
[source,bash]
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 109c9a58bb45..037f919e6795 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
@@ -276,6 +276,10 @@ public class KubernetesExport extends Export {
// app.kubernetes.io/version
//
context.addLabel("app.kubernetes.io/runtime", "camel");
+ if (observe) {
+ // Add the default label for camel dashboard to pick up the camel
application
+ context.addLabel("camel.apache.org/app", context.getName());
+ }
if (labels != null) {
context.addLabels(Arrays.stream(labels)
.map(item -> item.split("="))
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/LabelTrait.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/LabelTrait.java
index 8ab08380e953..590b14d0d50a 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/LabelTrait.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/LabelTrait.java
@@ -37,6 +37,7 @@ public class LabelTrait extends BaseTrait {
.addToLabels(KUBERNETES_LABEL_NAME, context.getName())
.addToLabels(context.getLabels())
.endMetadata());
+
context.doWithServices(
s -> s.editOrNewMetadata()
.addToLabels(KUBERNETES_LABEL_NAME, context.getName())
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 a97849d05e04..5895247c8b85 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
@@ -192,7 +192,7 @@ class KubernetesExportTest extends
KubernetesExportBaseTestSupport {
@MethodSource("runtimeProvider")
public void shouldGenerateKubernetesManifest(RuntimeType rt) throws
Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
- "--image-registry=quay.io", "--image-group=camel-test",
"--runtime=" + rt.runtime());
+ "--image-registry=quay.io", "--image-group=camel-test",
"--observe=true", "--runtime=" + rt.runtime());
int exit = command.doCall();
Assertions.assertEquals(0, exit);
@@ -203,6 +203,7 @@ class KubernetesExportTest extends
KubernetesExportBaseTestSupport {
Assertions.assertEquals("route", deployment.getMetadata().getName());
Assertions.assertEquals(1, containers.size());
Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_LABEL_NAME));
+ Assertions.assertEquals("route", labels.get("camel.apache.org/app"));
Assertions.assertEquals("route", containers.get(0).getName());
Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_LABEL_NAME));
Assertions.assertNull(containers.get(0).getImage());
@@ -663,16 +664,17 @@ class KubernetesExportTest extends
KubernetesExportBaseTestSupport {
@MethodSource("runtimeProvider")
public void shouldAddLabels(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
- "--label=foo=bar", "--runtime=" + rt.runtime());
+ "--label=foo=bar", "--observe=true", "--runtime=" +
rt.runtime());
var exit = command.doCall();
Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
var labels = deployment.getMetadata().getLabels();
Assertions.assertEquals("route", deployment.getMetadata().getName());
- Assertions.assertEquals(3, labels.size());
+ Assertions.assertEquals(4, labels.size());
Assertions.assertEquals("camel",
labels.get("app.kubernetes.io/runtime"));
Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_LABEL_NAME));
+ Assertions.assertEquals("route", labels.get("camel.apache.org/app"));
Assertions.assertEquals("bar", labels.get("foo"));
}
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
index 0d3396c56bdb..96dcd56ff601 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
@@ -133,6 +133,7 @@ class KubernetesRunTest extends KubernetesBaseTestSupport {
Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_LABEL_NAME));
Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
containers.get(0).getImage());
Assertions.assertEquals("IfNotPresent",
containers.get(0).getImagePullPolicy());
+ Assertions.assertEquals("route", labels.get("camel.apache.org/app"));
// verify the container health probes path to /observe accordingly to
the camel-observability-services
if (RuntimeType.quarkus == RuntimeType.fromValue(rt.runtime())) {
@@ -232,6 +233,7 @@ class KubernetesRunTest extends KubernetesBaseTestSupport {
Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_LABEL_NAME));
Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_LABEL_NAME));
Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
containers.get(0).getImage());
+ Assertions.assertEquals("route", labels.get("camel.apache.org/app"));
}
private KubernetesRun createCommand(List<String> files, String... args) {