如何通过 Helm Chart 将字符串列表(切片)呈现为 yaml 文件中的列表
How to render list (slice) of string as list in yaml file by Helm Chart
我有一个字符串数据列表或(切片),例如 [string1, string2, string3]。
我想在 yaml 文件中以列表方式将其呈现为
- string1
- string2
- string3
我该怎么做?
我试过了
{{- range $val := $list }}
- {{ $val }}
{{- end }}
但它呈现为多行字符串
- |-
- string1
- string2
- string2
有什么想法吗?提前谢谢你
您可以使用格式化字符串输出来解决问题。
例如
values.yaml
arr:
- string1
- string2
- string3
_helpers.tpl
{{/*
Print string from list split by ,
*/}}
{{- define "print.list" -}}
{{- range $idx, $val := $.Values.arr -}}
{{- if $idx }}
{{- print ", " -}}
{{- end -}}
{{- $val -}}
{{- end -}}
{{- end -}}
你要渲染的模板,例如comfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
test: [{{- include "print.list" .}}]
输出
piVersion: v1
kind: ConfigMap
metadata:
name: test
data:
test: [string1, string2, string3]
---↓ 2022-01-05更新↓---
values.yaml
arr:
- string1
- string2
- string3
你要渲染的模板,例如comfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
test: |
{{- toYaml $.Values.arr | nindent 4 }}
输出
piVersion: v1
kind: ConfigMap
metadata:
name: test
data:
test: |
- string1
- string2
- string3
没有管道
helm --dry-run --debug template test .
你要渲染的模板,例如comfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
test:
{{- toYaml $.Values.arr | nindent 4 }}
输出
piVersion: v1
kind: ConfigMap
metadata:
name: test
data:
test:
- string1
- string2
- string3
range
{{- range $i, $v := $.Values.arr }}
- {{ $v }}
{{- end }}
输出
- string1
- string2
- string3
我有一个字符串数据列表或(切片),例如 [string1, string2, string3]。 我想在 yaml 文件中以列表方式将其呈现为
- string1
- string2
- string3
我该怎么做?
我试过了
{{- range $val := $list }}
- {{ $val }}
{{- end }}
但它呈现为多行字符串
- |-
- string1
- string2
- string2
有什么想法吗?提前谢谢你
您可以使用格式化字符串输出来解决问题。
例如
values.yaml
arr:
- string1
- string2
- string3
_helpers.tpl
{{/*
Print string from list split by ,
*/}}
{{- define "print.list" -}}
{{- range $idx, $val := $.Values.arr -}}
{{- if $idx }}
{{- print ", " -}}
{{- end -}}
{{- $val -}}
{{- end -}}
{{- end -}}
你要渲染的模板,例如comfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
test: [{{- include "print.list" .}}]
输出
piVersion: v1
kind: ConfigMap
metadata:
name: test
data:
test: [string1, string2, string3]
---↓ 2022-01-05更新↓---
values.yaml
arr:
- string1
- string2
- string3
你要渲染的模板,例如comfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
test: |
{{- toYaml $.Values.arr | nindent 4 }}
输出
piVersion: v1
kind: ConfigMap
metadata:
name: test
data:
test: |
- string1
- string2
- string3
没有管道
helm --dry-run --debug template test .
你要渲染的模板,例如comfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
test:
{{- toYaml $.Values.arr | nindent 4 }}
输出
piVersion: v1
kind: ConfigMap
metadata:
name: test
data:
test:
- string1
- string2
- string3
range
{{- range $i, $v := $.Values.arr }}
- {{ $v }}
{{- end }}
输出
- string1
- string2
- string3