Values 文件的优先级

Helm | 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 文件提供的默认值。