如何在Helm中对range遍历结果应用模板函数处理末尾多余逗号问题
可以通过模板函数解决该问题,有两种常见实现方案:
方案1:使用trimSuffix/trunc移除末尾多余逗号
你提到的trunc方案可以实现,但更推荐用trimSuffix函数,避免环境变量为空时trunc操作报错,示例代码如下:
### _envVars.tpl {{ define "envVars" }} ... - name: CUSTOM_VARIABLE value: " {{- $combined := "" -}} {{- range $key, $value := .Values.env -}} {{- $combined = printf "%s%s=%s," $combined $key $value -}} {{- end -}} {{- $combined | trimSuffix "," -}} " ... {{- end }}
如果坚持用trunc实现,可以调整为如下写法,需注意确保.Values.env不为空:
{{- $combined | trunc (sub (len $combined) 1) -}}
方案2:更推荐的列表拼接方案(无多余逗号问题)
无需先加逗号再删除,直接把每一组环境变量拼接为字符串存入列表,最后用join函数用逗号连接所有元素,逻辑更严谨:
### _envVars.tpl {{ define "envVars" }} ... - name: CUSTOM_VARIABLE value: " {{- $envList := list -}} {{- range $key, $value := .Values.env -}} {{- $envList = append $envList (printf "%s=%s" $key $value) -}} {{- end -}} {{- join "," $envList -}} " ... {{- end }}
内容的提问来源于stack exchange,提问作者Muravyev Maxim
相关产品推荐
相关产品推荐

