From 90ef45852ca4bf0db53c508c098ff265f2f9fb03 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Mon, 3 Jun 2024 12:12:58 +0200 Subject: [PATCH] Chart: Fix `IngressClass` annotations. (#11416) --- .../controller-ingressclass-aliases.yaml | 3 +++ .../templates/controller-ingressclass.yaml | 4 +++- .../controller-ingressclass-aliases_test.yaml | 18 ++++++++++++++++++ .../tests/controller-ingressclass_test.yaml | 16 ++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml b/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml index b4b20690e..ffe22310c 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml @@ -11,6 +11,9 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ . }} + {{- if $.Values.controller.ingressClassResource.annotations }} + annotations: {{ toYaml $.Values.controller.ingressClassResource.annotations | nindent 4 }} + {{- end }} spec: controller: {{ $.Values.controller.ingressClassResource.controllerValue }} {{- with $.Values.controller.ingressClassResource.parameters }} diff --git a/charts/ingress-nginx/templates/controller-ingressclass.yaml b/charts/ingress-nginx/templates/controller-ingressclass.yaml index 18cace48c..98479a529 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass.yaml @@ -9,13 +9,15 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ .Values.controller.ingressClassResource.name }} + {{- if or .Values.controller.ingressClassResource.default .Values.controller.ingressClassResource.annotations }} annotations: {{- if .Values.controller.ingressClassResource.default }} ingressclass.kubernetes.io/is-default-class: "true" {{- end }} {{- if .Values.controller.ingressClassResource.annotations }} - {{- toYaml .Values.controller.ingressClassResource.annotations | nindent 4 }} + {{- toYaml .Values.controller.ingressClassResource.annotations | nindent 4 }} {{- end }} + {{- end }} spec: controller: {{ .Values.controller.ingressClassResource.controllerValue }} {{- with .Values.controller.ingressClassResource.parameters }} diff --git a/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml b/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml index ef0780d9c..9a4a576b7 100644 --- a/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml +++ b/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml @@ -37,6 +37,24 @@ tests: - notExists: path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"] + - it: should create an IngressClass alias with annotations if `controller.ingressClassResource.annotations` is set + set: + controller.ingressClassResource.aliases: + - nginx-alias + controller.ingressClassResource.annotations: + my-fancy-annotation: has-a-value + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-alias + - equal: + path: metadata.annotations.my-fancy-annotation + value: has-a-value + - it: should create an IngressClass alias with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" set: controller.ingressClassResource.aliases: diff --git a/charts/ingress-nginx/tests/controller-ingressclass_test.yaml b/charts/ingress-nginx/tests/controller-ingressclass_test.yaml index f766f922e..b3384af32 100644 --- a/charts/ingress-nginx/tests/controller-ingressclass_test.yaml +++ b/charts/ingress-nginx/tests/controller-ingressclass_test.yaml @@ -40,6 +40,22 @@ tests: path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"] value: "true" + - it: should create an IngressClass with annotations if `controller.ingressClassResource.annotations` is set + set: + controller.ingressClassResource.annotations: + my-fancy-annotation: has-a-value + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx + - equal: + path: metadata.annotations.my-fancy-annotation + value: has-a-value + - it: should create an IngressClass with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" set: controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal