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
我有一个 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