掌舵图如何具有值包含 {{ }} 的属性

Mar*_*rco 8 kubernetes-helm

在舵图中,我们可以将 value 定义为 {{ Values.name }} 之类的东西,它将被 values.yaml 中定义的真实值替换。但是如果原始值具有类似的格式,例如{{name}},那么在尝试安装该图表时,会因“名称”未定义错误而失败。有没有办法处理这个?

Nic*_*lay 8

你可以在 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 }}
Run Code Online (Sandbox Code Playgroud)

  • 对于非地鼠:如果你的模板片段在一个像 `json: '{ "mustache": "{{ .Values.prefix }} {{ name }}" }'` 这样的字符串中,你可以使用反引号来引用内部{{(虽然它变得很乱):`json: '{ "mustache": "{{ .Values.prefix }} {{ \`{{\` }} name {{ \`}}\` }}" }'` (3认同)

小智 7

用于'{{"{{"}}name{{"}}"}}'将其读作 {{name}}


Ste*_*nas 5

您可以将其嵌入为带有反引号的文字字符串:

{{`{{ "name" }}`}}
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一对我有用的建议 (4认同)