我正在为具有二进制文件的项目创建一个图表,该二进制文件在执行时会生成YAML格式的配置文件,如下所示:
---
PARAM_1: value1
PARAM_2: value2
我的图表需要读取此文件并将其所有值加载到容器中的环境变量中,因此我在config
文件中创建了一个变量values.yaml
,当安装图表时,我使用--set-file
传递文件内容:
helm install <CHART> --set-file config=/path/to/yaml/config/file
接下来我创建一个qazxsw poi,值为qazxsw poi:
ConfigMap
我遇到的问题是我需要用.Values.config
的值做两件事:
apiVersion: v1
kind: ConfigMap
metadata:
...
data:
{{ .Values.config }}
作为键)config
将失败如何在我的模板中将MY_APP_PARAM_1
的值解析为ConfigMap
,以便我可以使用.Values.config
循环进行这些更改?
最后,我能够做到这样的事情:
dict
我很难将range
与{{ $lines := splitList "\n" .Values.config -}}
{{- range $lines }}
{{- if not (. | trim | empty) -}}
{{- $kv := . | splitn ":" 2 -}}
{{ printf "MY_APP_%s: %s" $kv._0 ($kv._1 | trim | quote) | indent 2 }}
{{ end -}}
{{- end -}}
对齐,{{-
在这部分帮助很大。
这有点混乱,所以我很想知道是否有人有更好的解决方案。