DRY improvements (#664)
Adding support for DRY principle (via use of the TPL function) to the PVC storage class and the ingress class 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 N/A - [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: https://gitea.com/gitea/helm-chart/pulls/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> (cherry picked from commit b7b60dd51f11e998c17fc9be5fc20d6730b77100)
This commit is contained in:
parent
d000400926
commit
f1d25e0e0c
4 changed files with 45 additions and 2 deletions
|
@ -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'
|
Loading…
Reference in a new issue