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 <[email protected]>
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() {