This is an automated email from the ASF dual-hosted git repository. tdiesler 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 7724c0e7ddd CAMEL-21911: camel-bang: kubernetes add support for ingress class 7724c0e7ddd is described below commit 7724c0e7ddddc3d68a838ac0e8d6076d2a68bf35 Author: Thomas Diesler <tdies...@redhat.com> AuthorDate: Fri Apr 11 15:25:16 2025 +0200 CAMEL-21911: camel-bang: kubernetes add support for ingress class --- .../commands/kubernetes/traits/IngressTrait.java | 4 +-- .../commands/kubernetes/traits/model/Ingress.java | 38 ++++++++++++---------- .../kubernetes/traits/model/IngressBuilder.java | 7 ++++ .../commands/kubernetes/traits/model/Traits.java | 36 +++++++------------- 4 files changed, 42 insertions(+), 43 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/IngressTrait.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/IngressTrait.java index b09f591ce30..e1eb76f4f20 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/IngressTrait.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/IngressTrait.java @@ -36,9 +36,9 @@ public class IngressTrait extends BaseTrait { public static final int IngressTrait = 2400; - public static final String INGRESS_CLASS_NAME = "nginx"; public static final String DEFAULT_INGRESS_HOST = ""; public static final String DEFAULT_INGRESS_PATH = "/"; + public static final String DEFAULT_INGRESS_CLASS_NAME = "nginx"; public static final Ingress.PathType DEFAULT_INGRESS_PATH_TYPE = Ingress.PathType.PREFIX; public IngressTrait() { @@ -95,7 +95,7 @@ public class IngressTrait extends BaseTrait { ingressBuilder .withNewSpec() - .withIngressClassName(INGRESS_CLASS_NAME) + .withIngressClassName(Optional.ofNullable(ingressTrait.getIngressClass()).orElse(DEFAULT_INGRESS_CLASS_NAME)) .withRules(rule) .endSpec(); diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Ingress.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Ingress.java index 9df60b485d5..8df7b563fb1 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Ingress.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Ingress.java @@ -30,52 +30,56 @@ import com.fasterxml.jackson.annotation.Nulls; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({ - "annotations", "auto", "enabled", "host", "path", "pathType", "tlsHosts", "tlsSecretName" }) + "ingressClass", "annotations", "auto", "enabled", "host", "path", "pathType", "tlsHosts", "tlsSecretName" }) public class Ingress { + @JsonProperty("ingressClass") + @JsonPropertyDescription("To configure the ingress class (default to `nginx`).") + @JsonSetter(nulls = Nulls.SKIP) + private String ingressClass; @JsonProperty("annotations") @JsonPropertyDescription("The annotations added to the ingress. This can be used to set controller specific annotations, e.g., when using the NGINX Ingress controller: See https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Map<String, String> annotations; @JsonProperty("auto") @JsonPropertyDescription("To automatically add an ingress whenever the camel route uses an HTTP endpoint consumer.") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Boolean auto; @JsonProperty("enabled") @JsonPropertyDescription("Can be used to enable or disable a trait.") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Boolean enabled; @JsonProperty("host") @JsonPropertyDescription("To configure the host exposed by the ingress.") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private String host; @JsonProperty("path") @JsonPropertyDescription("To configure the path exposed by the ingress (default `/`).") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private String path; @JsonProperty("pathType") @JsonPropertyDescription("To configure the path type exposed by the ingress. One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`).") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private PathType pathType; @JsonProperty("tlsHosts") @JsonPropertyDescription("To configure tls hosts") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private List<String> tlsHosts; @JsonProperty("tlsSecretName") @JsonPropertyDescription("To configure tls secret name") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private String tlsSecretName; public Ingress() { } + public String getIngressClass() { + return ingressClass; + } + + public void setIngressClass(String ingressClass) { + this.ingressClass = ingressClass; + } + public Map<String, String> getAnnotations() { return this.annotations; } diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/IngressBuilder.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/IngressBuilder.java index 1176ec06585..a46040d005a 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/IngressBuilder.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/IngressBuilder.java @@ -28,6 +28,7 @@ public final class IngressBuilder { private Ingress.PathType pathType; private List<String> tlsHosts; private String tlsSecretName; + private String ingressClass; private IngressBuilder() { } @@ -76,6 +77,11 @@ public final class IngressBuilder { return this; } + public IngressBuilder withIngressClass(String ingressClass) { + this.ingressClass = ingressClass; + return this; + } + public Ingress build() { Ingress ingress = new Ingress(); ingress.setAnnotations(annotations); @@ -86,6 +92,7 @@ public final class IngressBuilder { ingress.setPathType(pathType); ingress.setTlsHosts(tlsHosts); ingress.setTlsSecretName(tlsSecretName); + ingress.setIngressClass(ingressClass); return ingress; } } diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Traits.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Traits.java index 608db798cb1..88e15c7f51e 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Traits.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/traits/model/Traits.java @@ -34,73 +34,61 @@ public class Traits { @JsonProperty("addons") @JsonPropertyDescription("The extension point with addon traits") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Map<String, Addons> addons; @JsonProperty("camel") @JsonPropertyDescription("The configuration of Camel trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Camel camel; @JsonProperty("container") @JsonPropertyDescription("The configuration of Container trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Container container; @JsonProperty("environment") @JsonPropertyDescription("The configuration of Environment trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Environment environment; @JsonProperty("ingress") @JsonPropertyDescription("The configuration of Ingress trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Ingress ingress; @JsonProperty("knative") @JsonPropertyDescription("The configuration of Knative trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Knative knative; @JsonProperty("knative-service") @JsonPropertyDescription("The configuration of Knative Service trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private KnativeService knativeService; @JsonProperty("mount") @JsonPropertyDescription("The configuration of Mount trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Mount mount; @JsonProperty("openapi") @JsonPropertyDescription("The configuration of OpenAPI trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Openapi openapi; @JsonProperty("route") @JsonPropertyDescription("The configuration of Route trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Route route; @JsonProperty("service") @JsonPropertyDescription("The configuration of Service trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private Service service; @JsonProperty("service-binding") @JsonPropertyDescription("The configuration of Service Binding trait") - @JsonSetter( - nulls = Nulls.SKIP) + @JsonSetter(nulls = Nulls.SKIP) private ServiceBinding serviceBinding; public Map<String, Addons> getAddons() {