繁体   English   中英

我可以为 Helm 设置多个 values.yaml 文件吗

[英]Can I have multiple values.yaml files for Helm

Helm 图表中可以有多个values.yaml文件吗?

mychart/templates/internalValues.yamlmychart/templates/customSettings.yaml等?

可以通过{{ .Values.property1 }}访问values.yaml文件中的属性。 我将如何引用这些自定义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):指定带有覆盖的 YAML 文件。 这可以指定多次,最右边的文件将优先

--set(及其变体 --set-string 和 --set-file):在命令行上指定覆盖。

如果两者都使用,则 --set 值将合并到具有更高优先级的 --values 中。 使用 --set 指定的覆盖保留在 configmap 中。 可以使用 helm get values 查看给定版本的 --set 值。 可以通过使用指定的 --reset-values 运行 helm upgrade 来清除已 --set 的值。

默认情况下,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-string”字符串值'。 如果值很大,因此您不想使用“--values”或“--set”,请使用“--set-file”从文件中读取单个大值。

还 :

您可以多次指定 '--values'/'-f' 标志。 将优先考虑指定的最后(最右侧)文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM