如何在Helm helper_tpl文件中向变量追加值?
解决Helm模板生成点连接区域字符串的问题
直接用Go模板内置的join函数就能搞定,不用手动处理append的输出,具体分两种场景:
场景1:已有区域数组(比如Values里定义好的)
如果你的区域已经是一个数组(比如Values.regions: ["au-syd", "br-sao", "ca-tor"]),直接在模板里用join拼接:
{{/* 定义plugin.regionList模板 */}} {{- define "plugin.regionList" -}} {{- join "." .Values.regions -}} {{- end -}}
调用这个模板就会直接输出au-syd.br-sao.ca-tor。
场景2:需要先收集区域再拼接
如果是通过循环动态收集区域(比如遍历某个map生成区域代码),先把所有区域存到一个变量里,最后用join拼接:
{{/* 定义plugin.regionList模板 */}} {{- define "plugin.regionList" -}} {{- /* 初始化空列表 */}} {{- $regionList := list -}} {{- /* 遍历数据源收集区域 */}} {{- range .Values.regionConfigs }} {{- $regionList = append $regionList .code }} {{- end }} {{- /* 用点连接所有区域 */}} {{- join "." $regionList -}} {{- end -}}
这里的关键是不要在循环里直接输出append的结果,而是先把所有区域收集到数组变量中,最后统一用join生成目标字符串。
内容的提问来源于stack exchange,提问作者ambikanair
相关产品推荐
相关产品推荐

