Skip to content

Commit 64b8527

Browse files
authored
Merge pull request #559 from element-hq/bbz/no-env-overwriting
`extraEnv` consistency
2 parents ad686c1 + e74949d commit 64b8527

31 files changed

+243
-222
lines changed

charts/matrix-stack/source/haproxy.yaml.j2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ replicas: 1
1111
{{- sub_schema_values.labels() }}
1212
{{- sub_schema_values.workloadAnnotations() }}
1313
{{- sub_schema_values.containersSecurityContext() }}
14+
{{- sub_schema_values.extraEnv() }}
1415
{{- sub_schema_values.nodeSelector() }}
1516
{{- sub_schema_values.podSecurityContext(user_id='10001', group_id='10001') }}
1617
{{- sub_schema_values.resources(requests_memory='100Mi', requests_cpu='100m', limits_memory='200Mi') }}

charts/matrix-stack/source/matrix-rtc.yaml.j2

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@ enabled: true
1717
{#- We set `initSecret=false` because we are describing the mechanism in the comment parameter #}
1818
{{- sub_schema_values.credential("The secret for the LiveKit SFU.\n## This is required if `sfu.enabled` and `keysYaml` is not used. It will be generated by the `initSecrets` job if it is empty", "secret", initIfAbsent=False, commented=True) | indent(2) }}
1919

20-
{{- sub_schema_values.ingress() -}}
21-
{{- sub_schema_values.extraEnv() }}
22-
2320
replicas: 1
21+
{{- sub_schema_values.ingress() }}
2422
{{- sub_schema_values.image(registry='ghcr.io', repository='element-hq/lk-jwt-service', tag='0.2.3') }}
2523
{{- sub_schema_values.labels() }}
2624
{{- sub_schema_values.workloadAnnotations() }}
2725
{{- sub_schema_values.containersSecurityContext() }}
26+
{{- sub_schema_values.extraEnv() }}
2827
{{- sub_schema_values.nodeSelector() }}
2928
{{- sub_schema_values.podSecurityContext(user_id='10033', group_id='10033') }}
3029
{{- sub_schema_values.resources(requests_memory='20Mi', requests_cpu='50m', limits_memory='20Mi') }}

charts/matrix-stack/source/matrixAuthenticationService.yaml.j2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ syn2mas:
6868
{{- sub_schema_values.podSecurityContext(user_id='10005', group_id='10005') | indent(2) -}}
6969
{{- sub_schema_values.resources(requests_memory='50Mi', requests_cpu='50m', limits_memory='350Mi') | indent(2) -}}
7070
{{- sub_schema_values.serviceAccount() | indent(2) -}}
71+
{{- sub_schema_values.extraEnv() | indent(2) -}}
7172
{{- sub_schema_values.tolerations() | indent(2) }}
7273

7374
## Runs the syn2mas process in dryRun mode.

charts/matrix-stack/source/postgres.yaml.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ enabled: true
88
postgresExporter:
99
{{- sub_schema_values.image(registry='docker.io', repository='prometheuscommunity/postgres-exporter', tag='v0.17.0') | indent(2) }}
1010
{{- sub_schema_values.resources(requests_memory='10Mi', requests_cpu='10m', limits_memory='500Mi')| indent(2) }}
11-
{{- sub_schema_values.containersSecurityContext()| indent(2) }}
11+
{{- sub_schema_values.containersSecurityContext() | indent(2) }}
12+
{{- sub_schema_values.extraEnv() | indent(2) }}
1213
{{- sub_schema_values.probe("liveness", periodSeconds=6, timeoutSeconds=2) | indent(2) }}
1314
{{- sub_schema_values.probe("readiness", periodSeconds=2, successThreshold=2, timeoutSeconds=2) | indent(2) }}
1415
{{- sub_schema_values.probe("startup", failureThreshold=20, periodSeconds=2) | indent(2) }}

charts/matrix-stack/templates/deployment-markers/_helpers.tpl

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,11 @@ app.kubernetes.io/version: {{ include "element-io.ess-library.labels.makeSafe" $
7777
{{- end }}
7878
{{- end }}
7979

80-
{{- define "element-io.deployment-markers.env" }}
80+
{{- define "element-io.deployment-markers.overrideEnv" }}
8181
{{- $root := .root -}}
82-
{{- with required "element-io.deployment-markers.env missing context" .context -}}
83-
{{- $resultEnv := dict -}}
84-
{{- range $envEntry := .extraEnv -}}
85-
{{- $_ := set $resultEnv $envEntry.name $envEntry.value -}}
86-
{{- end -}}
87-
{{- $overrideEnv := dict "NAMESPACE" $root.Release.Namespace
88-
-}}
89-
{{- $resultEnv := mustMergeOverwrite $resultEnv $overrideEnv -}}
90-
{{- range $key, $value := $resultEnv }}
91-
- name: {{ $key | quote }}
92-
value: {{ $value | quote }}
93-
{{- end -}}
82+
{{- with required "element-io.deployment-markers.overrideEnv missing context" .context -}}
83+
env:
84+
- name: "NAMESPACE"
85+
value: {{ $root.Release.Namespace | quote }}
9486
{{- end -}}
9587
{{- end -}}

charts/matrix-stack/templates/deployment-markers/job.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ spec:
5757
resources:
5858
{{- toYaml . | nindent 10 }}
5959
{{- end }}
60-
env:
61-
{{- include "element-io.deployment-markers.env" (dict "root" $ "context" .) | nindent 8 }}
60+
{{- include "element-io.ess-library.pods.env" (dict "root" $ "context" (dict "componentValues" . "componentName" "deployment-markers")) | nindent 8 }}
6261
command:
6362
- "/matrix-tools"
6463
- "deployment-markers"

charts/matrix-stack/templates/element-web/_helpers.tpl

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,18 @@ app.kubernetes.io/version: {{ include "element-io.ess-library.labels.makeSafe" .
2626
{{- end }}
2727
{{- end }}
2828

29-
{{- define "element-io.element-web.env" -}}
29+
{{- define "element-io.element-web.overrideEnv" -}}
3030
{{- $root := .root -}}
31-
{{- with required "element-io.element-web.env missing context" .context -}}
32-
{{- $resultEnv := dict -}}
31+
{{- with required "element-io.element-web.overrideEnv missing context" .context -}}
3332
{{- /*
3433
https://github.com/nginxinc/docker-nginx/blob/1.26.1/entrypoint/20-envsubst-on-templates.sh#L31-L45
3534
If pods run with a GID of 0 this makes $output_dir to appear writable to sh, however
3635
due to running with a read-only FS the actual writing later fails. We short circuit this by using an
3736
invalid template directory and so templating as a whole is skipped by the script
3837
*/ -}}
39-
{{- $_ := set $resultEnv "NGINX_ENVSUBST_TEMPLATE_DIR" "/non-existant-so-that-this-works-with-read-only-root-filesystem" -}}
40-
{{- range $envEntry := .extraEnv -}}
41-
{{- $_ := set $resultEnv $envEntry.name $envEntry.value -}}
42-
{{- end -}}
43-
{{- range $key, $value := $resultEnv }}
44-
- name: {{ $key | quote }}
45-
value: {{ $value | quote }}
46-
{{- end -}}
38+
env:
39+
- name: "NGINX_ENVSUBST_TEMPLATE_DIR"
40+
value: "/non-existant-so-that-this-works-with-read-only-root-filesystem"
4741
{{- end -}}
4842
{{- end -}}
4943

charts/matrix-stack/templates/element-web/deployment.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ spec:
4343
imagePullPolicy: {{ .pullPolicy | default "Always" }}
4444
{{- end }}
4545
{{- end }}
46-
env:
47-
{{- include "element-io.element-web.env" (dict "root" $ "context" .) | nindent 10 }}
46+
{{- include "element-io.ess-library.pods.env" (dict "root" $ "context" (dict "componentValues" . "componentName" "element-web")) | nindent 8 }}
4847
{{- with .containersSecurityContext }}
4948
securityContext:
5049
{{- toYaml . | nindent 10 }}

charts/matrix-stack/templates/ess-library/_pods.tpl

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,27 @@ successThreshold: {{ . }}
118118
timeoutSeconds: {{ . }}
119119
{{- end }}
120120
{{- end }}
121+
122+
{{- define "element-io.ess-library.pods.env" -}}
123+
{{- $root := .root -}}
124+
{{- with required "element-io.ess-library.pods.env missing context" .context -}}
125+
{{- $componentValues := required "element-io.ess-library.pods.env missing context.componentValues" .componentValues -}}
126+
{{- $resultEnv := dict -}}
127+
{{- range $envEntry := $componentValues.extraEnv -}}
128+
{{- $_ := set $resultEnv $envEntry.name $envEntry -}}
129+
{{- end -}}
130+
{{- $componentName := required "element-io.ess-library.pods.env missing context.componentName" .componentName -}}
131+
{{- $overrideEnvType := .overrideEnvSuffix | default "overrideEnv" -}}
132+
{{- $overrideEnvDocument := include (printf "element-io.%s.%s" $componentName $overrideEnvType) (dict "root" $root "context" $componentValues) -}}
133+
{{- $overrideEnvYaml := $overrideEnvDocument | fromYaml -}}
134+
{{- range $envEntry := $overrideEnvYaml.env -}}
135+
{{- $_ := set $resultEnv $envEntry.name $envEntry -}}
136+
{{- end -}}
137+
{{- with $resultEnv }}
138+
env:
139+
{{- range $key, $fullEnvEntry := . }}
140+
- {{ $fullEnvEntry | toYaml | indent 2 | trim }}
141+
{{- end -}}
142+
{{- end -}}
143+
{{- end -}}
144+
{{- end -}}

charts/matrix-stack/templates/ess-library/_render_config.tpl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ SPDX-License-Identifier: AGPL-3.0-only
5353
{{- range $overrides }}
5454
- /config-templates/{{ . }}
5555
{{- end }}
56-
env:
57-
{{- include (printf "element-io.%s.matrixToolsEnv" $nameSuffix) (dict "root" $root "context" .) | nindent 2 }}
58-
{{- include (printf "element-io.%s.env" $nameSuffix) (dict "root" $root "context" .) | nindent 2 }}
56+
{{- include "element-io.ess-library.pods.env" (dict "root" $root "context" (dict "componentValues" . "componentName" $nameSuffix "overrideEnvSuffix" "renderConfigOverrideEnv")) | nindent 2 }}
5957
{{- with .resources }}
6058
resources:
6159
{{- toYaml . | nindent 4 }}

0 commit comments

Comments
 (0)