我正在尝试用值填充我的部署并出现错误:
YAML parse error on helm-general/templates/deployment.yaml: error converting YAML to JSON: yaml: line 46: mapping values are not allowed in this context
我的 values.yaml
env:
LIMESURVEY_DB_HOST:
value: "host.com"
LIMESURVEY_DB_PASSWORD:
valueFrom:
secretKeyRef:
name: limesurvey-pass
key: pass
部署.yaml
env:
{{- range $k, $v := .Values.env }}
- name: {{ $k }}
{{- $v | toYaml | indent 7 }}
{{- end }}
输出中缺少换行符。有两种方法可以解决这个问题。一种方法是使用
nindent
函数代替indent
,它也会插入前导换行符另一个对空格的考虑要更仔细一些。
indent
将在每行(包括第一行)的开头插入空格,因此包含的行indent
本身不应缩进。您确实需要在它之前添加换行符,因此您不需要 Go 模板-
空格控制标记。这导致您(缩进很重要,第二行没有缩进并不是打字错误。)
由于您只是想根据原样根据值重现整个块,因此您也不需要循环
range
,这可以避免这里的一点点复杂性。