更新时间:2023-10-25 17:39:40
简短的答案是,您不能合并lists
。
在您的示例中abc.env
是key
,value
是一个列表。让我用等价的符号重写您的第一个值文件,它会更清楚:
abc:
env: [{name: name01, value: value01}, {name: name02, value: value02}]
因此Helm正在执行预期的操作,用最后提供的键覆盖abc.env
键。
解决方案是重新组织您的值文件,如下所示:
abc:
env:
name01: value01
name02: value02
通过这种方式,您可以根据需要合并和覆盖您的值文件。这样,用命令行标志覆盖单个值也容易得多,例如:
--set abc.env.name01=different
使用一些Helm魔法,很容易将这些值作为环境变量传递给您的Pod:
...
containers:
- name: abc
image: abc
env:
{{- range $key, $value := .Values.abc.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}