Helm中default函数生成PVC claimName失效问题求助
Helm default函数失效原因解析
Helm的default函数逻辑很明确:只有当第二个参数是空值(比如nil、空字符串""、空列表这类无实际内容的情况)时,才会返回第一个参数作为默认值。
你这里设置的persistence.existingClaim = "-pvc"是一个非空的有效字符串,所以default函数直接返回了这个参数值,完全不会触发使用第一个参数include "flipt.fullname" .的逻辑,最终生成的claimName自然就是-pvc。
而直接用字符串拼接的写法"{{ include "flipt.fullname" . }}{{ .Values.persistence.existingClaim }}",不管第二个参数是否为空,都会把两个字符串直接连接,所以能得到flipt + -pvc = flipt-pvc的预期结果。
如果想实现「当existingClaim为空时只用fullname,有值时就拼接」的逻辑,可以改成这种写法:
claimName: {{ include "flipt.fullname" . }}{{ default "" .Values.persistence.existingClaim }}
内容的提问来源于stack exchange,提问作者IFThenElse
相关产品推荐
相关产品推荐

