将 yaml(作为数据)放入配置映射中
Put yaml (as data) into a config map
有没有办法在配置映射中存储 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
values.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
yaml 中 >-
和 |-
之间存在差异。
有没有办法在配置映射中存储 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
values.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
yaml 中 >-
和 |-
之间存在差异。