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() {

Reply via email to