DRY improvements (#664)
### Description of the change Adding support for DRY principle (via use of the TPL function) to the PVC storage class and the ingress class ### Benefits It allows to reference a variable into another one to avoid duplicating them (or using YAML anchors). It is useful and valuable when including Gitea into an umbrella chart with multiple components and to have a single variable while the components variable only refer to that single one. Example 1 ``` global: persistence: storageClass: "storage-class" persistence: storageClass: "{{ .Values.global.persistence.storageClass }}" ``` This results in having `spec.storageClassName` equal to `storage-class` in the PVC object Example 2 ``` global: ingress: className: "ingress-class" ingress: className: "{{ .Values.global.ingress.className}}" ``` This results in having `spec.ingressClassName` equal to `ingress-class` in the Ingress object ### Possible drawbacks N/A ### Checklist - [X] Templating unittests are added Co-authored-by: 212597596 <cedric.henry@ge.com> Co-authored-by: pat-s <pat-s@noreply.gitea.com> Co-authored-by: justusbunsi <justusbunsi@noreply.gitea.com> Reviewed-on: gitea/helm-chart#664 Reviewed-by: pat-s <pat-s@noreply.gitea.com> Co-authored-by: Ceddaerrix <ceddaerrix@noreply.gitea.com> Co-committed-by: Ceddaerrix <ceddaerrix@noreply.gitea.com> This commit was merged in pull request #664.
This commit is contained in:
@@ -74,7 +74,7 @@ imagePullSecrets: | ||||
Storage Class | ||||
*/}} | ||||
{{- define "gitea.persistence.storageClass" -}} | ||||
{{- $storageClass := .Values.persistence.storageClass | default .Values.global.storageClass }} | ||||
{{- $storageClass := (tpl ( default "" .Values.persistence.storageClass) .) | default (tpl ( default "" .Values.global.storageClass) .) }} | ||||
{{- if $storageClass }} | ||||
storageClassName: {{ $storageClass | quote }} | ||||
{{- end }} | ||||
| ||||
@@ -21,7 +21,7 @@ metadata: | ||||
{{- end }} | ||||
spec: | ||||
{{- if .Values.ingress.className }} | ||||
ingressClassName: {{ .Values.ingress.className }} | ||||
ingressClassName: {{ tpl .Values.ingress.className . }} | ||||
{{- end }} | ||||
{{- if .Values.ingress.tls }} | ||||
tls: | ||||
| ||||
@@ -15,9 +15,33 @@ tests: | ||||
hosts: | ||||
- "{{ .Values.global.giteaHostName }}" | ||||
asserts: | ||||
- isKind: | ||||
of: Ingress | ||||
- equal: | ||||
path: spec.tls[0].hosts[0] | ||||
value: "gitea.example.com" | ||||
- equal: | ||||
path: spec.rules[0].host | ||||
value: "gitea.example.com" | ||||
- it: Ingress Class using TPL | ||||
set: | ||||
global.ingress.className: "ingress-class" | ||||
ingress.className: "{{ .Values.global.ingress.className }}" | ||||
ingress.enabled: true | ||||
ingress.hosts[0].host: "some-host" | ||||
ingress.tls: | ||||
- secretName: gitea-tls | ||||
hosts: | ||||
- "some-host" | ||||
asserts: | ||||
- isKind: | ||||
of: Ingress | ||||
- equal: | ||||
path: spec.tls[0].hosts[0] | ||||
value: "some-host" | ||||
- equal: | ||||
path: spec.rules[0].host | ||||
value: "some-host" | ||||
- equal: | ||||
path: spec.ingressClassName | ||||
value: "ingress-class" | ||||
| ||||
19 unittests/pvc/pvc-configuration.yaml Normal file
19
unittests/pvc/pvc-configuration.yaml Normal file @@ -0,0 +1,19 @@ | ||||
suite: PVC template | ||||
release: | ||||
name: gitea-unittests | ||||
namespace: testing | ||||
templates: | ||||
- templates/gitea/pvc.yaml | ||||
tests: | ||||
- it: Storage Class using TPL | ||||
set: | ||||
global.persistence.storageClass: "storage-class" | ||||
persistence.enabled: true | ||||
persistence.create: true | ||||
persistence.storageClass: "{{ .Values.global.persistence.storageClass }}" | ||||
asserts: | ||||
- isKind: | ||||
of: PersistentVolumeClaim | ||||
- equal: | ||||
path: spec.storageClassName | ||||
value: "storage-class" | ||||
Reference in New Issue
Block a user