如何解决使用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 -}}
但不起作用
解决方法
已修复。
-
使用
{{- 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 }}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。