Skip to content

Teams

Parameters

The Teams notification service send message notifications using Teams bot and requires specifying the following settings:

  • recipientUrls - the webhook url map, e.g. channelName: https://example.com

Configuration

  1. Open Teams and goto Apps
  2. Find Incoming Webhook microsoft app and click on it
  3. Press Add to a team -> select team and channel -> press Set up a connector
  4. Enter webhook name and upload image (optional)
  5. Press Create then copy webhook url and store it in argo-rollouts-notification-secret and define it in argo-rollouts-notification-configmap
apiVersion: v1
kind: ConfigMap
metadata:
  name: argo-rollouts-notification-configmap
data:
  service.teams: |
    recipientUrls:
      channelName: $channel-teams-url
apiVersion: v1
kind: Secret
metadata:
  name: <secret-name>
stringData:
  channel-teams-url: https://example.com
  1. Create subscription for your Teams integration:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  annotations:
    notifications.argoproj.io/subscribe.on-sync-succeeded.teams: channelName

Templates

Notification templates can be customized to leverage teams message sections, facts, themeColor, summary and potentialAction feature.

template.app-sync-succeeded: |
  teams:
    themeColor: "#000080"
    sections: |
      [{
        "facts": [
          {
            "name": "Sync Status",
            "value": "{{.app.status.sync.status}}"
          },
          {
            "name": "Repository",
            "value": "{{.app.spec.source.repoURL}}"
          }
        ]
      }]
    potentialAction: |-
      [{
        "@type":"OpenUri",
        "name":"Operation Details",
        "targets":[{
          "os":"default",
          "uri":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true"
        }]
      }]
    title: Application {{.app.metadata.name}} has been successfully synced
    text: Application {{.app.metadata.name}} has been successfully synced at {{.app.status.operationState.finishedAt}}.
    summary: "{{.app.metadata.name}} sync succeeded"

facts field

You can use facts field instead of sections field.

template.app-sync-succeeded: |
  teams:
    facts: |
      [{
        "name": "Sync Status",
        "value": "{{.app.status.sync.status}}"
      },
      {
        "name": "Repository",
        "value": "{{.app.spec.source.repoURL}}"
      }]

theme color field

You can set theme color as hex string for the message.

template.app-sync-succeeded: |
  teams:
    themeColor: "#000080"

summary field

You can set a summary of the message that will be shown on Notification & Activity Feed

template.app-sync-succeeded: |
  teams:
    summary: "Sync Succeeded"