Helm 3 中的 {{ ... }} 和 {{- ... -}} 语法有什么区别?

What is different between {{ ... }} and {{- ... -}} syntax in Helm3?

我找不到任何文档,但我不断看到示例。

喜欢:

{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{- include "example.serviceAccountName" . -}} ##<=== {{- -}}
  example: {{ .Values.example.example }} ##<=== {{ }}
  labels:
    {{- include "alma.labels" . | nindent 4 }} ##<=== {{- }}
  {{- with .Values.serviceAccount.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
{{- end }}

Helm 使用标准的 Go 模板。看看 https://pkg.go.dev/text/template#hdr-Text_and_spaces 简而言之,{{- something }} 表示“trim 左空白”,{{ something -}} 表示“trim 右空白”。 | nindent 4 表示“前面加4个空格”。您需要此运算符才能正确缩进您的 yaml。