Helm模板index函数未触发默认值报错问题求助
解决Helm模板字典key不存在时默认值不生效的问题
问题根源
当使用index函数访问字典中不存在的key时,会返回nil,而default过滤器无法正确处理nil值,因此抛出error calling index: index of untyped nil错误。
解决方案
方案一:使用get函数(推荐)
get函数原生支持在字典key不存在时返回指定默认值,语法简洁且避免错误:
replicas: {{ get .Values.productNameReplicas .Values.productName 1 }}
方案二:通过hasKey做条件判断
先检查目标key是否存在于字典中,再决定返回对应值或默认值:
replicas: {{ if hasKey .Values.productNameReplicas .Values.productName }}{{ index .Values.productNameReplicas .Values.productName }}{{ else }}1{{ end }}
以上两种方法均可实现预期功能:当productName存在于productNameReplicas中时返回对应副本数,不存在时使用默认值1。
内容的提问来源于stack exchange,提问作者user3622142
相关产品推荐
相关产品推荐

