【问题标题】:Helm how to copy section of complex values.yaml into a configmapHelm 如何将复杂 values.yaml 的部分复制到配置映射中
【发布时间】:2021-05-18 16:20:53
【问题描述】:

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

【问题讨论】:

    标签: nested yaml kubernetes-helm go-templates configmap


    【解决方案1】:

    经过几个小时的努力,这对我有用:

    {{- 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 }}
    

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 1970-01-01
      • 2019-02-06
      • 2019-06-16
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多