Argo CD knows what is running right now, and keeps a short window of what came before. It is not built to answer what changed in this cluster three weeks ago, or which sync preceded last month's incident. Kollaber records each sync as a timeline event, so the history stays after Argo has moved on.
Argo CD builds the request body from a template you write, so the body below is the contract. Add both blocks to argocd-notifications-cm.
service.webhook.kollaber: |
url: https://kollaber.io/webhooks/argocd?environment_id=<uuid>
headers:
- name: X-Kollaber-Secret
value: $kollaber-webhook-secret
template.kollaber-sync: |
webhook:
kollaber:
method: POST
body: |
{
"app": "{{.app.metadata.name}}",
"revision": "{{.app.status.sync.revision}}",
"sync_status": "{{.app.status.sync.status}}",
"health_status": "{{.app.status.health.status}}",
"operation_phase": "{{.app.status.operationState.phase}}",
"project": "{{.app.spec.project}}",
"namespace": "{{.app.spec.destination.namespace}}"
}Annotate the Application you want recorded. Any trigger works; on-sync-succeeded is the usual starting point.
notifications.argoproj.io/subscribe.on-sync-succeeded.kollaber: ""
The next successful sync lands on the environment timeline with the revision and health attached.
No. It is an additional service in the same notifications config, so your existing Slack or email subscriptions keep working unchanged.
Define one webhook service per environment, each with its own environment_id in the URL, and subscribe applications to the matching one.
Subscribe on-sync-failed to the same service. The operation phase drives the event status, so a failed sync is recorded as a failed change and feeds change failure rate.
The free plan covers two environments and five members. The full reference for this integration lives in the docs.