Argo CD에서 수동으로 웹후크 구성
Argo CD에서 웹후크를 구성하여 DevOps 변경 속도 애플리케이션에 동기화 알림을 보냅니다.
시작하기 전에
필요한 역할: Argo CD admin
이 태스크 정보
Argo CD 애플리케이션 이벤트에 대한 구독은 notifications.argoproj.io/subscribe.<trigger>.<service>: <recipient> 주석을 사용하여 정의할 수 있습니다.
프로시저
-
Argo CD에서 ConfigMap: argocd-notifications-cm.yaml을 업데이트하여 로 전송되는 알림을 설정합니다.DevOps 변경 속도
apiVersion: v1 kind: configMap metadata: name: argocd-notifications-cm namespace: default data: context: | argocdUrl: "https://<argocdURL>" service.webhook.sn_devops_argocd: | url: https://<instance>.service-now.com/api/sn_devops/v2/devops/tool/orchestration?toolId=<toolId> basicAuth: #optional username password username: "" password: "" template.app-sync-succeeded: | webhook: sn_devops_argocd: method: POST body: | { "titleLink" : "http://<argocdURL>/applications/{{.app.metadata.name}}", "syncStatus" : "{{.app.status.sync.status}}", "repo" : "{{.app.spec.source.repoURL}}", "revision": "{{.app.status.sync.revision}}", "path": "/repos/{{call .repo.FullNameByRepoURL .app.spec.source.repoURL}}/statuses/{{.app.status.operationState.operation.sync.revision}}", "commitAuthor" : "{{(call .repo.GetCommitMetadata .app.status.sync.revision).Author}}", "commitMessage" : "{{(call .repo.GetCommitMetadata .app.status.sync.revision).Message}}", "commitTags" : "{{(call .repo.GetCommitMetadata .app.status.sync.revision).Tags}}", "startedAt" : "{{.app.status.operationState.startedAt}}", "finishedAt" : "{{.app.status.operationState.finishedAt}}", "message": "{{.app.metadata.name}} app is synced" } trigger.on-sync-status-unknown: | - description: Application status is 'Unknown' send: - app-sync-status-unknown when: app.status.sync.status == 'Unknown' trigger.on-sync-succeeded: | - description: Application syncing has succeeded send: - app-sync-succeeded when: app.status.operationState.phase in ['Succeeded'] subscriptions: | - recipients: - sn_devops_argocd triggers: - on-sync-succeeded - on-sync-status-unknown - 웹후크를 구성 중인 Argo CD 앱을 엽니다.
- 앱 상세 정보 > 요약으로 이동합니다.
-
트리거 조건과 함께 notifications.argoproj.io/subscribe.<trigger>.<service>: <recipient> 주석을 추가하여 인스턴스의 변경 상태를 동기화합니다.
예를 들면 notifications.argoproj.io/subscribe.on-sync-succeeded.sn_devops_argocd 입니다.