This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-4.8.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.8.x by this push:
new dd0644ab57e [CAMEL-21345] Invalid manifest with jbang camel k8s
--cluster-type openshift (#15944)
dd0644ab57e is described below
commit dd0644ab57ea5a5f048fc67f66275eb7809d42a3
Author: Thomas Diesler <[email protected]>
AuthorDate: Mon Oct 14 15:42:53 2024 +0200
[CAMEL-21345] Invalid manifest with jbang camel k8s --cluster-type
openshift (#15944)
---
.../core/commands/kubernetes/KubernetesExport.java | 5 +++--
.../core/commands/kubernetes/traits/TraitHelper.java | 17 +++++++++++------
2 files changed, 14 insertions(+), 8 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 45e654d3a26..87888b25d3e 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
@@ -275,7 +275,8 @@ public class KubernetesExport extends Export {
Container container = traitsSpec.getContainer();
-
buildProperties.add("%s.kubernetes.image-name=%s".formatted(propPrefix,
container.getImage()));
+ var resolvedImageName =
TraitHelper.getResolvedImageName(resolvedImageGroup, projectName, getVersion());
+
buildProperties.add("%s.kubernetes.image-name=%s".formatted(propPrefix,
resolvedImageName));
buildProperties.add("%s.kubernetes.ports.%s.container-port=%d".formatted(propPrefix,
Optional.ofNullable(container.getPortName()).orElse(ContainerTrait.DEFAULT_CONTAINER_PORT_NAME),
Optional.ofNullable(container.getPort()).map(Long::intValue).orElse(ContainerTrait.DEFAULT_CONTAINER_PORT)));
@@ -356,7 +357,7 @@ public class KubernetesExport extends Export {
var kubeFragments =
context.buildItems().stream().map(KubernetesHelper::toJsonMap).toList();
// Quarkus: dump joined fragments to kubernetes.yml
- if (runtime == RuntimeType.quarkus) {
+ if (runtime == RuntimeType.quarkus &&
!ClusterType.OPENSHIFT.isEqualTo(clusterType)) {
var kubeManifest =
kubeFragments.stream().map(KubernetesHelper::dumpYaml).collect(Collectors.joining("---\n"));
safeCopy(new
ByteArrayInputStream(kubeManifest.getBytes(StandardCharsets.UTF_8)),
KubernetesHelper.getKubernetesManifest(clusterType,
exportDir + "/src/main/kubernetes"));
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitHelper.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitHelper.java
index 1da8e22779b..ce556ad214d 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitHelper.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/TraitHelper.java
@@ -304,12 +304,8 @@ public final class TraitHelper {
registryPrefix = imageRegistry + "/";
}
- imageGroup = Optional.ofNullable(imageGroup).orElse("");
- if (!imageGroup.isEmpty()) {
- containerTrait.setImage("%s%s/%s:%s".formatted(registryPrefix,
imageGroup, imageName, version));
- } else {
- containerTrait.setImage("%s%s:%s".formatted(registryPrefix,
imageName, version));
- }
+ var resolvedImageName = getResolvedImageName(imageGroup,
imageName, version);
+ containerTrait.setImage("%s%s".formatted(registryPrefix,
resolvedImageName));
// Plain export command always exposes a health endpoint on 8080.
// Skip this, when we decide that the health endpoint can be
disabled.
@@ -322,6 +318,15 @@ public final class TraitHelper {
}
}
+ public static String getResolvedImageName(String imageGroup, String
imageName, String version) {
+ imageGroup = Optional.ofNullable(imageGroup).orElse("");
+ if (!imageGroup.isEmpty()) {
+ return "%s/%s:%s".formatted(imageGroup, imageName, version);
+ } else {
+ return "%s:%s".formatted(imageName, version);
+ }
+ }
+
/**
* Inspect sources in context to retrieve routes that expose a Http
service as an endpoint.
*