apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/component: notifications-controller app.kubernetes.io/name: argocd-notifications-controller app.kubernetes.io/part-of: argocd name: argocd-notifications-cm namespace: argocd data: # The native telegram service of the notifications engine only supports # channels (@name) and negative group chat IDs; a positive private chat ID # like ours gets sent as "@" and fails with "chat not found". Workaround: # a generic webhook service against the Telegram Bot API, which accepts any # chat_id. The service is still named "telegram" so the subscribe annotations # read naturally. service.webhook.telegram: | url: https://api.telegram.org/bot$telegram-token/sendMessage headers: - name: Content-Type value: application/json template.app-sync-failed: | webhook: telegram: method: POST body: | {"chat_id": "5138407666", "text": {{toJson (printf "❌ ArgoCD: %s sync fallido\n%s" .app.metadata.name (or .app.status.operationState.message ""))}}} template.app-degraded: | webhook: telegram: method: POST body: | {"chat_id": "5138407666", "text": {{toJson (printf "⚠️ ArgoCD: %s degradada\nHealth: %s" .app.metadata.name .app.status.health.status)}}} trigger.on-sync-failed: | - when: app.status.operationState != nil && app.status.operationState.phase in ['Error', 'Failed'] send: [app-sync-failed] trigger.on-health-degraded: | - when: app.status.health.status == 'Degraded' send: [app-degraded]