I have the following values.yaml -
foo:
  - a: bar1
    b: bar2
  - a: bar3 
    b: bar4I'm using templating as follows -
data:
  string:
{{range .Values.foo}}
  {{ .a ` and ` .b ` or `}}
{{end}}The output is -
data:
  string: bar1 and bar2 or bar3 and bar4 orHow can I get rid of the trailing or?
When you iterate over range of a list, you can set local variables to the actual index and value (mirroring Go semantics). So you can change this to put the "or" at the beginning, but skip it on the first time through the loop.
data:
  string:
    {{ range $i, $v := .Values.foo -}}
    {{- if ne $i 0 }} or {{ end -}}
    {{- printf "%s and %s" $v.a $v.b -}}
    {{- end }}