微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Helm 如何将复杂的 values.yaml 部分复制到配置映射中

如何解决Helm 如何将复杂的 values.yaml 部分复制到配置映射中

我有一个很大的 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 }}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。