You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by zh...@apache.org on 2022/09/30 02:03:17 UTC

[apisix-helm-chart] branch master updated: feat: Customizable ingressClassName for gateway (#345)

This is an automated email from the ASF dual-hosted git repository.

zhangjintao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-helm-chart.git


The following commit(s) were added to refs/heads/master by this push:
     new 0198cab  feat: Customizable ingressClassName for gateway (#345)
0198cab is described below

commit 0198cabdb43d185a8d07a75c391703bebac4b4ee
Author: Ɓukasz Biegaj <lu...@4499.eu>
AuthorDate: Fri Sep 30 04:03:10 2022 +0200

    feat: Customizable ingressClassName for gateway (#345)
    
    Co-authored-by: Alex Zhang <to...@apache.org>
    Co-authored-by: Jintao Zhang <zh...@gmail.com>
---
 charts/apisix/README.md              | 2 ++
 charts/apisix/templates/ingress.yaml | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/charts/apisix/README.md b/charts/apisix/README.md
index 8a0a0b3..41a0ae7 100644
--- a/charts/apisix/README.md
+++ b/charts/apisix/README.md
@@ -96,6 +96,8 @@ Apache APISIX service parameters, this determines how users can access itself.
 | `gateway.tls.sslProtocols`    |   TLS protocols allowed to use.  | `"TLSv1.2 TLSv1.3"`       |
 | `gateway.stream`                | Apache APISIX service settings for stream                                                                                                                                           |            |
 | `gateway.ingress`               | Using ingress access Apache APISIX service                                                                                                                                          |            |
+| `gateway.ingress.annotations`   | Ingress annotations                                                                                                                                                                 | `[]`       |
+| `gateway.ingress.className`     | `ingressClassName` replaces `annotations kubernetes.io/ingress.class`, required Kubernetes `>=1.18`                                                                                   |            |
 
 ### admin parameters
 
diff --git a/charts/apisix/templates/ingress.yaml b/charts/apisix/templates/ingress.yaml
index 1158f88..5cd55de 100644
--- a/charts/apisix/templates/ingress.yaml
+++ b/charts/apisix/templates/ingress.yaml
@@ -17,6 +17,11 @@
 {{- if (and .Values.apisix.enabled .Values.gateway.ingress.enabled) -}}
 {{- $fullName := include "apisix.fullname" . -}}
 {{- $svcPort := .Values.gateway.http.servicePort -}}
+{{- if and .Values.gateway.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
+  {{- if not (hasKey .Values.gateway.ingress.annotations "kubernetes.io/ingress.class") }}
+  {{- $_ := set .Values.gateway.ingress.annotations "kubernetes.io/ingress.class" .Values.gateway.ingress.className}}
+  {{- end }}
+{{- end }}
 {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.Version }}
 apiVersion: networking.k8s.io/v1
 {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.Version }}
@@ -34,6 +39,9 @@ metadata:
     {{- toYaml . | nindent 4 }}
   {{- end }}
 spec:
+  {{- if and .Values.gateway.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
+  ingressClassName: {{ .Values.gateway.ingress.className }}
+  {{- end }}
   {{- if .Values.gateway.ingress.tls }}
   tls:
     {{- range .Values.gateway.ingress.tls }}