MS TeamsΒΆ

Robusta can report issues and events in your Kubernetes cluster to a MS Teams webhook.

To configure a MS Teams sink we need a webhook URL for the target teams channel. You can configure it in MS Teams channel connectors.

Configuring the MS Teams sinkΒΆ

Add this to your generated_values.yaml

sinksConfig:
- ms_teams_sink:
    name: main_ms_teams_sink
    webhook_url: teams-incoming-webhook  # see instructions below
    webhook_override: DYNAMIC MS TEAMS WEBHOOK URL OVERRIDE (Optional)

Then do a Helm Upgrade.

Obtaining a webhook URLΒΆ

  • Click '...' on the channel you want to add the webhook to.

  • Click 'Workflows'.

  • In the search box type 'webhook'.

  • Select webhook template.

  • Name the webhook as 'Robusta Webhook'.

  • Click 'Next'.

  • Make sure the right Team & Channel is selected

  • Click 'Add workflow'.

  • Copy the webhook_url.

Dynamically Route MS Teams AlertsΒΆ

You can set the MS Teams webhook url value dynamically, based on the value of a specific annotation and environmental variable passed to runner.

This can be done using the optional webhook_override sink parameter.

As for now, the webhook_override parameter supports retrieving values specifically from annotations. You can specify an annotation key to retrieve the MS Teams webhook URL using the format annotations.<annotation_key>. For example, if you use annotations.ms-team-alerts-sink, the webhook URL will be taken from an annotation with the key ms-team-alerts-sink.

If the specified annotation does not exist, the default webhook URL from the webhook_url parameter will be used. If the annotation exists but does not contain a URL, the system will look for an environmental variable with the name matching the annotation value.

 sinksConfig:
 # MS Teams integration params
- ms_teams_sink:
    name: main_ms_teams_sink
    webhook_url: teams-incoming-webhook  # see instructions below
    webhook_override: "annotations.ms-team-alerts-sink"

A replacement pattern is also allowed, using $ sign, before the variable. For cases where labels or annotations include special characters, such as ${annotations.kubernetes.io/service-name}, you can use the ${} replacement pattern to represent the entire key, including special characters. For example, if you want to dynamically set the MS Teams webhook url based on the annotation kubernetes.io/service-name, you can use the following syntax:

  • webhook_override: "${annotations.kubernetes.io/service-name}"

Example:

sinksConfig:
- ms_teams_sink:
    name: main_ms_teams_sink
    webhook_url: teams-incoming-webhook  # see instructions below
    webhook_override: ${annotations.kubernetes.io/service-name}