Is it possile to create yaml object from helm from file

476 Views Asked by At

I want to iterate over the Yaml list which is defined in the file, and use it in Job. For example i have

test.yaml

    list:
      - first element
      - second element

In _helpers.tpl i can define 
something like 

{{- define "mychart.list" -}}
{{ .Files.Get "test.yaml"| toYaml }}
{{- end }}

And then in Job i want do something like 

    {{- $lists  := include "mychart.list" . }}
    {{- range $element := $lists.list}}
    apiVersion: batch/v1
    kind: Job
    metadata:


and then use the $element.

But when i am trying to do the dry-run with --debug it complains about 

at <$lists.list>: can't evaluate field list in type string.

Looks like whole value is coming as string rather than Yaml, does it needs explicit call to Yaml parser ? If yes, is there a way to do that ?

BTW i have also tried various combinations of 

    {{- $lists  := include "mychart.list" . | toYaml }}

or loading the file inline, but none of them helps.

I can put the list in Values.yaml, but don't want to do that purposely.

Any help is really appreciated.

1

There are 1 best solutions below

0
On

Just putting for future reference, if someone comes and have look.

There's fromYaml function, which is undocumented. I found it hard way, but that solved the isssue.

{{- $lists := include "mychart.list" . | fromYaml}}