如何在YAML Go模板中修剪字符串?

问题描述 投票:1回答:1

我有以下values.yaml-

foo:
  - a: bar1
    b: bar2
  - a: bar3 
    b: bar4

我正在使用以下模板-

data:
  string:
{{range .Values.foo}}
  {{ .a ` and ` .b ` or `}}
{{end}}

输出为-

data:
  string: bar1 and bar2 or bar3 and bar4 or

如何摆脱尾随或?

kubernetes-helm go-templates
1个回答
0
投票

当迭代列表的range时,可以将局部变量设置为实际的索引和值(镜像Go语义)。因此,您可以将其更改为将“或”放在开头,但第一次在循环中跳过它。

data:
  string:
    {{ range $i, $v := .Values.foo -}}
    {{- if ne $i 0 }} or {{ end -}}
    {{- printf "%s and %s" $v.a $v.b -}}
    {{- end }}
© www.soinside.com 2019 - 2024. All rights reserved.