无法将 if 条件添加到 helm yaml values.yam;

Unable to add if condition to the helm yaml values.yam;

嗨 Helm 和 Yaml 专家,

我是 Helm/YAML 的初学者。是否可以在 helm 图表的 values.yaml 文件中添加 if-else 条件?

我需要检查一个变量并相应地设置一些属性值。这是我目前正在尝试在 www.yamllint.com 上工作的 YAML 片段示例。

---
cp-kafka: 
  brokers: 3
  enabled: true
  heapOptions: "-Xms512M -Xmx512M"
  image: confluentinc/cp-enterprise-kafka
  imagePullSecrets: ~
  imageTag: "6.1.0"
  persistence: 
    disksPerBroker: 1
    enabled: true
    size: 5Gi
  resources: {}
  securityContext: 
    runAsUser: 0
  configurationOverrides: 
    {{- if .Values.prometheus.jmx.enabled }}
    - 
      containerPort: 10
      name: jmx
    {{- else }}
      containerPort: 11
      name: jmx
    {{- end }}

我在第 17 行收到以下错误 - 如果有条件。尝试了各种变体,例如

{{ if .Values.prometheus.jmx.enabled }},仅当和结束时,缩进。到目前为止没有任何帮助。

(): 在第 17 行第 7 列解析流节点时未找到预期的节点内容

有人可以帮忙吗?如果您需要我提供更多信息来回答这个问题,请告诉我。

谢谢!

Is it possible to add if-else conditions in the values.yaml file in helm charts?

没有

图表可能支持在有限的上下文中使用模板语言:如果图表代码使用 tpl function 来处理特定值,则该值的文本可以包含模板语法,但必须正确引。大多数图表中大多数上下文中的大多数值都不允许这样做。

由于您作为操作员控制着 values.yaml 文件的内容,您只需在要传递给 helm install -f 的文件中更改此设置即可。每个环境都有一个单独的值文件很好。

如果您实际上是在创作图表,我建议您使用 higher-level 值文件,而不是写出单个 Kubernetes 对象设置的列表。如果你能在图表中写下:

containerPorts:
{{- with .Values.prometheus.jmx | default dict }}
{{- if .enabled }}
  - containerPort: {{ .port | default 9875 }}
    name: imx
{{- end }}
{{- end }}

然后配置

prometheus:
  jmx:
    enabled: true
    port: 11