DevOps / ArgoCD interview questions
How does ArgoCD handle notifications and what channels does it support?
ArgoCD Notifications is a separate controller (shipped as part of the ArgoCD Helm chart and optionally in the install manifest) that sends alerts and messages when ArgoCD Application events occur. It subscribes to Application state changes and triggers configured notification services when conditions are met.
The notification system has three components:
- Triggers: conditions that activate a notification (e.g.,
on-sync-succeeded,on-health-degraded,on-sync-failed). You can also write custom trigger expressions. - Templates: message content rendered as text or structured blocks (Slack attachments, email HTML). Templates use Go template syntax and have access to the Application object.
- Services: the channels where messages are sent. Configured in a Secret (
argocd-notifications-secret) and a ConfigMap (argocd-notifications-cm).
Supported notification channels include: Slack, Microsoft Teams, Email (SMTP), PagerDuty, OpsGenie, GitHub (commit status), Bitbucket, Grafana annotations, Rocketchat, Telegram, Webhook (generic HTTP), and more via community contributions.
# Subscribe an Application to a notification metadata: annotations: notifications.argoproj.io/subscribe.on-sync-failed.slack: my-deployments-channel notifications.argoproj.io/subscribe.on-health-degraded.pagerduty: "true"
Subscriptions are set as annotations on the Application resource. This means different teams can subscribe their applications to different channels without central coordination, and the configuration lives in Git alongside the Application manifest.
More Related questions...