Helm 图表中可以有多个
values.yaml
文件吗?
类似
mychart/templates/internalValues.yaml
、mychart/templates/customSettings.yaml
等?
访问
values.yaml
文件中的属性可以通过 {{ .Values.property1 }}
来完成。
我如何引用这些自定义 values.yaml
文件中的属性?
是的,Helm 可以有多个值文件。只需使用
--values
标志(或 -f
)。
示例:
helm install ./path --values ./internalValues.yaml --values ./customSettings.yaml
您还可以使用
--set
传递单个值。
示例:
helm install ./path --set username=ADMIN --set password=${PASSWORD}
您可以多次指定“--values”/“-f”标志。优先级将给予最后指定的(最右边的)文件。
您可以多次指定“--set”标志。优先级将给予最后指定的(最右边的)组。
(感谢Seth提供更新的文档链接)
Helm 默认情况下只会使用图表根目录中的
values.yaml
文件。
您可以在安装时要求它加载附加值文件。例如,如果您有任何设置指向不同环境中的不同数据库:
helm install . -f values.production.yaml
您还可以通过将其他设置捆绑为一个文件,然后要求 Helm 读取捆绑的文件来获得类似的效果。 Helm 提供了一个未记录的 fromYaml 模板函数,它可以解析文件,所以原则上你可以做类似的事情
{{- $v := $.Files.Get "more-values.yaml" | fromYaml }}
foo: {{ $v.bar }}
只是更新:根据当前的官方文档
--set
和--values
将不会被合并
要覆盖图表中的值,请使用“--values”标志并传入文件,或使用“--set”标志并从命令行传递配置,以强制使用“--set-”字符串值细绳'。如果值很大,因此您不想使用“--values”或“--set”,请使用“--set-file”从文件中读取单个大值。
还有:
您可以多次指定“--values”/“-f”标志。优先级将给予最后指定的(最右边的)文件。