알림 구독

알림 구독 (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 필드를 사용해 전역으로 구성할 수 있습니다. 기본 구독은 모든 애플리케이션에 적용됩니다. 트리거와 애플리케이션은 triggersselector 필드로 구성할 수 있습니다:

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

더 알아보기 (Learn more)