알림 구독
알림 구독 (Notification subscriptions)
애플리케이션 이벤트에 대한 알림 구독을 어노테이션으로 정의하는 방법을 설명해요. 애플리케이션 단위는 물론 프로젝트 전체에 구독을 적용할 수 있습니다.
출처: 문서
본문
Argo CD 애플리케이션 이벤트에 대한 구독은 notifications.argoproj.io/subscribe.<trigger>.<service>: <recipients> 어노테이션으로 정의할 수 있습니다. 예를 들어 다음 어노테이션은 Argo CD 애플리케이션의 성공적인 동기화마다 두 Slack 채널에 알림을 구독합니다:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
notifications.argoproj.io/subscribe.on-sync-succeeded.slack: my-channel1;my-channel2
어노테이션 키는 다음 부분으로 구성됩니다:
on-sync-succeeded- 트리거(trigger) 이름slack- 알림 서비스 이름my-channel1;my-channel2- 세미콜론으로 구분된 수신자 목록
AppProject CRD에 동일한 어노테이션을 추가하면 Argo CD 프로젝트의 모든 애플리케이션에 대해 구독을 생성할 수 있습니다:
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
annotations:
notifications.argoproj.io/subscribe.on-sync-succeeded.slack: my-channel1;my-channel2
기본 구독 (Default Subscriptions)
구독은 argocd-notifications-cm ConfigMap의 subscriptions 필드를 사용해 전역으로 구성할 수 있습니다. 기본 구독은 모든 애플리케이션에 적용됩니다. 트리거와 애플리케이션은 triggers와 selector 필드로 구성할 수 있습니다:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
data:
# Contains centrally managed global application subscriptions
subscriptions: |
# subscription for on-sync-status-unknown trigger notifications
- recipients:
- slack:test2
- email:[email protected]
triggers:
- on-sync-status-unknown
# subscription restricted to applications with matching labels only
- recipients:
- slack:test3
selector: test=true
triggers:
- on-sync-status-unknown
구독에서 웹훅을 사용하려면 recipients에 커스텀 이름을 저장해야 합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
data:
service.webhook.: |
(snip)
subscriptions: |
- recipients:
-
triggers:
- on-sync-status-unknown