Skip to content

Commit d08b2b2

Browse files
committed
feat(helm): simplify environment variable injection using envFrom
Replace manual env variable mapping with Kubernetes-native envFrom for both irisapp and irisworker deployments. Supports multiple secrets and improves maintainability of the Helm chart.
1 parent a76930e commit d08b2b2

File tree

4 files changed

+55
-78
lines changed

4 files changed

+55
-78
lines changed

deploy/kubernetes/charts/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.1.1
18+
version: 0.2.0
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

deploy/kubernetes/charts/templates/iris_app.yaml

Lines changed: 38 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -45,65 +45,59 @@ spec:
4545
imagePullPolicy: "{{ .Values.irisapp.imagePullPolicy }}"
4646
command: ['nohup', './iris-entrypoint.sh', 'iriswebapp']
4747

48-
env:
49-
{{- range $key := list "POSTGRES_USER" "POSTGRES_PASSWORD" "POSTGRES_ADMIN_USER" "POSTGRES_ADMIN_PASSWORD" "POSTGRES_PORT" "POSTGRES_SERVER" }}
50-
- name: {{ $key }}
51-
{{- if and (hasKey $.Values.irisapp "envFromSecret") (has $key $.Values.irisapp.envFromSecret.keys) }}
52-
valueFrom:
53-
secretKeyRef:
54-
name: {{ $.Values.irisapp.envFromSecret.name }}
55-
key: {{ $key }}
56-
{{- else }}
57-
value: {{ index $.Values.irisapp $key | quote }}
58-
{{- end }}
48+
envFrom:
49+
{{- range $.Values.irisapp.envFromSecrets }}
50+
- secretRef:
51+
name: {{ .name }}
5952
{{- end }}
6053

61-
- name: IRIS_SECRET_KEY
62-
value: {{ .Values.irisapp.IRIS_SECRET_KEY | quote }}
54+
env:
55+
- name: IRIS_SECRET_KEY
56+
value: {{ .Values.irisapp.IRIS_SECRET_KEY | quote }}
6357

64-
- name: IRIS_SECURITY_PASSWORD_SALT
65-
value: {{ .Values.irisapp.IRIS_SECURITY_PASSWORD_SALT | quote }}
58+
- name: IRIS_SECURITY_PASSWORD_SALT
59+
value: {{ .Values.irisapp.IRIS_SECURITY_PASSWORD_SALT | quote }}
6660

67-
- name: DB_RETRY_COUNT
68-
value: {{ .Values.irisapp.DB_RETRY_COUNT | quote }}
61+
- name: DB_RETRY_COUNT
62+
value: {{ .Values.irisapp.DB_RETRY_COUNT | quote }}
6963

70-
- name: DB_RETRY_DELAY
71-
value: {{ .Values.irisapp.DB_RETRY_DELAY | quote }}
64+
- name: DB_RETRY_DELAY
65+
value: {{ .Values.irisapp.DB_RETRY_DELAY | quote }}
7266

73-
- name: INTERFACE_HTTPS_PORT
74-
value: {{ .Values.irisapp.INTERFACE_HTTPS_PORT | quote }}
67+
- name: INTERFACE_HTTPS_PORT
68+
value: {{ .Values.irisapp.INTERFACE_HTTPS_PORT | quote }}
7569

76-
- name: IRIS_ADM_USERNAME
77-
value: {{ .Values.irisapp.IRIS_ADM_USERNAME | quote }}
70+
- name: IRIS_ADM_USERNAME
71+
value: {{ .Values.irisapp.IRIS_ADM_USERNAME | quote }}
7872

79-
- name: IRIS_ADM_PASSWORD
80-
value: {{ .Values.irisapp.IRIS_ADM_PASSWORD | quote }}
81-
82-
{{- if eq .Values.irisapp.IRIS_AUTHENTICATION_TYPE "oidc" }}
83-
- name: OIDC_ISSUER_URL
84-
value: {{ .Values.irisapp.OIDC_ISSUER_URL | quote }}
73+
- name: IRIS_ADM_PASSWORD
74+
value: {{ .Values.irisapp.IRIS_ADM_PASSWORD | quote }}
8575

86-
- name: OIDC_CLIENT_ID
87-
value: {{ .Values.irisapp.OIDC_CLIENT_ID | quote }}
76+
{{- if eq .Values.irisapp.IRIS_AUTHENTICATION_TYPE "oidc" }}
77+
- name: OIDC_ISSUER_URL
78+
value: {{ .Values.irisapp.OIDC_ISSUER_URL | quote }}
8879

89-
- name: OIDC_CLIENT_SECRET
90-
value: {{ .Values.irisapp.OIDC_CLIENT_SECRET | quote }}
80+
- name: OIDC_CLIENT_ID
81+
value: {{ .Values.irisapp.OIDC_CLIENT_ID | quote }}
9182

92-
- name: OIDC_AUTH_ENDPOINT
93-
value: {{ .Values.irisapp.OIDC_AUTH_ENDPOINT | quote }}
83+
- name: OIDC_CLIENT_SECRET
84+
value: {{ .Values.irisapp.OIDC_CLIENT_SECRET | quote }}
9485

95-
- name: OIDC_TOKEN_ENDPOINT
96-
value: {{ .Values.irisapp.OIDC_TOKEN_ENDPOINT | quote }}
86+
- name: OIDC_AUTH_ENDPOINT
87+
value: {{ .Values.irisapp.OIDC_AUTH_ENDPOINT | quote }}
9788

98-
- name: OIDC_END_SESSION_ENDPOINT
99-
value: {{ .Values.irisapp.OIDC_END_SESSION_ENDPOINT | quote }}
89+
- name: OIDC_TOKEN_ENDPOINT
90+
value: {{ .Values.irisapp.OIDC_TOKEN_ENDPOINT | quote }}
10091

101-
- name: OIDC_MAPPING_USERGROUP
102-
value: {{ .Values.irisapp.OIDC_MAPPING_USERGROUP | quote }}
92+
- name: OIDC_END_SESSION_ENDPOINT
93+
value: {{ .Values.irisapp.OIDC_END_SESSION_ENDPOINT | quote }}
10394

104-
- name: OIDC_MAPPING_ROLES
105-
value: {{ .Values.irisapp.OIDC_MAPPING_ROLES | quote }}
106-
{{- end }}
95+
- name: OIDC_MAPPING_USERGROUP
96+
value: {{ .Values.irisapp.OIDC_MAPPING_USERGROUP | quote }}
97+
98+
- name: OIDC_MAPPING_ROLES
99+
value: {{ .Values.irisapp.OIDC_MAPPING_ROLES | quote }}
100+
{{- end }}
107101

108102
ports:
109103
- containerPort: 8000

deploy/kubernetes/charts/templates/iris_worker.yaml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,18 @@ spec:
4343
image: "{{ .Values.irisworker.image}}:{{ .Values.irisworker.tag }}"
4444
imagePullPolicy: "{{ .Values.irisworker.imagePullPolicy }}"
4545
command: ['./wait-for-iriswebapp.sh', "{{ .Values.irisapp.name }}:{{ .Values.irisapp.service.port }}", './iris-entrypoint.sh', 'iris-worker']
46+
47+
envFrom:
48+
{{- range $.Values.irisworker.envFromSecrets }}
49+
- secretRef:
50+
name: {{ .name }}
51+
{{- end }}
4652

4753
env:
4854

4955
- name: DOCKERIZED
5056
value: {{ .Values.irisworker.DOCKERIZED | quote }}
5157

52-
{{- range $key := list "POSTGRES_USER" "POSTGRES_PASSWORD" "POSTGRES_ADMIN_USER" "POSTGRES_ADMIN_PASSWORD" "POSTGRES_PORT" "POSTGRES_SERVER" }}
53-
- name: {{ $key }}
54-
{{- if and (hasKey $.Values.irisworker "envFromSecret") (has $key $.Values.irisworker.envFromSecret.keys) }}
55-
valueFrom:
56-
secretKeyRef:
57-
name: {{ $.Values.irisworker.envFromSecret.name }}
58-
key: {{ $key }}
59-
{{- else }}
60-
value: {{ index $.Values.irisworker $key | quote }}
61-
{{- end }}
62-
{{- end }}
6358

6459
- name: CELERY_BROKER
6560
value: {{ .Values.irisworker.CELERY_BROKER | quote }}

deploy/kubernetes/charts/values.yaml

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -132,17 +132,11 @@ irisapp:
132132
DB_RETRY_DELAY: 5
133133
INTERFACE_HTTPS_PORT: 443
134134

135-
## @param irisapp.envFromSecret Environment variables from a secret
136-
##
137-
envFromSecret:
138-
name: postgres-secret
139-
keys:
140-
- POSTGRES_USER
141-
- POSTGRES_PASSWORD
142-
- POSTGRES_ADMIN_USER
143-
- POSTGRES_ADMIN_PASSWORD
144-
- POSTGRES_PORT
145-
- POSTGRES_SERVER
135+
## @param irisapp.envFromSecrets List of secrets to load environment variables from
136+
##
137+
envFromSecrets:
138+
- name: postgres-secret
139+
# - name: extra-secret
146140

147141
## @param irisapp.securityContext securityContext for irisapp
148142
##
@@ -199,17 +193,11 @@ irisworker:
199193
IRIS_SECRET_KEY: AVerySuperSecretKey-SoNotThisOne
200194
IRIS_SECURITY_PASSWORD_SALT: ARandomSalt-NotThisOneEither
201195

202-
## @param irisapp.envFromSecret Environment variables from a secret
203-
##
204-
envFromSecret:
205-
name: postgres-secret
206-
keys:
207-
- POSTGRES_USER
208-
- POSTGRES_PASSWORD
209-
- POSTGRES_ADMIN_USER
210-
- POSTGRES_ADMIN_PASSWORD
211-
- POSTGRES_PORT
212-
- POSTGRES_SERVER
196+
## @param irisworker.envFromSecrets List of secrets to load environment variables from
197+
##
198+
envFromSecrets:
199+
- name: postgres-secret
200+
# - name: extra-secret
213201

214202
## @param irisworker.securityContext securityContext for irisworker
215203
##

0 commit comments

Comments
 (0)