๋ค์ด๊ฐ๋ฉฐ
์ฌ๋ด์์ ๋ฐฐํฌ ์๋ํ๋ก ArgoCD๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ Sync๋ฅผ ๋ง์ถ๋ ์์ ์ ํ ๋์ ๋์์ ์์ ์ ์ํํ ์๋ ์๋ ์ฐ๋ ค๊ฐ ์์์ต๋๋ค.
๊ทธ๋์ ๋๊ตฐ๊ฐ Sync๋ฅผ ๋ง์ถ๋ ์์ ์ ํ ๋๋ ์๋ฃ๋์์๋, ์คํจํ์์๋, ํ๋๊ฐ ์ฃฝ์์ ๋ ์ฌ๋์ ํตํด ์๋ฆผ์ ๋ณด๋ด๋ ์ค์ ์ ํ์์ต๋๋ค.
How To Setting
Slack
๋จผ์ Slack์์ ์๋ก์ด ์ฑ์ ๋ง๋ญ๋๋ค.
Create an App > From scratch ๋ฒํผ์ ๋๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์์ฑํ ํ ์ผ์ชฝ ๋ฉ๋ด์ OAuth & Permissions ๋ฉ๋ด์ ์ ๊ทผํฉ๋๋ค.
Scopes > Bot Token Scopes์์ chat:writ ๊ธฐ๋ฅ์ ํ์ฑํํฉ๋๋ค.
๊ทธ ํ ์๋จ์ผ๋ก ์ด๋ํ์ฌ Install To Workspace ์ ์งํํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์์ ๊ฐ์ด Bot User OAuth Token ์ด ๋ฐ๊ธ๋๊ฒ ๋ฉ๋๋ค.
๊ทธ ํ ์ฌ๋์์ ํด๋น ์ฑ์ ์ถ๊ฐํด์ค๋๋ค.
ArgoCD
[ ]
์ผ๋ก ๋์ด์๋ ์นธ์ ์ง์ ์
๋ ฅํด์ผํ๋ ๊ฐ์
๋๋ค.
$ kubectl apply -f https://raw.githubusercontent.com/argoproj-labs/argocd-notifications/release-1.0/manifests/install.yaml -n [argoCD namespace]
$ kubectl apply -f https://raw.githubusercontent.com/argoproj-labs/argocd-notifications/release-1.0/catalog/install.yaml -n [argoCD namespace]
์์ ๋ช ๋ น์ด๋ฅผ ์คํ ์์ผ ArgoCD Notification์ manifests ํ์ผ๊ณผ catalog ํ์ผ์ ์ ์ฉํฉ๋๋ค.
argocd-notifications-secret
apiVersion: v1
kind: Secret
metadata:
name: argocd-notifications-secret
stringData:
slack-token: [Bot User OAuth Token]
argocd-nofitications-cm
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
namespace: argocd
data:
service.slack: |
token: $slack-token
$ kubectl edit cm argocd-notifications-cm -n ${argocd_namespace}
์์ ๋ช ๋ น์ด ์คํ ํ
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
namespace: argocd
data:
service.slack: |
token: [Bot User OAuth Token]<- ์ด ๋ถ๋ถ ์์ฑ
argocd-notification check
ArgoCD Configmap์์ notificatoin์ด ์ค์ ๋์ด์๋์ง ์ฒดํฌํ๊ธฐ ์ํด ArgoCD๊ฐ ๋ฐฐํฌ๋์ด์๋ namespace๋ก ์ด๋ํ์ฌ ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
$ kubectl edit cm
์์ ์ด๋ฏธ์ง์ฒ๋ผ argocd-notifications-cm ๊ฐ ๋ฑ๋ก๋์ด์๋ค๋ฉด ์ ์ค์ ๋์ด ์๋ ๊ฒ์ ๋๋ค!
๊ทธ ํ ArgoCD๊ฐ ํน์ ํ ์ก์ ์ ํ ์์ ์๋ฆผ์ ๋ฐ๊ธฐ ์ํด ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋๋ค.
$ kubectl patch app [app name] -n [argoCD Namespace] -p '{"metadata": {"annotations": {"notifications.argoproj.io/subscribe.on-sync-succeeded.slack":"[slack chanel name"}}}' --type merge
ArgoCD Notification List
Sync๊ฐ ์ฑ๊ณตํ์ ๋ ์๋ฆผ
notifications.argoproj.io/subscribe.on-sync-succeeded.slack
Sync๊ฐ ์คํจํ์ ๋ ์๋ฆผ
notifications.argoproj.io/subscribe.on-sync-failed.slack
Sync๊ฐ ์งํ์ค์ผ ๋ ์๋ฆผ
notifications.argoproj.io/subscribe.on-sync-running.slack
Sync ์ํ๊ฐ Unknown์ผ ๋ ์๋ฆผ
notifications.argoproj.io/subscribe.on-sync-status-unknown.slack
Health๊ฐ Degrade ๋์์ ๋ ์๋ฆผ
notifications.argoproj.io/subscribe.on-health-degraded.slack
Deploy ๋์์ ๋ ์๋ฆผ
notifications.argoproj.io/subscribe.on-deployed.slack
Finish
์์ ์ค์ ์ ๋ชจ๋ ์๋ฃํ๋ฉด ์ ์์ ์ผ๋ก Slack ์ฑ๋์ ํตํด noti๊ฐ ์ค๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค!