ArgoCD Integration
Connect ArgoCD to TigerOps. GitOps sync events as deploy markers, application health change alerts, drift detection, and ArgoCD controller metrics — via the notifications controller.
How It Works
Enable ArgoCD Notifications
Deploy the argocd-notifications controller in your cluster and create the argocd-notifications-cm ConfigMap. This controller subscribes to ArgoCD application events and forwards them to external services.
Configure TigerOps Template
Add a webhook service pointing to the TigerOps Events API in the argocd-notifications-cm ConfigMap. Define notification templates for sync-succeeded, sync-failed, app-degraded, and app-health-degraded events.
Subscribe Applications
Annotate ArgoCD Application resources with notifications.argoproj.io/subscribe.on-sync-succeeded.tigerops: "" to enable notifications. Annotations can be applied to individual apps or set as defaults.
Sync Events & Health Appear
Every ArgoCD sync creates a deploy marker on TigerOps dashboards. Health degradation events trigger alerts. ArgoCD Prometheus metrics including sync duration and app health counts flow in automatically.
What You Get Out of the Box
GitOps Sync Event Markers
Successful and failed syncs create annotated markers on all TigerOps dashboards. Each marker includes the ArgoCD app name, revision, target revision, and the Git commit that triggered the sync.
Application Health Tracking
Health status transitions (Healthy → Degraded → Progressing) are forwarded as events to TigerOps. Health degradation events trigger alert rules and appear in the incident correlation timeline.
Sync Status Monitoring
OutOfSync, Synced, and Unknown sync status changes for all ArgoCD applications are tracked as metric time series. Drift detection alerts fire when an application remains out of sync beyond a threshold.
ArgoCD Prometheus Metrics
ArgoCD exposes built-in Prometheus metrics including sync duration histograms, app health gauges, and reconciliation counts. The TigerOps Collector scrapes these for controller performance monitoring.
Rollback Correlation
When ArgoCD rolls back an application, the rollback sync event is correlated with the metric change that preceded it. This creates an automatic change audit trail in TigerOps incident investigations.
Multi-Cluster Support
For multi-cluster ArgoCD installations, cluster name is included in the event payload. TigerOps dashboards can be filtered by cluster to see deploy events and health status per Kubernetes cluster.
ConfigMap Setup
Create the argocd-notifications-cm ConfigMap to start forwarding ArgoCD events to TigerOps.
# argocd-notifications-cm ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
namespace: argocd
data:
# TigerOps webhook service
service.webhook.tigerops: |
url: https://api.tigerops.io/v1/events
headers:
- name: Authorization
value: Bearer $tigerops-api-key
- name: Content-Type
value: application/json
# Notification templates
template.app-sync-succeeded: |
webhook:
tigerops:
method: POST
body: |
{
"event_type": "gitops.sync",
"service": "{{.app.metadata.name}}",
"environment": "production",
"attributes": {
"argocd.app.name": "{{.app.metadata.name}}",
"argocd.app.namespace":"{{.app.spec.destination.namespace}}",
"argocd.sync.status": "{{.app.status.sync.status}}",
"argocd.health": "{{.app.status.health.status}}",
"argocd.revision": "{{.app.status.sync.revision}}",
"argocd.server": "{{.context.argocdUrl}}"
}
}
template.app-health-degraded: |
webhook:
tigerops:
method: POST
body: |
{
"event_type": "gitops.health_degraded",
"service": "{{.app.metadata.name}}",
"severity": "warning",
"attributes": {
"argocd.app.name": "{{.app.metadata.name}}",
"argocd.health": "{{.app.status.health.status}}",
"argocd.health.msg": "{{.app.status.health.message}}"
}
}
# Default triggers for all applications
defaultTriggers: |
- on-sync-succeeded
- on-health-degraded
trigger.on-sync-succeeded: |
- when: app.status.sync.status == 'Synced'
send: [app-sync-succeeded]
trigger.on-health-degraded: |
- when: app.status.health.status == 'Degraded'
send: [app-health-degraded]
---
# Secret for TigerOps API key
apiVersion: v1
kind: Secret
metadata:
name: argocd-notifications-secret
namespace: argocd
stringData:
tigerops-api-key: "your-api-key"Common Questions
Which ArgoCD versions support the notifications controller?
The argocd-notifications controller is available as a standalone component for ArgoCD 1.x and 2.x. It is bundled with ArgoCD 2.3+ and enabled by default in ArgoCD 2.6+. The ConfigMap-based configuration works across all versions.
Do I need to annotate every ArgoCD Application separately?
No. You can set default subscriptions in the argocd-notifications-cm ConfigMap using the defaultTriggers key. This applies the TigerOps notification to all ArgoCD applications without per-app annotations.
Can I filter which applications send events to TigerOps?
Yes. Use notification annotations only on applications you want to track, or use ArgoCD Application selectors in the notifications controller config to apply subscriptions to apps matching specific labels.
How does TigerOps handle ArgoCD ApplicationSets?
Each application generated by an ApplicationSet is treated as an individual application in TigerOps. Events include the ApplicationSet name as an attribute so you can group events from the same ApplicationSet together.
Does TigerOps receive events from ArgoCD Image Updater?
ArgoCD Image Updater triggers a sync when it updates an image tag. This sync appears as a regular sync-succeeded event in TigerOps with the new image tag in the revision attribute, providing automated deploy tracking.
Correlate ArgoCD Syncs with Production Metrics
GitOps sync markers, health degradation alerts, drift detection — deploy one ConfigMap to connect ArgoCD.