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