Helm模板中如何将引用的字符串布尔值转为原生布尔类型?
解决Helm模板中布尔值输出带引号的问题
问题根源
你的通用值文件里service.enabled是字符串类型的"false",而非布尔类型的false,所以直接引用或使用toYaml过滤器时,输出始终是带引号的字符串。
解决方案
方案1:修改通用值文件(推荐)
将通用值中的字符串改为布尔值,从根源解决类型问题:
# 通用值文件修改后 service: enabled: false # 去掉引号,定义为布尔值
之后模板中直接引用即可输出正确的布尔值:
enabled: {{ .Values.common.service.enabled }}
输出结果:enabled: false
方案2:模板内转换类型(无法修改通用值时)
使用Helm内置的toBool过滤器,将字符串类型的"false"/"true"转换为布尔值:
enabled: {{ .Values.common.service.enabled | toBool }}
该过滤器会自动识别字符串"false"并转换为布尔值false,输出不带引号。
为什么toYaml无效?
toYaml的作用是将值序列化为YAML格式,原数据是字符串类型的"false",序列化后依然是带引号的字符串,无法改变其类型,因此无法解决问题。
内容的提问来源于stack exchange,提问作者autoalt
相关产品推荐
相关产品推荐

