如何在Helm Chart中根据.Values.yaml的var1重置var2的值?
Helm Chart 按条件重置变量实现方案
你需要实现的逻辑是:当var1为true时,使用"retest"作为var2的值,否则沿用Values.yaml中定义的var2。以下是两种可行的实现方式:
方法一:直接在模板中嵌入条件判断
在需要使用var2值的模板位置,直接写入以下代码即可:
{{- if .Values.var1 }}retest{{- else }}{{ .Values.var2 }}{{- end }}
方法二:定义可复用的模板函数
如果多个地方需要用到这个逻辑,可以定义一个模板函数来统一处理:
{{/* 定义模板函数:根据var1的值返回对应的var2内容 */}} {{- define "testFunction.getVar2" }} {{- if .Values.var1 }} retest {{- else }} {{ .Values.var2 }} {{- end }} {{- end }}
在需要使用的地方,通过include调用这个函数:
{{- include "testFunction.getVar2" . }}
你原有代码的问题
你之前的模板函数逻辑错误:在if .Values.var1的分支里,你处理的是var1本身并添加default,这完全偏离了需求——我们需要返回的是目标字符串"retest",而不是对var1做默认值处理。
内容的提问来源于stack exchange,提问作者Davinder Singh
相关产品推荐
相关产品推荐

