ArgoCD应用清单中Helm多种值的优先级及最终取值咨询
ArgoCD Helm值注入优先级与最终取值判断
优先级顺序(从高到低)
- Helm parameters:对应ArgoCD清单中
spec.source.helm.parameters,优先级最高,会覆盖所有其他方式定义的同名参数 - 内嵌values:对应ArgoCD清单中
spec.source.helm.values,优先级次之,会覆盖valueFiles中的参数 - valueFiles:对应ArgoCD清单中
spec.source.helm.valueFiles,列表中后声明的文件会覆盖前序文件的同名参数
你的场景下param1的最终取值
假设你的示例文件内容如下(结合常规场景推导):
values-file-1.yaml:
param1: val1values-file-2.yaml:
param1: val2ArgoCD应用清单中:
spec: source: helm: valueFiles: - values-file-1.yaml - values-file-2.yaml values: | param1: val3 parameters: - name: param1 value: val4
那么最终部署后param1的取值为val4。
如果你的实际文件内容不同,按照上述优先级规则推导即可:先看parameters有没有定义对应参数,有就用它;没有就看内嵌values;都没有就取valueFiles中最后一个文件里的对应值。
这个优先级逻辑本质是ArgoCD底层调用Helm时,将这三种方式映射为Helm命令行的不同参数:
valueFiles对应--values参数(多次传入,后传入的文件覆盖前序)- 内嵌
values对应通过标准输入传入的额外values(等价于--values -,优先级高于之前的--values文件) parameters对应--set参数(Helm中--set优先级最高)
内容的提问来源于stack exchange,提问作者Erich Shan
相关产品推荐
相关产品推荐

