Используйте Helm для прокрутки строк файла dotenv и рендеринга как пары ключ-значение в ConfigMap
У меня есть это
.env
файл:
REACT_APP_API_ENDPOINT=http://api.app:8080
REACT_APP_GOOGLE_ANALY=xyz1234ezyz
Я хочу создать конфигурационную карту из этого файла.env, который выглядит так:
apiVersion: v1
kind: ConfigMap
metadata:
name: frontend-config
data:
REACT_APP_API_ENDPOINT: 'http://api.app:8080'
REACT_APP_GOOGLE_ANALY: 'xyz1234ezyz'
Алгоритм прост:
forEach Line of `.env` content
> Split by "="
> key <- first part , value <- second part
> render key, value in
Значения по умолчанию для моей диаграммы управления:
# chart/values.yaml
# using --set-file
frontendEnv: |
REACT_APP_API_ENDPOINT=http://api.app:8080
REACT_APP_GOOGLE_ANALY=xyz1234ezyz
Мой шаблон configmap:
apiVersion: v1
kind: ConfigMap
metadata:
#...
data:
# MY QUESTION is what to put Here
Я пробовал этот цикл:
# ...
# ..
data:
{{- range $line := splitList "\n" .Values.frontendEnv -}}
{{/* Break the line into words */}}
{{- $kv := split "=" $line -}}
$kv._0: {{ $kv._1 | quote }}
{{- end -}}
Но это не работает
1 ответ
Решение
Исправлена .
использовать
{{- range ... }}
не{{- range... -}}
сохранять новую строку для каждой итерации.использовать splitList не разделять
проверьте, не пуста ли строка
{{- range $line := splitList "\n" .Values.frontendEnv }}
{{/* Break the line into words */}}
{{- $kv := splitList "=" $line -}}
{{- $k := first $kv -}}
{{- if $k }}
{{ $k }}: {{ last $kv | quote }}
{{- end }}
{{- end }}