Skip to content

NotificationsConfiguration

The NotificationsConfiguration resource is a Kubernetes Custom Resource (CRD) that allows users to add the triggers, templates, services and subscriptions to the Argo CD Notifications Configmap.

A NotificationsConfiguration custom resource with name default-notifications-configuration is created OOTB with default configuration. Users should update this custom resource with their templates, triggers, services, subscriptios or any other configuration.

Note: - Any configuration changes should be made to the default-notifications-configuration only. At this point, we do not support any custom resources of kind NotificationsConfiguration created by the users. - Any modifications to the argocd-notifications-cm will be reconciled back by the NotificationsConfiguration controller of the Argo CD operator instance.

The NotificationsConfiguration Custom Resource consists of the following properties.

Name Default Description
Templates [Empty] Triggers define the condition when the notification should be sent and list of templates required to generate the message.
Triggers [Empty] Templates are used to generate the notification template message.
Services [Empty] Services are used to deliver message.
Subscriptions [Empty] Subscriptions contain centrally managed global application subscriptions.
Context [Empty] Context is used to define some shared context between all notification templates.

Templates Example

The following example shows how to add templates to the argocd-notification-cm using the default-notifications-configuration custom resource.

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration
spec:
 templates:
  template.my-custom-template: |
    message: |
      Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

Triggers Example

The following example shows how to add Triggers to the argocd-notification-cm using the default-notifications-configuration custom resource.

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration
spec:
 triggers:
  trigger.on-sync-status-unknown: |
    - when: app.status.sync.status == 'Unknown'
      send: [my-custom-template]

Services Example

The following example shows how to add Services to the argocd-notification-cm using the default-notifications-configuration custom resource.

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration
spec:
 Services:
  service.slack: |
    token: $slack-token
    username: <override-username> # optional username
    icon: <override-icon> # optional icon for the message (supports both emoij and url notation)

Subscriptions Example

The following example shows how to add Subscriptions to the argocd-notification-cm using the default-notifications-configuration custom resource.

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration
spec:
 Subscriptions: |
  subscriptions: |
    # subscription for on-sync-status-unknown trigger notifications
    - recipients:
      - slack:test2
      - email:test@gmail.com
      triggers:
      - on-sync-status-unknown
    # subscription restricted to applications with matching labels only
    - recipients:
      - slack:test3
      selector: test=true
      triggers:
      - on-sync-status-unknown

Context Example

The following example shows how to add Context to the argocd-notification-cm using the default-notifications-configuration custom resource.

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration
spec:
 context:
  region: east
  environmentName: staging