问题描述
我有一个很大的 values.yaml 文件,其中包含嵌套对象和数组,我试图将其副本呈现为配置映射。到目前为止,我的代码是:
{{- range $key,$value := index .Values "program_config" }}
{{ $key }}
{{- range $elem,$elemVal := $value }}
{{- if kindis "invalid" $elemVal }}
{{ $elem }} =
{{- else if kindis "string" $elemVal }}
{{ $elem }} = {{ tpl $elemVal $ }}
{{- else }}
{{ $elem }} = {{ $elemVal }}
{{- end }}
{{- end }}
{{- end }}
这让我很接近,但我看到地图渲染为
object_schema : map[type:UTF8]
代替
object_schema:
type: "UTF8"
我的数组显示为:
queries :
0 : select xxx
代替:
queries:
- >-
select xxx
解决方法
经过几个小时的努力,我做到了:
{{- range $key,$value := index .Values "program_config" }}
{{ $key }}:
{{- range $elem,$elemVal := $value }}
{{- if ne "queries" $key }}
{{- if ne "schema" $key }}
{{- if kindIs "invalid" $elemVal }}
{{ $elem }}: {{ "" }}
{{- else if kindIs "string" $elemVal }}
{{ $elem }}: {{ tpl $elemVal $ | quote}}
{{- else }}
{{ $elem }}: {{ quote $elemVal }}
{{- end }}
{{- end }}
{{- end }}
{{- if eq "queries" $key }}
- >-
{{ $elemVal }}
{{- end}}
{{- end }}
{{- end }}
{{- range $key,$value := index .Values.program_config.schema}}
{{ $key }}:
{{- range $nestedKey,$nestedVal := index $value }}
{{ $nestedKey }} : {{ $nestedVal | quote }}
{{- end }}
{{- end }}