Skip to content

Commit 5806da4

Browse files
Gackodkostyrev
authored andcommitted
Chart: Render controller.ingressClassResource.parameters natively. (kubernetes#11108)
1 parent 6e9f6a3 commit 5806da4

File tree

5 files changed

+99
-13
lines changed

5 files changed

+99
-13
lines changed

charts/ingress-nginx/templates/_helpers.tpl

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,6 @@ Check the ingress controller version tag is at most three versions behind the la
242242
{{- end -}}
243243
{{- end -}}
244244

245-
{{/*
246-
IngressClass parameters.
247-
*/}}
248-
{{- define "ingressClass.parameters" -}}
249-
{{- if .Values.controller.ingressClassResource.parameters -}}
250-
parameters:
251-
{{ toYaml .Values.controller.ingressClassResource.parameters | indent 4}}
252-
{{ end }}
253-
{{- end -}}
254-
255245
{{/*
256246
Extra modules.
257247
*/}}

charts/ingress-nginx/templates/controller-ingressclass.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ metadata:
99
{{- toYaml . | nindent 4 }}
1010
{{- end }}
1111
name: {{ .Values.controller.ingressClassResource.name }}
12-
{{- if .Values.controller.ingressClassResource.default }}
12+
{{- if .Values.controller.ingressClassResource.default }}
1313
annotations:
1414
ingressclass.kubernetes.io/is-default-class: "true"
15-
{{- end }}
15+
{{- end }}
1616
spec:
1717
controller: {{ .Values.controller.ingressClassResource.controllerValue }}
18-
{{ template "ingressClass.parameters" . }}
18+
{{- with .Values.controller.ingressClassResource.parameters }}
19+
parameters: {{ toYaml . | nindent 4 }}
20+
{{- end }}
1921
{{- end }}

charts/ingress-nginx/tests/controller-daemonset_test.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ tests:
3333
path: spec.template.spec.containers[0].args
3434
content: --enable-metrics=false
3535

36+
- it: should create a DaemonSet with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
37+
set:
38+
controller.kind: DaemonSet
39+
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
40+
asserts:
41+
- contains:
42+
path: spec.template.spec.containers[0].args
43+
content: --controller-class=k8s.io/ingress-nginx-internal
44+
3645
- it: should create a DaemonSet with resource limits if `controller.resources.limits` is set
3746
set:
3847
controller.kind: DaemonSet

charts/ingress-nginx/tests/controller-deployment_test.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ tests:
5959
path: spec.template.spec.containers[0].args
6060
content: --enable-metrics=false
6161

62+
- it: should create a Deployment with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
63+
set:
64+
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
65+
asserts:
66+
- contains:
67+
path: spec.template.spec.containers[0].args
68+
content: --controller-class=k8s.io/ingress-nginx-internal
69+
6270
- it: should create a Deployment with resource limits if `controller.resources.limits` is set
6371
set:
6472
controller.resources.limits.cpu: 500m
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
suite: Controller > IngressClass
2+
templates:
3+
- controller-ingressclass.yaml
4+
5+
tests:
6+
- it: should create an IngressClass
7+
asserts:
8+
- hasDocuments:
9+
count: 1
10+
- isKind:
11+
of: IngressClass
12+
- equal:
13+
path: metadata.name
14+
value: nginx
15+
16+
- it: should create an IngressClass with name "nginx-internal" if `controller.ingressClassResource.name` is "nginx-internal"
17+
set:
18+
controller.ingressClassResource.name: nginx-internal
19+
asserts:
20+
- hasDocuments:
21+
count: 1
22+
- isKind:
23+
of: IngressClass
24+
- equal:
25+
path: metadata.name
26+
value: nginx-internal
27+
28+
- it: "should create an IngressClass with annotation `ingressclass.kubernetes.io/is-default-class: \"true\"` if `controller.ingressClassResource.default` is true"
29+
set:
30+
controller.ingressClassResource.default: true
31+
asserts:
32+
- hasDocuments:
33+
count: 1
34+
- isKind:
35+
of: IngressClass
36+
- equal:
37+
path: metadata.name
38+
value: nginx
39+
- equal:
40+
path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"]
41+
value: "true"
42+
43+
- it: should create an IngressClass with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
44+
set:
45+
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
46+
asserts:
47+
- hasDocuments:
48+
count: 1
49+
- isKind:
50+
of: IngressClass
51+
- equal:
52+
path: metadata.name
53+
value: nginx
54+
- equal:
55+
path: spec.controller
56+
value: k8s.io/ingress-nginx-internal
57+
58+
- it: should create an IngressClass with parameters if `controller.ingressClassResource.parameters` is set
59+
set:
60+
controller.ingressClassResource.parameters:
61+
apiGroup: k8s.example.com
62+
kind: IngressParameters
63+
name: external-lb
64+
asserts:
65+
- hasDocuments:
66+
count: 1
67+
- isKind:
68+
of: IngressClass
69+
- equal:
70+
path: metadata.name
71+
value: nginx
72+
- equal:
73+
path: spec.parameters
74+
value:
75+
apiGroup: k8s.example.com
76+
kind: IngressParameters
77+
name: external-lb

0 commit comments

Comments
 (0)