Search code examples
kubernetes-helm

How to output template data line by line


I have some data which is a multiline string. And I don't want to modify it. Now I want to prefix each one with a character

{{- define "info.geological" -}}
iWater Well Completion Reports
Anatomy of a Water Well Report
Water table Altitudes
...
{{- end -}}

What I want

data:
  - "iWater Well Completion Reports"
  - "Anatomy of a Water Well Report"
  - "Water table Altitudes"
  ...

Solution

  • Treat it as string in golang, split and print

    template

    {{- define "info.geological" -}}
    iWater Well Completion Reports
    Anatomy of a Water Well Report
    Water table Altitudes
    ...
    {{- end -}}
    

    template/xxx.yaml

    data: 
    {{- $dt := include "info.geological" . }}
    {{- range ( split "\n" $dt) }}
      - {{ . | quote }}
    {{- end }}
    

    output:

    data:
      - "iWater Well Completion Reports"
      - "Anatomy of a Water Well Report"
      - "Water table Altitudes"
      ...