Helm 将 YAML 转换为 JSON 时出错:yaml:第 20 行:未找到预期的密钥

ano*_*999 2 go-templates kubernetes kubernetes-helm

我真的不知道这里的错误是什么,是一个带有 _helpers.tpl 的简单 helm 部署,它没有意义,可能是一个愚蠢的错误,代码:

部署.yaml

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
{{ include "metadata.name" . }}-deploy
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        vars: {{- include "envs.var" .Values.secret.data }}
Run Code Online (Sandbox Code Playgroud)

_helpers.tpl

{{- define "envs.var"}}
{{- range $key := . }}
- name: {{ $key | upper | quote}}
  valueFrom:
    secretKeyRef:
      key: {{ $key | lower }}
      name: {{ $key }}-auth
{{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)

值.yaml

secret:
  data:
    username: root
    password: test
Run Code Online (Sandbox Code Playgroud)

错误

Error: YAML parse error on mychart/templates/deploy.yaml: error converting YAML to JSON: yaml: line 21: did not find expected key
Run Code Online (Sandbox Code Playgroud)

hoq*_*que 5

在这里这个问题是由于缩进而发生的。您可以通过更新解决

env: {{- include "envs.var" .Values.secret.data | nindent 12  }}
Run Code Online (Sandbox Code Playgroud)