Chart: Render controller.ingressClassResource.parameters
natively. (#11108)
This commit is contained in:
parent
a00a1499a0
commit
112b9bb028
5 changed files with 99 additions and 13 deletions
|
@ -242,16 +242,6 @@ Check the ingress controller version tag is at most three versions behind the la
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
|
||||||
IngressClass parameters.
|
|
||||||
*/}}
|
|
||||||
{{- define "ingressClass.parameters" -}}
|
|
||||||
{{- if .Values.controller.ingressClassResource.parameters -}}
|
|
||||||
parameters:
|
|
||||||
{{ toYaml .Values.controller.ingressClassResource.parameters | indent 4}}
|
|
||||||
{{ end }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Extra modules.
|
Extra modules.
|
||||||
*/}}
|
*/}}
|
||||||
|
|
|
@ -9,11 +9,13 @@ metadata:
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
name: {{ .Values.controller.ingressClassResource.name }}
|
name: {{ .Values.controller.ingressClassResource.name }}
|
||||||
{{- if .Values.controller.ingressClassResource.default }}
|
{{- if .Values.controller.ingressClassResource.default }}
|
||||||
annotations:
|
annotations:
|
||||||
ingressclass.kubernetes.io/is-default-class: "true"
|
ingressclass.kubernetes.io/is-default-class: "true"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
controller: {{ .Values.controller.ingressClassResource.controllerValue }}
|
controller: {{ .Values.controller.ingressClassResource.controllerValue }}
|
||||||
{{ template "ingressClass.parameters" . }}
|
{{- with .Values.controller.ingressClassResource.parameters }}
|
||||||
|
parameters: {{ toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -33,6 +33,15 @@ tests:
|
||||||
path: spec.template.spec.containers[0].args
|
path: spec.template.spec.containers[0].args
|
||||||
content: --enable-metrics=false
|
content: --enable-metrics=false
|
||||||
|
|
||||||
|
- it: should create a DaemonSet with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.kind: DaemonSet
|
||||||
|
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
|
||||||
|
asserts:
|
||||||
|
- contains:
|
||||||
|
path: spec.template.spec.containers[0].args
|
||||||
|
content: --controller-class=k8s.io/ingress-nginx-internal
|
||||||
|
|
||||||
- it: should create a DaemonSet with resource limits if `controller.resources.limits` is set
|
- it: should create a DaemonSet with resource limits if `controller.resources.limits` is set
|
||||||
set:
|
set:
|
||||||
controller.kind: DaemonSet
|
controller.kind: DaemonSet
|
||||||
|
|
|
@ -59,6 +59,14 @@ tests:
|
||||||
path: spec.template.spec.containers[0].args
|
path: spec.template.spec.containers[0].args
|
||||||
content: --enable-metrics=false
|
content: --enable-metrics=false
|
||||||
|
|
||||||
|
- it: should create a Deployment with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
|
||||||
|
asserts:
|
||||||
|
- contains:
|
||||||
|
path: spec.template.spec.containers[0].args
|
||||||
|
content: --controller-class=k8s.io/ingress-nginx-internal
|
||||||
|
|
||||||
- it: should create a Deployment with resource limits if `controller.resources.limits` is set
|
- it: should create a Deployment with resource limits if `controller.resources.limits` is set
|
||||||
set:
|
set:
|
||||||
controller.resources.limits.cpu: 500m
|
controller.resources.limits.cpu: 500m
|
||||||
|
|
77
charts/ingress-nginx/tests/controller-ingressclass_test.yaml
Normal file
77
charts/ingress-nginx/tests/controller-ingressclass_test.yaml
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
suite: Controller > IngressClass
|
||||||
|
templates:
|
||||||
|
- controller-ingressclass.yaml
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- it: should create an IngressClass
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
|
||||||
|
- it: should create an IngressClass with name "nginx-internal" if `controller.ingressClassResource.name` is "nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.name: nginx-internal
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx-internal
|
||||||
|
|
||||||
|
- it: "should create an IngressClass with annotation `ingressclass.kubernetes.io/is-default-class: \"true\"` if `controller.ingressClassResource.default` is true"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.default: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
- equal:
|
||||||
|
path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"]
|
||||||
|
value: "true"
|
||||||
|
|
||||||
|
- 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
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
- equal:
|
||||||
|
path: spec.controller
|
||||||
|
value: k8s.io/ingress-nginx-internal
|
||||||
|
|
||||||
|
- it: should create an IngressClass with parameters if `controller.ingressClassResource.parameters` is set
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.parameters:
|
||||||
|
apiGroup: k8s.example.com
|
||||||
|
kind: IngressParameters
|
||||||
|
name: external-lb
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
- equal:
|
||||||
|
path: spec.parameters
|
||||||
|
value:
|
||||||
|
apiGroup: k8s.example.com
|
||||||
|
kind: IngressParameters
|
||||||
|
name: external-lb
|
Loading…
Reference in a new issue