【问题标题】:how to use OR || in helm yaml chart如何使用或 ||在 helm yaml 图表中
【发布时间】:2020-10-15 21:20:14
【问题描述】:

团队,

我创建了一个警报,它正在工作,但我需要将它用于两个值。任何提示我如何在消息之间使用 OR 运算符?当我删除条件时,它会按预期工作。

工作表达式

message: 'Node {{ `{{ $labels.nodename }}` }} was rebooted'

不工作的表达

message: 'Node {{- if or `{{ $labels.nodename }}` `{{ $labels.node }}` }} was rebooted {{- end }}'
    - alert: NodeReboot
      annotations:
        message: 'Node {{- if or `{{ $labels.nodename }}` `{{ $labels.node }}` }} was rebooted {{- end }}'
        runbook_url: TODO
      expr: (time() - node_boot_time_seconds)/60 < 15
      for: {{ .Values.genericAlerts.alertDefinitions.NodeReboot.for }}
      {{- if .Values.genericAlerts.alertDefinitions.NodeReboot.labels }}
      labels:
{{ toYaml .Values.genericAlerts.alertDefinitions.NodeReboot.labels | indent 8 }}
      {{- end }}
    {{- end }}
    {{- if .Values.genericAlerts.alertDefinitions.GpuNodeMissingPowerLabel.enabled }}

输出:

- alert: NodeReboot
    annotations:
    message: 'Node was rebooted'

预计

- alert: NodeReboot
    annotations:
    message: 'Node test-node1 was rebooted'

【问题讨论】:

  • $labels.nodename$labels.node,您要打印其中一个还是两个都打印?

标签: kubernetes-helm prometheus-alertmanager prometheus-operator


【解决方案1】:

如果您只想打印其中一个,请使用以下条件。

message: 'Node {{ if $labels.nodename }}{{ $labels.nodename }}{{ else if $labels.node }}{{ $labels.node }}{{ end }} was rebooted'

如果你不想打印was rebooted,如果它们都没有设置,那么添加下面的IF条件。

message: 'Node {{ if $labels.nodename }}{{ $labels.nodename }}{{ else if $labels.node }}{{ $labels.node }}{{ end }}{{ if or $labels.nodename $labels.node }} was rebooted{{ end }}'

【讨论】:

    猜你喜欢
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2020-12-09
    • 2021-05-02
    • 2021-05-08
    • 2021-12-11
    • 2021-12-13
    相关资源
    最近更新 更多