Есть ли способ сохранить данные yaml на карте конфигурации?
В моем values.yaml
у меня есть что-то вроде ниже
config:
filters:
- kind: Pod
apiVersion: v1
...
В моей карте конфигурации я сейчас делаю
...
data:
config.yaml: |-
{{ .Values.config }}
Но в результате configmap
данные «встроены» и отформатированы следующим образом.
...
data:
config.yaml: >-
map[filters:[map[apiVersion:v1...
Что не является yaml
и, следовательно, не может быть проанализировано приложением, читающим его.
Допустим, у вас есть demo-chart
:
.
└── demo
├── charts
├── Chart.yaml
├── templates
│ ├── configmap.yaml
│ ├── _helpers.tpl
│ └── NOTES.txt
└── values.yaml
значения.yaml:
config:
filters:
- kind: Pod
apiVersion: v1
configmap.yaml:
{{- if .Values.config }}
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-name
data:
config.yml: |- {{- toYaml .Values.config | nindent 4 }}
{{- end }}
Объяснение: toYaml
разобрать данные, загруженные из values.yaml, в YAML и nindent
поставить 4 пробела перед каждой строкой.
Проверять:
$ helm template demo
---
# Source: demo/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-name
data:
config.yml: |-
filters:
- apiVersion: v1
kind: Pod
Это скорее предположение, чем ответ, но пробовали ли вы:
data:
config.yaml: |-
config:
filters:
- kind: Pod
apiVersion: v1
Есть разница между >-
и |-
в ямле.