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 1bd0d7455ff [CAMEL-21362] camel k8s run cannot find pod on openshift
(#15998)
1bd0d7455ff is described below
commit 1bd0d7455ffaa22ec6ae02e227c3f1c98663ad15
Author: Thomas Diesler <[email protected]>
AuthorDate: Sat Oct 19 08:38:48 2024 +0200
[CAMEL-21362] camel k8s run cannot find pod on openshift (#15998)
* [CAMEL-21362] camel k8s run cannot find pod on openshift
* Remove label 'camel.apache.org/integration'
---
.../core/commands/k/IntegrationExportTest.java | 29 ++++----
.../core/commands/kubernetes/KubernetesRun.java | 6 +-
.../jbang/core/commands/kubernetes/PodLogs.java | 3 +-
.../core/commands/kubernetes/traits/BaseTrait.java | 2 +-
.../commands/kubernetes/traits/ContainerTrait.java | 4 +-
.../kubernetes/traits/DeploymentTrait.java | 5 +-
.../commands/kubernetes/traits/LabelTrait.java | 4 +-
.../commands/kubernetes/traits/ServiceTrait.java | 4 +-
.../traits/knative/KnativeServiceTrait.java | 4 +-
.../commands/kubernetes/KubernetesCommandTest.java | 11 +--
.../commands/kubernetes/KubernetesDeleteTest.java | 2 +-
.../kubernetes/KubernetesExportKnativeTest.java | 40 +++++------
.../commands/kubernetes/KubernetesExportTest.java | 82 +++++++++++++---------
.../commands/kubernetes/KubernetesRunTest.java | 31 ++++----
.../core/commands/kubernetes/PodLogsTest.java | 6 +-
15 files changed, 123 insertions(+), 110 deletions(-)
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationExportTest.java
b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationExportTest.java
index f6b0ea42c66..606f43aef85 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationExportTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationExportTest.java
@@ -61,20 +61,19 @@ class IntegrationExportTest extends CamelKBaseTest {
Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(RuntimeType.quarkus);
+ var labels = deployment.getMetadata().getLabels();
+ var matchLabels = deployment.getSpec().getSelector().getMatchLabels();
+ var containers =
deployment.getSpec().getTemplate().getSpec().getContainers();
Assertions.assertEquals("routes", deployment.getMetadata().getName());
- Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Assertions.assertEquals("routes",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("routes",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getName());
- Assertions.assertEquals(1,
deployment.getSpec().getSelector().getMatchLabels().size());
- Assertions.assertEquals("routes",
-
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("camel-test/routes:1.0-SNAPSHOT",
-
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage());
- Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv().size());
- Assertions.assertEquals("MY_ENV_VAR",
-
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv().get(0).getName());
- Assertions.assertEquals("foo",
-
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv().get(0).getValue());
+ Assertions.assertEquals(1, containers.size());
+ Assertions.assertEquals("routes",
labels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("routes", containers.get(0).getName());
+ Assertions.assertEquals(1, matchLabels.size());
+ Assertions.assertEquals("routes",
matchLabels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("camel-test/routes:1.0-SNAPSHOT",
containers.get(0).getImage());
+ Assertions.assertEquals(1, containers.get(0).getEnv().size());
+ Assertions.assertEquals("MY_ENV_VAR",
containers.get(0).getEnv().get(0).getName());
+ Assertions.assertEquals("foo",
containers.get(0).getEnv().get(0).getValue());
}
@Test
@@ -88,11 +87,11 @@ class IntegrationExportTest extends CamelKBaseTest {
Deployment deployment = getDeployment(RuntimeType.quarkus);
Assertions.assertEquals("timer-to-log",
deployment.getMetadata().getName());
Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Assertions.assertEquals("timer-to-log",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
+ Assertions.assertEquals("timer-to-log",
deployment.getMetadata().getLabels().get(BaseTrait.KUBERNETES_NAME_LABEL));
Assertions.assertEquals("timer-to-log",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getName());
Assertions.assertEquals(1,
deployment.getSpec().getSelector().getMatchLabels().size());
Assertions.assertEquals("timer-to-log",
-
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
+
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.KUBERNETES_NAME_LABEL));
Assertions.assertEquals("camel-test/timer-to-log:1.0-SNAPSHOT",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage());
Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv().size());
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 e8c8eac9a97..19319d2b566 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
@@ -435,7 +435,7 @@ public class KubernetesRun extends KubernetesBaseCommand {
try {
var podLogs = new PodLogs(getMain());
podLogs.withClient(client());
- podLogs.label = "%s=%s".formatted(BaseTrait.INTEGRATION_LABEL,
projectName);
+ podLogs.label = "%s=%s".formatted(BaseTrait.KUBERNETES_NAME_LABEL,
projectName);
if (!ObjectHelper.isEmpty(namespace)) {
podLogs.namespace = namespace;
}
@@ -449,13 +449,13 @@ public class KubernetesRun extends KubernetesBaseCommand {
private void waitForRunningPod(String projectName) {
if (!quiet) {
String kubectlCmd = "kubectl get pod";
- kubectlCmd += " -l %s=%s".formatted(BaseTrait.INTEGRATION_LABEL,
projectName);
+ kubectlCmd += " -l
%s=%s".formatted(BaseTrait.KUBERNETES_NAME_LABEL, projectName);
if (!ObjectHelper.isEmpty(namespace)) {
kubectlCmd += " -n %s".formatted(namespace);
}
printer().println("Run: " + kubectlCmd);
}
- client(Pod.class).withLabel(BaseTrait.INTEGRATION_LABEL, projectName)
+ client(Pod.class).withLabel(BaseTrait.KUBERNETES_NAME_LABEL,
projectName)
.waitUntilCondition(it ->
"Running".equals(it.getStatus().getPhase()), 10, TimeUnit.MINUTES);
}
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogs.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogs.java
index c2b7bd0f0b9..cd6f65d7bf0 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogs.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogs.java
@@ -79,8 +79,7 @@ public class PodLogs extends KubernetesBaseCommand {
} else {
projectName =
KubernetesHelper.sanitize(FileUtil.onlyName(SourceScheme.onlyName(filePath)));
}
-
- label = "%s=%s".formatted(BaseTrait.INTEGRATION_LABEL,
projectName);
+ label = "%s=%s".formatted(BaseTrait.KUBERNETES_NAME_LABEL,
projectName);
}
String[] parts = label.split("=", 2);
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/BaseTrait.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/BaseTrait.java
index 96511f82d31..3e1aadf09de 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/BaseTrait.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/BaseTrait.java
@@ -19,7 +19,7 @@ package
org.apache.camel.dsl.jbang.core.commands.kubernetes.traits;
public abstract class BaseTrait implements Trait {
- public static final String INTEGRATION_LABEL =
"camel.apache.org/integration";
+ public static final String KUBERNETES_NAME_LABEL =
"app.kubernetes.io/name";
private final String id;
private final int order;
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ContainerTrait.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ContainerTrait.java
index 4369f8e8b97..2bb46fc1cca 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ContainerTrait.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ContainerTrait.java
@@ -81,7 +81,7 @@ public class ContainerTrait extends BaseTrait {
context.doWithDeployments(d -> d.editOrNewSpec()
.editOrNewTemplate()
.editOrNewMetadata()
- .addToLabels(INTEGRATION_LABEL, context.getName())
+ .addToLabels(KUBERNETES_NAME_LABEL, context.getName())
.endMetadata()
.editOrNewSpec()
.addToContainers(container.build())
@@ -92,7 +92,7 @@ public class ContainerTrait extends BaseTrait {
context.doWithCronJobs(j -> j.editOrNewSpec()
.editOrNewJobTemplate()
.editOrNewMetadata()
- .addToLabels(INTEGRATION_LABEL, context.getName())
+ .addToLabels(KUBERNETES_NAME_LABEL, context.getName())
.endMetadata()
.editOrNewSpec()
.editOrNewTemplate()
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/DeploymentTrait.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/DeploymentTrait.java
index cd87297b529..f705ed75960 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/DeploymentTrait.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/DeploymentTrait.java
@@ -17,7 +17,7 @@
package org.apache.camel.dsl.jbang.core.commands.kubernetes.traits;
-import java.util.Collections;
+import java.util.Map;
import io.fabric8.kubernetes.api.model.LabelSelectorBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
@@ -42,8 +42,7 @@ public class DeploymentTrait extends BaseTrait {
.endMetadata()
.withNewSpec()
.withSelector(new LabelSelectorBuilder()
- .withMatchLabels(
- Collections.singletonMap(INTEGRATION_LABEL,
context.getName()))
+ .withMatchLabels(Map.of(KUBERNETES_NAME_LABEL,
context.getName()))
.build())
.endSpec();
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 9472c62239c..2f66564bd8c 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
@@ -34,12 +34,12 @@ public class LabelTrait extends BaseTrait {
public void apply(Traits traitConfig, TraitContext context) {
context.doWithDeployments(
d -> d.editOrNewMetadata()
- .addToLabels(INTEGRATION_LABEL, context.getName())
+ .addToLabels(KUBERNETES_NAME_LABEL, context.getName())
.addToLabels(context.getLabels())
.endMetadata());
context.doWithServices(
s -> s.editOrNewMetadata()
- .addToLabels(INTEGRATION_LABEL, context.getName())
+ .addToLabels(KUBERNETES_NAME_LABEL, context.getName())
.addToLabels(context.getLabels())
.endMetadata());
}
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ServiceTrait.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ServiceTrait.java
index 7e534dabf48..d56c6e0ff0c 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ServiceTrait.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/ServiceTrait.java
@@ -17,7 +17,7 @@
package org.apache.camel.dsl.jbang.core.commands.kubernetes.traits;
-import java.util.Collections;
+import java.util.Map;
import java.util.Optional;
import io.fabric8.kubernetes.api.model.IntOrString;
@@ -68,7 +68,7 @@ public class ServiceTrait extends BaseTrait {
.endMetadata()
.withNewSpec()
.withType(serviceType)
-
.withSelector(Collections.singletonMap(BaseTrait.INTEGRATION_LABEL,
context.getName()))
+ .withSelector(Map.of(BaseTrait.KUBERNETES_NAME_LABEL,
context.getName()))
.addToPorts(new ServicePortBuilder()
.withName(Optional.ofNullable(containerTrait.getServicePortName())
.orElse(ContainerTrait.DEFAULT_CONTAINER_PORT_NAME))
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/knative/KnativeServiceTrait.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/knative/KnativeServiceTrait.java
index b8d190f47ae..70ee1523445 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/knative/KnativeServiceTrait.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/knative/KnativeServiceTrait.java
@@ -97,7 +97,7 @@ public class KnativeServiceTrait extends KnativeBaseTrait {
}
Map<String, String> serviceLabels = new HashMap<>();
- serviceLabels.put(BaseTrait.INTEGRATION_LABEL, context.getName());
+ serviceLabels.put(BaseTrait.KUBERNETES_NAME_LABEL, context.getName());
// Make sure the Eventing webhook will select the source resource, in
order to inject the sink information.
// This is necessary for Knative environments, that are configured
with SINK_BINDING_SELECTION_MODE=inclusion.
@@ -118,7 +118,7 @@ public class KnativeServiceTrait extends KnativeBaseTrait {
.withNewSpec()
.withNewTemplate()
.withNewMetadata()
- .addToLabels(BaseTrait.INTEGRATION_LABEL, context.getName())
+ .addToLabels(BaseTrait.KUBERNETES_NAME_LABEL,
context.getName())
.addToAnnotations(revisionAnnotations)
.endMetadata()
.endTemplate()
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java
index ce6dc58ca84..3a0abedc85c 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesCommandTest.java
@@ -41,8 +41,8 @@ class KubernetesCommandTest extends KubernetesBaseTest {
@Test
public void shouldPrintKubernetesManifest() {
- CamelJBangMain.run(createMain(), "kubernetes", "run",
"classpath:route.yaml", "--image-group", "camel-test", "--output",
- "yaml");
+ CamelJBangMain.run(createMain(), "kubernetes", "run",
"classpath:route.yaml",
+ "--image-group", "camel-test", "--output", "yaml");
List<HasMetadata> resources =
kubernetesClient.load(getKubernetesManifestAsStream(printer.getOutput())).items();
Assertions.assertEquals(2, resources.size());
@@ -53,12 +53,13 @@ class KubernetesCommandTest extends KubernetesBaseTest {
.findFirst()
.orElseThrow(() -> new RuntimeCamelException("Missing
deployment in Kubernetes manifest"));
+ var matchLabels = deployment.getSpec().getSelector().getMatchLabels();
Assertions.assertEquals("route", deployment.getMetadata().getName());
Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Assertions.assertEquals("route",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
+ Assertions.assertEquals("route",
deployment.getMetadata().getLabels().get(BaseTrait.KUBERNETES_NAME_LABEL));
Assertions.assertEquals("route",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getName());
- Assertions.assertEquals(3,
deployment.getSpec().getSelector().getMatchLabels().size());
- Assertions.assertEquals("route",
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
+ Assertions.assertEquals(2, matchLabels.size());
+ Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_NAME_LABEL));
Assertions.assertEquals("docker.io/camel-test/route:1.0-SNAPSHOT",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage());
Assertions.assertEquals("Always",
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesDeleteTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesDeleteTest.java
index 4a0be5c2cc9..47c22821092 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesDeleteTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesDeleteTest.java
@@ -34,7 +34,7 @@ class KubernetesDeleteTest extends KubernetesBaseTest {
kubernetesClient.apps().deployments().resource(new DeploymentBuilder()
.withNewMetadata()
.withName("route")
- .addToLabels(BaseTrait.INTEGRATION_LABEL, "route")
+ .addToLabels(BaseTrait.KUBERNETES_NAME_LABEL, "route")
.endMetadata()
.withNewSpec()
.withNewTemplate()
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportKnativeTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportKnativeTest.java
index 36282cf07b4..1a16154499b 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportKnativeTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportKnativeTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.dsl.jbang.core.commands.kubernetes;
import java.io.File;
import java.io.IOException;
+import java.util.Map;
import java.util.Properties;
import java.util.stream.Stream;
@@ -56,7 +57,8 @@ public class KubernetesExportKnativeTest extends
KubernetesExportBaseTest {
"knative-service.max-scale=10",
"knative-service.rollout-duration=60",
"knative-service.visibility=cluster-local" };
- command.doCall();
+ int exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertFalse(hasService(rt));
Assertions.assertTrue(hasKnativeService(rt));
@@ -64,27 +66,24 @@ public class KubernetesExportKnativeTest extends
KubernetesExportBaseTest {
io.fabric8.knative.serving.v1.Service service = getResource(rt,
io.fabric8.knative.serving.v1.Service.class)
.orElseThrow(() -> new RuntimeCamelException("Missing Knative
service in Kubernetes manifest"));
+ Map<String, String> labelsA = service.getMetadata().getLabels();
+ var labelsB =
service.getSpec().getTemplate().getMetadata().getLabels();
+ Map<String, String> annotations =
service.getSpec().getTemplate().getMetadata().getAnnotations();
Assertions.assertEquals("route-service",
service.getMetadata().getName());
- Assertions.assertEquals(3, service.getMetadata().getLabels().size());
- Assertions.assertEquals("route-service",
service.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("true",
service.getMetadata().getLabels().get("bindings.knative.dev/include"));
- Assertions.assertEquals("cluster-local",
service.getMetadata().getLabels().get("networking.knative.dev/visibility"));
+ Assertions.assertEquals(3, labelsA.size());
+ Assertions.assertEquals("route-service",
labelsA.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("true",
labelsA.get("bindings.knative.dev/include"));
+ Assertions.assertEquals("cluster-local",
labelsA.get("networking.knative.dev/visibility"));
Assertions.assertEquals(1,
service.getMetadata().getAnnotations().size());
Assertions.assertEquals("60",
service.getMetadata().getAnnotations().get("serving.knative.dev/rolloutDuration"));
- Assertions.assertEquals(1,
service.getSpec().getTemplate().getMetadata().getLabels().size());
- Assertions.assertEquals("route-service",
-
service.getSpec().getTemplate().getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals(5,
service.getSpec().getTemplate().getMetadata().getAnnotations().size());
- Assertions.assertEquals("cpu",
-
service.getSpec().getTemplate().getMetadata().getAnnotations().get("autoscaling.knative.dev/metric"));
- Assertions.assertEquals("hpa.autoscaling.knative.dev",
-
service.getSpec().getTemplate().getMetadata().getAnnotations().get("autoscaling.knative.dev/class"));
- Assertions.assertEquals("80",
-
service.getSpec().getTemplate().getMetadata().getAnnotations().get("autoscaling.knative.dev/target"));
- Assertions.assertEquals("1",
-
service.getSpec().getTemplate().getMetadata().getAnnotations().get("autoscaling.knative.dev/minScale"));
- Assertions.assertEquals("10",
-
service.getSpec().getTemplate().getMetadata().getAnnotations().get("autoscaling.knative.dev/maxScale"));
+ Assertions.assertEquals(1, labelsB.size());
+ Assertions.assertEquals("route-service",
labelsB.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals(5, annotations.size());
+ Assertions.assertEquals("cpu",
annotations.get("autoscaling.knative.dev/metric"));
+ Assertions.assertEquals("hpa.autoscaling.knative.dev",
annotations.get("autoscaling.knative.dev/class"));
+ Assertions.assertEquals("80",
annotations.get("autoscaling.knative.dev/target"));
+ Assertions.assertEquals("1",
annotations.get("autoscaling.knative.dev/minScale"));
+ Assertions.assertEquals("10",
annotations.get("autoscaling.knative.dev/maxScale"));
}
@ParameterizedTest
@@ -94,7 +93,8 @@ public class KubernetesExportKnativeTest extends
KubernetesExportBaseTest {
"--image-group=camel-test", "--runtime=" + rt.runtime());
command.traits = new String[] {
"knative.filters=source=my-source" };
- command.doCall();
+ int exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
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 89665bce127..0d0b6775516 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
@@ -22,7 +22,6 @@ import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
-import java.util.Map;
import java.util.Properties;
import java.util.stream.Stream;
@@ -58,8 +57,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
"--gav=examples:route:1.0.0", "--runtime=" + rt.runtime());
int exit = command.doCall();
-
Assertions.assertEquals(0, exit);
+
Model model = readMavenModel();
Assertions.assertEquals("examples", model.getGroupId());
Assertions.assertEquals("route", model.getArtifactId());
@@ -72,18 +71,18 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
"--image-registry=quay.io", "--image-group=camel-test",
"--runtime=" + rt.runtime());
int exit = command.doCall();
-
Assertions.assertEquals(0, exit);
+
Deployment deployment = getDeployment(rt);
+ var containers =
deployment.getSpec().getTemplate().getSpec().getContainers();
+ var labels = deployment.getMetadata().getLabels();
+ var matchLabels = deployment.getSpec().getSelector().getMatchLabels();
Assertions.assertEquals("route", deployment.getMetadata().getName());
- Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Assertions.assertEquals("route",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("route",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getName());
- Assertions.assertEquals(1,
deployment.getSpec().getSelector().getMatchLabels().size());
- Assertions.assertEquals("route",
-
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
-
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage());
+ Assertions.assertEquals(1, containers.size());
+ Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("route", containers.get(0).getName());
+ Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
containers.get(0).getImage());
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
@@ -97,18 +96,18 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
command.traits = new String[] {
"camel.properties=[foo=bar, bar=baz]" };
int exit = command.doCall();
-
Assertions.assertEquals(0, exit);
+
Deployment deployment = getDeployment(rt);
+ var labels = deployment.getMetadata().getLabels();
+ var matchLabels = deployment.getSpec().getSelector().getMatchLabels();
+ var containers =
deployment.getSpec().getTemplate().getSpec().getContainers();
Assertions.assertEquals("route", deployment.getMetadata().getName());
- Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Assertions.assertEquals("route",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("route",
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getName());
- Assertions.assertEquals(1,
deployment.getSpec().getSelector().getMatchLabels().size());
- Assertions.assertEquals("route",
-
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("camel-test/route:1.0-SNAPSHOT",
-
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage());
+ Assertions.assertEquals(1, containers.size());
+ Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("route", containers.get(0).getName());
+ Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("camel-test/route:1.0-SNAPSHOT",
containers.get(0).getImage());
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
@@ -125,7 +124,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
"--trait", "service.type=NodePort",
"--runtime=" + rt.runtime());
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
@@ -155,7 +155,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
KubernetesExport command = createCommand(new String[] {
"classpath:route-service.yaml" },
"--trait", "service.type=NodePort",
"--runtime=" + rt.runtime());
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
@@ -191,7 +192,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
"--trait",
"ingress.annotations=nginx.ingress.kubernetes.io/rewrite-target=/$2",
"--trait",
"ingress.annotations=nginx.ingress.kubernetes.io/use-regex=true",
"--runtime=" + rt.runtime());
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
@@ -235,7 +237,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
"--trait", "route.tls-certificate=" + certificate,
"--trait", "route.tls-key=" + key,
"--runtime=" + rt.runtime());
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertTrue(hasService(rt));
Assertions.assertFalse(hasKnativeService(rt));
@@ -274,7 +277,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
"container.request-memory=100Mi",
"container.limit-cpu=0.5",
"container.limit-memory=512Mi" };
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Assertions.assertTrue(hasService(rt));
@@ -316,7 +320,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
public void shouldAddVolumes(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" }, "--runtime=" + rt.runtime());
command.volumes = new String[] { "pvc-foo:/container/path/foo",
"pvc-bar:/container/path/bar" };
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("route", deployment.getMetadata().getName());
@@ -345,7 +350,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
public void shouldAddEnvVars(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" }, "--runtime=" + rt.runtime());
command.envVars = new String[] { "CAMEL_FOO=bar", "MY_ENV=foo" };
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("route", deployment.getMetadata().getName());
@@ -366,7 +372,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
public void shouldAddAnnotations(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" }, "--runtime=" + rt.runtime());
command.annotations = new String[] { "foo=bar" };
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("route", deployment.getMetadata().getName());
@@ -379,14 +386,15 @@ class KubernetesExportTest extends
KubernetesExportBaseTest {
public void shouldAddLabels(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
"--label=foo=bar", "--runtime=" + rt.runtime());
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
- Map<String, String> labels = deployment.getMetadata().getLabels();
+ var labels = deployment.getMetadata().getLabels();
Assertions.assertEquals("route", deployment.getMetadata().getName());
Assertions.assertEquals(3, labels.size());
Assertions.assertEquals("camel",
labels.get("app.kubernetes.io/runtime"));
- Assertions.assertEquals("route",
labels.get("camel.apache.org/integration"));
+ Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_NAME_LABEL));
Assertions.assertEquals("bar", labels.get("foo"));
}
@@ -395,7 +403,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
public void shouldAddConfigs(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" }, "--runtime=" + rt.runtime());
command.configs = new String[] { "secret:foo", "configmap:bar" };
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("route", deployment.getMetadata().getName());
@@ -421,7 +430,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
public void shouldAddResources(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" }, "--runtime=" + rt.runtime());
command.resources = new String[] { "configmap:foo/file.txt" };
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("route", deployment.getMetadata().getName());
@@ -442,7 +452,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
"--runtime=" + rt.runtime(),
"--open-api=configmap:openapi/spec.yaml");
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("route", deployment.getMetadata().getName());
@@ -462,7 +473,8 @@ class KubernetesExportTest extends KubernetesExportBaseTest
{
public void shouldUseImage(RuntimeType rt) throws Exception {
KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" }, "--runtime=" + rt.runtime());
command.image = "quay.io/camel/demo-app:1.0";
- command.doCall();
+ var exit = command.doCall();
+ Assertions.assertEquals(0, exit);
Deployment deployment = getDeployment(rt);
Assertions.assertEquals("demo-app",
deployment.getMetadata().getName());
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 51a860cee2a..04530d9b659 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
@@ -23,7 +23,6 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
-import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import org.apache.camel.RuntimeCamelException;
@@ -91,14 +90,16 @@ class KubernetesRunTest extends KubernetesBaseTest {
.findFirst()
.orElseThrow(() -> new RuntimeCamelException("Missing
deployment in Kubernetes manifest"));
+ var containers =
deployment.getSpec().getTemplate().getSpec().getContainers();
+ var labels = deployment.getMetadata().getLabels();
+ var matchLabels = deployment.getSpec().getSelector().getMatchLabels();
Assertions.assertEquals("route", deployment.getMetadata().getName());
- Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Container container =
deployment.getSpec().getTemplate().getSpec().getContainers().get(0);
- Assertions.assertEquals("route", container.getName());
- Assertions.assertEquals("route",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("route",
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
container.getImage());
- Assertions.assertEquals("IfNotPresent",
container.getImagePullPolicy());
+ Assertions.assertEquals(1, containers.size());
+ Assertions.assertEquals("route", containers.get(0).getName());
+ Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
containers.get(0).getImage());
+ Assertions.assertEquals("IfNotPresent",
containers.get(0).getImagePullPolicy());
}
@ParameterizedTest
@@ -132,14 +133,16 @@ class KubernetesRunTest extends KubernetesBaseTest {
.findFirst()
.orElseThrow(() -> new RuntimeCamelException("Missing
deployment in Kubernetes manifest"));
+ var labels = deployment.getMetadata().getLabels();
+ var matchLabels = deployment.getSpec().getSelector().getMatchLabels();
+ var containers =
deployment.getSpec().getTemplate().getSpec().getContainers();
Assertions.assertEquals("route", deployment.getMetadata().getName());
Assertions.assertEquals("custom",
deployment.getMetadata().getNamespace());
- Assertions.assertEquals(1,
deployment.getSpec().getTemplate().getSpec().getContainers().size());
- Container container =
deployment.getSpec().getTemplate().getSpec().getContainers().get(0);
- Assertions.assertEquals("route", container.getName());
- Assertions.assertEquals("route",
deployment.getMetadata().getLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("route",
deployment.getSpec().getSelector().getMatchLabels().get(BaseTrait.INTEGRATION_LABEL));
- Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
container.getImage());
+ Assertions.assertEquals(1, containers.size());
+ Assertions.assertEquals("route", containers.get(0).getName());
+ Assertions.assertEquals("route",
labels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("route",
matchLabels.get(BaseTrait.KUBERNETES_NAME_LABEL));
+ Assertions.assertEquals("quay.io/camel-test/route:1.0-SNAPSHOT",
containers.get(0).getImage());
}
private KubernetesRun createCommand(String[] files, String... args) {
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogsTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogsTest.java
index b6eeb3c97d9..d031c7d2430 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogsTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/PodLogsTest.java
@@ -17,7 +17,7 @@
package org.apache.camel.dsl.jbang.core.commands.kubernetes;
-import java.util.Collections;
+import java.util.Map;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
@@ -36,7 +36,7 @@ class PodLogsTest extends KubernetesBaseTest {
command.doCall();
Assertions.assertTrue(
- printer.getOutput().contains("Pod for label
camel.apache.org/integration=mickey-mouse not available"));
+ printer.getOutput().contains("Pod for label
app.kubernetes.io/name=mickey-mouse not available"));
}
@Test
@@ -44,7 +44,7 @@ class PodLogsTest extends KubernetesBaseTest {
Pod pod = new PodBuilder()
.withNewMetadata()
.withName("pod")
-
.withLabels(Collections.singletonMap(BaseTrait.INTEGRATION_LABEL, "routes"))
+ .withLabels(Map.of(BaseTrait.KUBERNETES_NAME_LABEL, "routes"))
.endMetadata()
.withNewStatus()
.withPhase("Running")