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

问题描述

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

在我的 android:requestLegacyExternalStorage="true" 中,我有类似下面的内容

values.yaml

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

config:
  filters:
    - kind: Pod
      apiVersion: v1
...

但在结果 ... data: config.yaml: |- {{ .Values.config }} 中,数据是“内联的”并按此格式设置

configmap

哪个不是 ... data: config.yaml: >- map[filters:[map[apiVersion:v1... ,因此无法被读取它的应用解析。

解决方法

假设您有一个 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 中的 >-|- 是有区别的。