Мое впечатление (и другие, кажется, тоже его поразили) - вы должны пойти на компромисс либо в том, что он многострочный, либо в том, что он не помещен в файл. Я думаю, проблема в том, что вам нужно использовать инструкцию yaml (|-
), чтобы получить несколько строк, и это является частью самого шаблона, поэтому вы не можете получить «выходные данные» таким образом, чтобы потом подача в b64enc
.
Если бы это был ConfigMap, вам не нужно было бы вводить в b64enc
, поэтому это было бы так просто:
myfile.json: |
{
"item1": {
"name": "{{ .Values.item1.name }}"
},
"item2": {
}
}
Или, если бы вы пошли на компромисс в отношении однострочного подхода, это могло бы быть:
myfile.json: {{ tpl ("{ 'item1': { 'name': '{{ .Values.item1.name }}' }, 'item2': { } }") . | toJson | b64enc }}
Если бы он исходил из файла, вы могли бы использовать {{ tpl (.Files.Get "files/myfile.json") . | b64enc | quote }}
Другим вариантом будет поместить весь JSON в файл значений
Или в вашем файле значений может быть запись myfile
, например:
myfile:
item1:
name: "bob"
item2:
name: "fred"
А затем используйте его с myfile.json: {{ .Values.myfile | toJson | b64enc }}