ArgoCD ๐Ÿค Slack

ํ™ฉ์—ฐ์ค€ยท2024๋…„ 10์›” 15์ผ

Lambda Service ๋ฐฑ์—”๋“œ ์ธํ„ด

๋ชฉ๋ก ๋ณด๊ธฐ
1/9
post-thumbnail

Slack๊ณผ ์—ฐ๋™ํ•ด๋ณด์ž

https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/slack/

๋„์ž… ์ด์œ 

degraded ์ƒํƒœ pod๋ฅผ ๊ณ„์†ํ•ด์„œ ์ƒ์„ฑํ•˜๋Š” ์ƒํ™ฉ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.
rancher์— ๋“ค์–ด๊ฐ€์„œ log๋ฅผ ๋ถ„์„ํ•ด๋ณด๋‹ˆ, disk pressure๊ฐ€ ์ด์œ ์˜€๋‹ค.

  1. Django BE์—์„œ sentence-transformer dependency๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ECR ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ 6GB๋ฅผ ๋„˜์–ด๊ฐ„๋‹ค..! node์˜ ์šฉ๋Ÿ‰์„ ํ›Œ์ฉ ๋›ฐ์–ด๋„˜๋Š” ํฌ๊ธฐ๋ผ disk pressure๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค. (rancher ๋•๋ถ„์— ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.)
  2. ephemeral storage๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ec2(node)์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค ์šฉ๋Ÿ‰์„ ๋„˜์–ด๊ฐ€์„œ ๊ฑฐ์˜ 4๋ฒˆ์— 1๋ฒˆ์”ฉ degraded์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. (kubectl ๋ช…๋ น์–ด๋กœ /bin/sh ํ™•์ธ)
    ์‹ค์ œ ์šฉ๋Ÿ‰์€ ์ถฉ๋ถ„ํžˆ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ž์ฒด์ ์œผ๋กœ limit์ด ๊ฑธ๋ ค์žˆ์–ด์„œ ํ•œ๊ณ„ ์šฉ๋Ÿ‰์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด degraded ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ํ•„์š”๋ฅผ ๋А๋‚€๋‹ค.

์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ง์ ‘ argocd์— ๋“ค์–ด๊ฐ€์„œ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.
๋”ฐ๋ผ์„œ, ์ž๋™์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด slack๊ณผ ์—ฐ๋™ํ•˜๋„๋ก ๊ฒฐ์ •ํ–ˆ๋‹ค.
์œ„ argocd ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด์„œ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

๋„์ž… ๋ฐฉ๋ฒ•

  • ์œ„ ๋งํฌ์—์„œ ๋ฐ”๋กœ slack notification ์„ค์ •์„ ๋ณด๊ธฐ ๋ณด๋‹ค๋Š”, Overview๋ถ€ํ„ฐ ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

  • https://api.slack.com/apps?new_app=1 ์— ๋“ค์–ด๊ฐ€์„œ slack app์„ ์ƒ์„ฑํ•ด์ค€๋‹ค.

  • chat bot์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. chat:write:user๋กœ ์ปค์Šคํ…€ ๋ฉ”์„ธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

  • ์ƒ์„ฑํ•œ app์„ ์•Œ๋ฆผ์„ ์›ํ•˜๋Š” slack ์ฑ„๋„์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. (app์ด slack์— ํ‘œ์‹œ๋  ๋•Œ ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆฐ๋‹ค. ์ธ๋‚ด์‹ฌ์„ ๊ฐ€์ง€์ž.๐Ÿ˜‚ )

  • OAuth & Permissions ์—์„œ OAuth Access Token์„ ๋ณต์‚ฌํ•ด์ค€๋‹ค. ( ์ด ํ† ํฐ์€ ์ถ”ํ›„์— argocd-notifications-secret์— ์ €์žฅํ•ด์ค˜์•ผํ•œ๋‹ค.

  • ๋ณต์‚ฌํ•œ Token์„ argocd-notifications-secret์— ์ €์žฅํ•ด์ค€๋‹ค. ๋ฌธ์„œ์—์„œ๋Š” StringData๋กœ ์ €์žฅํ•˜๋ผ๊ณ  ํ•œ๋‹ค. ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ edit์„ ์—ด์–ด๋ณด๋ฉด ์ž๋™์œผ๋กœ data ํ˜•์‹์œผ๋กœ base64 ์ธ์ฝ”๋”ฉ ๋˜์–ด์žˆ๋‹ค. ์–ด์ฐจํ”ผ, base64๋กœ ์ธ์ฝ”๋”ฉ๋œ token์„ decodingํ•˜์—ฌ ์ ์šฉ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ๋‹นํ™ฉํ•˜์ง€ ๋ง์ž ๐Ÿ”.

  • ์ด์ œ๋Š” ConfigMap์„ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. argocd-notifications-cm์— ๋“ค์–ด๊ฐ€์„œ $slack-token์œผ๋กœ token์„ ๋ฐ›์•„์˜ค์ž.

  • ์•Œ๋ฆผ์„ ์›ํ•˜๋Š” application์— ๋“ค์–ด๊ฐ€์„œ patch๋ฅผ ์ง„ํ–‰ํ•ด์ค€๋‹ค. ํ•„์ž๋Š” sync succeeded, running, failed ๊ทธ๋ฆฌ๊ณ  subscribe on-health-degraded, on-deployed, on-sync-status-unknown์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

์•Œ๋ฆผ์ด ์ž˜ ์˜จ๋‹ค !! ๐Ÿ“ข

0๊ฐœ์˜ ๋Œ“๊ธ€