Refactor Helm template to handle optional envFrom values safely

• Add null checks for envFrom fields
• Support both secrets and configmaps
• Build envFrom list dynamically
• Only render envFrom when entries exist
• Fix template indentation issues
This commit is contained in:
yangdx
2025-10-10 15:31:35 +08:00
parent 119d2fa171
commit 648d7bb175

View File

@@ -43,14 +43,17 @@ spec:
- name: env-file
mountPath: /app/.env
subPath: .env
envFrom:
{{- range .Values.envFrom.secrets }}
- secretRef:
name: {{ .name }}
{{- $envFrom := default (dict) .Values.envFrom }}
{{- $envFromEntries := list }}
{{- range (default (list) (index $envFrom "secrets")) }}
{{- $envFromEntries = append $envFromEntries (dict "secretRef" (dict "name" .name)) }}
{{- end }}
{{- range .Values.envFrom.configmaps }}
- configMapRef:
name: {{ .name }}
{{- range (default (list) (index $envFrom "configmaps")) }}
{{- $envFromEntries = append $envFromEntries (dict "configMapRef" (dict "name" .name)) }}
{{- end }}
{{- if gt (len $envFromEntries) 0 }}
envFrom:
{{- toYaml $envFromEntries | nindent 12 }}
{{- end }}
{{- with .Values.image.imagePullSecrets }}
imagePullSecrets:
@@ -75,4 +78,4 @@ spec:
{{- end }}
strategy:
{{- toYaml .Values.updateStrategy | nindent 4 }}
{{- toYaml .Values.updateStrategy | nindent 4 }}