Values 文件的优先级
Helm 模板提供的内置对象中有一个 Values 对象,该对象提供了传递值到chart的方法
其内容来自于多个位置:
- chart 中的
values.yaml
文件 - 如果是子 chart,就是父 chart 中的
values.yaml
文件 - 使用
-f
参数(helm install -f myvals.yaml ./mychart
)传递到helm install
或helm upgrade
的 values 文件 - 使用
--set
(比如helm install --set foo=bar ./mychart
)传递的单个参数
以上列表有明确顺序:默认使用values.yaml
,可以被父 chart 的values.yaml
覆盖,继而被用户提供 values 文件覆盖, 最后会被--set
参数覆盖,优先级为values.yaml
最低,--set
参数最高。
即,如果 chart 的 values.yaml 文件存在的内容如果不覆盖则必定会在最终的 values 对象中存在。为了避免某些排他属性设置错误,可以将默认值设置为 null 来删除 values.yaml 文件提供的默认值。