在 Helm Chart 中,我们可以将 value 定义为类似 {{ Values.name }} 的形式,它将被替换为 Values.yaml 中定义的真实值。 但是,如果原始值具有类似的格式,例如 {{name}},则在尝试安装该图表时,会由于“name”未定义的错误而失败。 有什么办法可以处理吗?
您可以将其嵌入为带反引号的文字字符串:
{{`{{ "name" }}`}}
您可以使用
{{ "{{" }}
在 Go 模板中转义双大括号。
但最好的方法是将警报规则嵌入为单独的文件:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "fullname" . }}-rules
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
prometheus: {{ template "fullname" . }}
data:
{{ (.Files.Glob "rules/*").AsConfig | indent 2 }}
使用
'{{"{{"}}name{{"}}"}}'
将其读作 {{name}}