我可以为 Helm 设置多个 values.yaml 文件吗
Can I have multiple values.yaml files for Helm
我可以在 Helm chart 中有多个 values.yaml
文件吗?
类似于 mychart/templates/internalValues.yaml
、mychart/templates/customSettings.yaml
等?
可以通过 {{ .Values.property1 }}
访问 values.yaml
文件中的属性。
我将如何引用这些自定义 values.yaml
文件中的属性?
默认情况下,Helm 只会使用图表根目录中的 values.yaml
文件。
您可以在安装时要求它加载额外的值文件。例如,如果您有任何设置指向不同环境中的不同数据库:
helm install . -f values.production.yaml
您也可以通过将其他设置捆绑为一个文件来获得类似的效果,并且 asking Helm to read the bundled file. Helm provides an undocumented fromYaml template function 可以解析该文件,因此原则上您可以执行类似
的操作
{{- $v := $.Files.Get "more-values.yaml" | fromYaml }}
foo: {{ $v.bar }}
是的,Helm 可以有多个值文件。只需使用 --values
标志(或 -f
)。
示例:
helm install ./path --values ./internalValues.yaml --values ./customSettings.yaml
您也可以使用 --set
.
传入单个值
示例:
helm install ./path --set username=ADMIN --set password=${PASSWORD}
From the official documentation:
There are two ways to pass configuration data during install:
--values(或-f):指定一个带有覆盖的YAML文件。可以多次指定,最右边的文件优先
--set(及其变体--set-string和--set-file):在命令行上指定覆盖。
如果两者都使用,--set values 将合并到具有更高优先级的--values 中。用 --set 指定的覆盖将保留在配置映射中。可以使用 helm get values 查看给定版本的 --set 值。可以通过指定 --reset-values 的 运行 helm upgrade 清除已设置的值。
只是为了更新:根据当前 official documentation --set
& --values
将不会合并
To override values in a chart, use either the '--values' flag and pass in a file or use the '--set' flag and pass configuration from the command line, to force a string value use '--set-string'. In case a value is large and therefore you want not to use neither '--values' nor '--set', use '--set-file' to read the single large value from file.
还有:
You can specify the '--values'/'-f' flag multiple times. The priority will be given to the last (right-most) file specified.
我可以在 Helm chart 中有多个 values.yaml
文件吗?
类似于 mychart/templates/internalValues.yaml
、mychart/templates/customSettings.yaml
等?
可以通过 {{ .Values.property1 }}
访问 values.yaml
文件中的属性。
我将如何引用这些自定义 values.yaml
文件中的属性?
默认情况下,Helm 只会使用图表根目录中的 values.yaml
文件。
您可以在安装时要求它加载额外的值文件。例如,如果您有任何设置指向不同环境中的不同数据库:
helm install . -f values.production.yaml
您也可以通过将其他设置捆绑为一个文件来获得类似的效果,并且 asking Helm to read the bundled file. Helm provides an undocumented fromYaml template function 可以解析该文件,因此原则上您可以执行类似
的操作{{- $v := $.Files.Get "more-values.yaml" | fromYaml }}
foo: {{ $v.bar }}
是的,Helm 可以有多个值文件。只需使用 --values
标志(或 -f
)。
示例:
helm install ./path --values ./internalValues.yaml --values ./customSettings.yaml
您也可以使用 --set
.
示例:
helm install ./path --set username=ADMIN --set password=${PASSWORD}
From the official documentation:
There are two ways to pass configuration data during install:
--values(或-f):指定一个带有覆盖的YAML文件。可以多次指定,最右边的文件优先
--set(及其变体--set-string和--set-file):在命令行上指定覆盖。
如果两者都使用,--set values 将合并到具有更高优先级的--values 中。用 --set 指定的覆盖将保留在配置映射中。可以使用 helm get values 查看给定版本的 --set 值。可以通过指定 --reset-values 的 运行 helm upgrade 清除已设置的值。
只是为了更新:根据当前 official documentation --set
& --values
将不会合并
To override values in a chart, use either the '--values' flag and pass in a file or use the '--set' flag and pass configuration from the command line, to force a string value use '--set-string'. In case a value is large and therefore you want not to use neither '--values' nor '--set', use '--set-file' to read the single large value from file.
还有:
You can specify the '--values'/'-f' flag multiple times. The priority will be given to the last (right-most) file specified.