将 yaml(作为数据)放入配置映射中

use*_*009 3 kubernetes kubernetes-helm configmap

有没有办法将 yaml 数据存储在配置映射中?

在我的values.yaml我有类似下面的东西

config:
  filters:
    - kind: Pod
      apiVersion: v1
...
Run Code Online (Sandbox Code Playgroud)

在我的配置图中,我目前正在做

...
data:
  config.yaml: |-
    {{ .Values.config }}
Run Code Online (Sandbox Code Playgroud)

但在结果中,configmap数据被“内联”并格式化为这样

...
data:
  config.yaml: >-
    map[filters:[map[apiVersion:v1...
Run Code Online (Sandbox Code Playgroud)

这不是yaml,因此不能被读取它的应用程序解析。

Kam*_*san 5

假设你有一个demo-chart

\n
.\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 demo\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 configmap.yaml\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _helpers.tpl\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 NOTES.txt\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n\n
Run Code Online (Sandbox Code Playgroud)\n

值.yaml:

\n
.\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 demo\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 configmap.yaml\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _helpers.tpl\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 NOTES.txt\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n\n
Run Code Online (Sandbox Code Playgroud)\n

配置映射.yaml:

\n
config:\n  filters:\n    - kind: Pod\n      apiVersion: v1\n
Run Code Online (Sandbox Code Playgroud)\n

说明: toYaml将从values.yaml加载的数据解析为YAML并nindent在每行前面放置4个空格。

\n

查看:

\n
{{- if .Values.config }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: demo-name\ndata:\n  config.yml: |- {{- toYaml .Values.config | nindent 4 }}\n{{- end }}\n
Run Code Online (Sandbox Code Playgroud)\n