Msteams config for Alertmanager

I’m using:

  • k8s: v1.27
  • helm chart version: kube-prometheus-stack-56.9.0
  • my alertmanager config (part from values.yaml):
    receivers:
    - name: 'null'
    - name: 'msteams'
      msteams_configs:
        - webhook_url: <url>
          send_resolved: true
          title: '[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]'
          text: '{{ template "msteams.text" . }}'
    templates:
    - '/etc/alertmanager/config/*.tmpl'

Is there a way to put data from env var or secret in the webhook_url ?
Or put a var data from global.some_var…?

I think that all of the receivers have a _file: parameter.
I know that msteams_config does have the parameter webhook_url_file. This can be used to pass the secret as a file if you mount it using the following values.

You just need a Kubernetes secret called alertmanager-secrets with a key msteams-webhook-url.

alertmanager:
  alertmanagerSpec:
    secrets:
      - alertmanager-secrets
receivers:
  - name: 'null'
  - name: 'msteams'
    msteams_configs:
      - webhook_url_file: /etc/alertmanager/secrets/alertmanager-secrets/msteams-webhook-url
        send_resolved: true
        title: '[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]'
        text: '{{ template "msteams.text" . }}'
  templates:
  - '/etc/alertmanager/config/*.tmpl'

Configuration - msteams_config | Prometheus

This post explains it better: kubernetes - How to insert a secret in alertmanager configuration file - Stack Overflow

1 Like