1

我试图使用递归来在 ConfigMap.yaml 中添加文件的内容,但我似乎没有做对。无论我尝试什么,我都没有得到文件的内容。文件的位置是正确的,因为我可以在不递归的情况下获取内容。{{.Files.Get "config/gitlab.conf" | 缩进 4 -}}

任何帮助将不胜感激!谢谢

ConfigMap.yaml:

{{- if .Values.volConfigMap}}
{{- range .Values.volConfigMap }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .config.configName }}
  namespace: {{ $.Release.Namespace }}
data:
{{- if  .config.file }}
{{- range $path, $config := .config.file }}
  {{ $path }}: |
{{ tpl ($.Files.Get $config) $ | indent 4 -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}

值.yaml:

config:
        configName: gitlab-conf
        file:
          logstash.conf: config/gitlab.conf

输出:

apiVersion: v1
kind: ConfigMap
metadata:
  name: gitlab-conf
  namespace: elk
data:
  logstash.conf: |

4

1 回答 1

0

YAML 中的|-标记采用多行字符串。这对于在清单中嵌入大块数据是一种有用的技术,如此处所示。

{{- if .Values.volConfigMap }}
{{- range .Values.volConfigMap }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .config.configName }}
  namespace: {{ $.Release.Namespace }}
data:
  {{- if .config.file }}
  {{- range $k, $v := .config.file }}
  {{ $k }}: |-
    {{ $.Files.Get $v | nindent 4 }}
  {{- end -}}
  {{- end -}}
{{- end -}}
{{- end -}}

掌舵-|

于 2021-09-17T11:00:01.407 回答