Helm 逐行修改多行字符串

Helm modify a multiline string line by line

我有一个 returns 多行字符串的函数。这个函数在几个地方被调用 - 所以我不想在一个地方修改 it.However 我需要在每一行前面加上一个字符。

{{- define "myfunc" -}}
aaa
bbb
ccc
ddd
{{- end -}}

在我的模板中的一个地方,我需要将它们作为前缀为“-”的元素绑定到列表中

预期结果:

args:
  - aaa
  - bbb
  - ccc
  - ddd

我的尝试1:

   args:
     - {{- include "myfunc" . | nindent 8 }} 

结果:

 args:
  - 
  aaa
  bbb
  ccc
  ddd

我的尝试2:

  iterating over it, something like
   args:
     {{- range include "myfunc" . }}
     - {{ . }}
     {{- end }}  

结果:

Error: template : .... range can't iterate over aaa
   bbb
   ccc
   ddd

我的实际解决方案:
只需稍加修改即可复制现有功能

{{- define "myfunc2" -}}
- aaa
- bbb
- ccc
- ddd
{{- end -}}

问题是如何将原始函数的结果绑定到args?如何对每一行应用修改?

你或许可以把它看成一组字符串数据,然后像处理一个字符串一样处理它

_helper.yaml

{{- define "myfunc" -}}
aaa
bbb
ccc
ddd
{{- end -}}

template/xxx.yaml

args: 
{{- $data := include "myfunc" . }}
{{- range ( split "\n" $data) }}
  - {{ . }}
{{- end }}

输出:

args: 
  - aaa
  - bbb
  - ccc
  - ddd