argocdUrl: https://@ARGOCD_URL@ secret: create: false notifiers: service.slack: | token: $ncsa-slack-token signingSecret: $ncsa-slack-signing triggers: defaultTriggers.slack: | - on-deployed - on-health-degraded - on-sync-failed - on-sync-status-unknown - on-sync-succeeded - on-sync-needs-update #bots: # enabled: true # templates/triggers inserted at the end templates: template.app-sync-needs-update: | email: subject: Application {{.app.metadata.name}} is out of sync. message: | {{if eq .serviceType "slack"}}:warning:{{end}} Application {{.app.metadata.name}} is out of sync. Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}. {{if ne .serviceType "slack"}} {{range $c := .app.status.conditions}} * {{$c.message}} {{end}} {{end}} slack: attachments: | [{ "title": "{{ .app.metadata.name}}", "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", "color": "#F4C030", "fields": [ { "title": "Sync Status", "value": "{{.app.status.sync.status}}", "short": true }, { "title": "Repository", "value": "{{.app.spec.source.repoURL}}", "short": true } {{range $index, $c := .app.status.conditions}} {{if not $index}},{{end}} {{if $index}},{{end}} { "title": "{{$c.type}}", "value": "{{$c.message}}", "short": true } {{end}} ] }] teams: facts: | [{ "name": "Sync Status", "value": "{{.app.status.sync.status}}" }, { "name": "Repository", "value": "{{.app.spec.source.repoURL}}" } {{range $index, $c := .app.status.conditions}} {{if not $index}},{{end}} {{if $index}},{{end}} { "name": "{{$c.type}}", "value": "{{$c.message}}", } {{end}} ] potentialAction: |- [{ "@type":"OpenUri", "name":"Open Application", "targets":[{ "os":"default", "uri":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}" }] }, { "@type":"OpenUri", "name":"Open Repository", "targets":[{ "os":"default", "uri":"{{.app.spec.source.repoURL | call .repo.RepoURLToHTTPS}}" }] }] title: Application {{.app.metadata.name}} is out of sync. trigger.on-sync-needs-update: | - description: Application is out of sync send: - app-sync-needs-update when: app.status.sync.status == 'OutOfSync'