diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl index 1b7cf3b..31e99bf 100644 --- a/templates/_helpers.tpl +++ b/templates/_helpers.tpl @@ -256,7 +256,7 @@ https {{- end }} {{- $_ := set $inlines "_generals_" (join "\n" $generals) -}} - {{- toYaml $inlines -}} + {{- tpl (toYaml $inlines) $ -}} {{- end -}} {{- define "gitea.inline_configuration.init" -}} diff --git a/templates/gitea/deployment.yaml b/templates/gitea/deployment.yaml index 3d0c2ca..c6b3e10 100644 --- a/templates/gitea/deployment.yaml +++ b/templates/gitea/deployment.yaml @@ -115,7 +115,7 @@ spec: {{- toYaml .Values.deployment.env | nindent 12 }} {{- end }} {{- if .Values.gitea.additionalConfigFromEnvs }} - {{- toYaml .Values.gitea.additionalConfigFromEnvs | nindent 12 }} + {{- tpl (toYaml .Values.gitea.additionalConfigFromEnvs) $ | nindent 12 }} {{- end }} volumeMounts: - name: config diff --git a/unittests/helm/deployment/deployment-additional-config.yaml b/unittests/helm/deployment/deployment-additional-config.yaml new file mode 100644 index 0000000..fdcf056 --- /dev/null +++ b/unittests/helm/deployment/deployment-additional-config.yaml @@ -0,0 +1,150 @@ +suite: deployment template +release: + name: gitea-unittests + namespace: testing +templates: + - templates/gitea/deployment.yaml + - templates/gitea/config.yaml +tests: + - it: Renders a deployment + template: templates/gitea/deployment.yaml + asserts: + - hasDocuments: + count: 1 + - containsDocument: + kind: Deployment + apiVersion: apps/v1 + name: gitea-unittests + - it: Deployment with empty additionalConfigFromEnvs + template: templates/gitea/deployment.yaml + set: + gitea.additionalConfigFromEnvs: [] + asserts: + - hasDocuments: + count: 1 + - exists: + path: spec.template.spec.initContainers[1].env + - lengthEqual: + path: spec.template.spec.initContainers[1].env + count: 6 + - isSubset: + path: spec.template.spec.initContainers[1] + content: + env: + - name: GITEA_APP_INI + value: /data/gitea/conf/app.ini + - name: GITEA_CUSTOM + value: /data/gitea + - name: GITEA_WORK_DIR + value: /data + - name: GITEA_TEMP + value: /tmp/gitea + - name: TMP_EXISTING_ENVS_FILE + value: /tmp/existing-envs + - name: ENV_TO_INI_MOUNT_POINT + value: /env-to-ini-mounts + - it: Deployment with standard additionalConfigFromEnvs + template: templates/gitea/deployment.yaml + set: + gitea.additionalConfigFromEnvs: [{name: GITEA_database_HOST, value: my-db:123}, {name: GITEA_database_USER, value: my-user}] + asserts: + - hasDocuments: + count: 1 + - exists: + path: spec.template.spec.initContainers[1].env + - lengthEqual: + path: spec.template.spec.initContainers[1].env + count: 8 + - isSubset: + path: spec.template.spec.initContainers[1] + content: + env: + - name: GITEA_APP_INI + value: /data/gitea/conf/app.ini + - name: GITEA_CUSTOM + value: /data/gitea + - name: GITEA_WORK_DIR + value: /data + - name: GITEA_TEMP + value: /tmp/gitea + - name: TMP_EXISTING_ENVS_FILE + value: /tmp/existing-envs + - name: ENV_TO_INI_MOUNT_POINT + value: /env-to-ini-mounts + - name: GITEA_database_HOST + value: my-db:123 + - name: GITEA_database_USER + value: my-user + - it: Deployment with templated additionalConfigFromEnvs + template: templates/gitea/deployment.yaml + set: + gitea.misc.host: my-db-host:321 + gitea.misc.user: my-db-user + gitea.additionalConfigFromEnvs: [{name: GITEA_database_HOST, value: "{{ .Values.gitea.misc.host }}"}, {name: GITEA_database_USER, value: "{{ .Values.gitea.misc.user }}"}] + asserts: + - hasDocuments: + count: 1 + - exists: + path: spec.template.spec.initContainers[1].env + - lengthEqual: + path: spec.template.spec.initContainers[1].env + count: 8 + - isSubset: + path: spec.template.spec.initContainers[1] + content: + env: + - name: GITEA_APP_INI + value: /data/gitea/conf/app.ini + - name: GITEA_CUSTOM + value: /data/gitea + - name: GITEA_WORK_DIR + value: /data + - name: GITEA_TEMP + value: /tmp/gitea + - name: TMP_EXISTING_ENVS_FILE + value: /tmp/existing-envs + - name: ENV_TO_INI_MOUNT_POINT + value: /env-to-ini-mounts + - name: GITEA_database_HOST + value: my-db-host:321 + - name: GITEA_database_USER + value: my-db-user + - it: Deployment with additionalConfigFromEnvs templated secret name + template: templates/gitea/deployment.yaml + set: + gitea.misc.existingSecret: my-db-secret + gitea.additionalConfigFromEnvs[0]: + name: GITEA_database_HOST + valueFrom: + secretKeyRef: + name: "{{ .Values.gitea.misc.existingSecret }}" + key: password + asserts: + - hasDocuments: + count: 1 + - exists: + path: spec.template.spec.initContainers[1].env + - lengthEqual: + path: spec.template.spec.initContainers[1].env + count: 7 + - isSubset: + path: spec.template.spec.initContainers[1] + content: + env: + - name: GITEA_APP_INI + value: /data/gitea/conf/app.ini + - name: GITEA_CUSTOM + value: /data/gitea + - name: GITEA_WORK_DIR + value: /data + - name: GITEA_TEMP + value: /tmp/gitea + - name: TMP_EXISTING_ENVS_FILE + value: /tmp/existing-envs + - name: ENV_TO_INI_MOUNT_POINT + value: /env-to-ini-mounts + - name: GITEA_database_HOST + valueFrom: + secretKeyRef: + name: "my-db-secret" + key: password