From 68b0a4a67dc118e5790289141acb07c35c177e87 Mon Sep 17 00:00:00 2001 From: Hordur Freyr Yngvason Date: Thu, 12 May 2022 22:09:53 -0400 Subject: [PATCH] fix: use kubernetes.io/ingress.class when present It is possible to have an up-to-date cluster, but an outdated ingress controller. This means that the API networking.k8s.io/v1/Ingress is available, but no valid ingressClassName exists in the cluster. See https://gitlab.com/gitlab-org/cluster-integration/auto-deploy-image/-/issues/206 --- assets/auto-deploy-app/templates/ingress.yaml | 13 +++++++++---- assets/auto-deploy-app/values.yaml | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/assets/auto-deploy-app/templates/ingress.yaml b/assets/auto-deploy-app/templates/ingress.yaml index c0c66b6..f14d438 100644 --- a/assets/auto-deploy-app/templates/ingress.yaml +++ b/assets/auto-deploy-app/templates/ingress.yaml @@ -12,8 +12,10 @@ metadata: labels: {{ include "sharedlabels" . | indent 4 }} annotations: -{{- if not (.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress") }} - kubernetes.io/ingress.class: {{ .Values.ingress.className | quote }} +{{- if not (or (.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress") + (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class")) +}} + kubernetes.io/ingress.class: {{ .Values.ingress.className | default "nginx" | quote }} {{- end }} {{- if .Values.ingress.annotations }} {{ toYaml .Values.ingress.annotations | indent 4 }} @@ -46,8 +48,11 @@ metadata: {{- end }} spec: -{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }} - ingressClassName: {{ .Values.ingress.className | quote }} +{{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress") + (or (hasKey .Values.ingress "className") + (not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class"))) +}} + ingressClassName: {{ .Values.ingress.className | default "nginx" | quote }} {{- end }} {{- if .Values.ingress.tls.enabled }} tls: diff --git a/assets/auto-deploy-app/values.yaml b/assets/auto-deploy-app/values.yaml index 2f4b01f..c23b959 100644 --- a/assets/auto-deploy-app/values.yaml +++ b/assets/auto-deploy-app/values.yaml @@ -80,7 +80,7 @@ ingress: acme: true secretName: "" useDefaultSecret: false - className: nginx + # className: nginx modSecurity: enabled: false secRuleEngine: "DetectionOnly" @@ -90,6 +90,7 @@ ingress: # action: "" canary: weight: + annotations: {} prometheus: metrics: false livenessProbe: -- GitLab