-
K3S로 프로젝트 구성하기 - 6DevOps/K8s 2023. 6. 8. 22:40
빌드,이미지 생성, 배포시 슬랙 메시지 적용
1. 젠킨스 적용
1-1 슬랙 접속
아래 앱에서 앱추가를 클릭하여 Jenkins를 입력한다.
앱을 추가해준다.
원하는 채널에 추가한다.
이후 페이지에서 Integration Token Credential ID 를 복사한다.
1-2 젠킨스에 슬랙 플러그인 설치
1-3 젠킨스에 슬랙토큰 입력
이전에 복사한 토큰 정보 입력
1-4 젠킨스 설정에 슬랙 정보 설정
1-5 프로젝트에 슬랙알림 설정
advance를 눌러서 커밋 내용과 추가 정보를 설정할 수 있다.
프로젝트가 현재 두개로 생성 되었기때문에 둘다 설정해준다.
빌드시 다음과같이 메시지 알림이 오는지 확인해본다.
2. argoCD 적용
2-1 슬랙에 새로운 앱 만들기
https://api.slack.com/apps?new_app=1
Create New App -> From scratch클릭
위 링크 클릭후 방금 생성한 앱을 클릭 -> OAuth & Permissions 클릭
토큰 복사 해두기
아래로 스크롤 후 Scope에서 add an OAuth Scope에 chat:write 를 추가한다.
2-2 슬랙토큰 입력
입력전 확인 해봐야할 것.
// argocd 네임스페이스로 이동 k ns argocd // notification-controller가 있는지 확인 // 전에 helm으로 설치하니 이미 같이 install 되어있었다. k get deployments.apps
// 이미 생성되어있는경우 수정한다. // 아닌경우 새로운 yaml을 생성해서 적용해야한다. k edit secret argocd-notifications-secret apiVersion: v1 kind: Secret metadata: name: argocd-notifications-secret // 수정할 부분 start stringData: slack-token: 위에서 복사한 슬랙 토큰 // 수정할 부분 end
2-2 configmap 수정
템플릿에 메시지 커스텀, 기본 트리거로만 슬랙알림 설정
k edit configmap argocd-notifications-cm apiVersion: v1 data: context: | argocdUrl: // 수정할 부분 start defaultTriggers: | - on-deployed service.slack: | token: $slack-token template.app-deployed: | message: | Application {{.app.metadata.name}} is now running new version of deployments manifests. slack: attachments: | [{ "title": "{{ .app.metadata.name}}", "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", "color": "#18be52", "fields": [ { "title": "Sync Status", "value": "{{.app.status.operationState.phase}}", "short": true }, { "title": "Repository", "value": "{{.app.spec.source.repoURL}}", "short": true }, { "title": "Revision", "value": "{{.app.status.sync.revision}}", "short": true } {{range $index, $c := .app.status.conditions}} {{if not $index}},{{end}} {{if $index}},{{end}} { "title": "{{$c.type}}", "value": "{{$c.message}}", "short": true } {{end}} ] }] trigger.on-deployed: | - description: Application is synced and healthy. Triggered once per commit. send: - app-deployed when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy' // 수정할 부분 end kind: ConfigMap
2-3 슬랙알림 보낼 어플 설정
// slack 알림을 보낼 어플에 설정 kubectl patch app ecommerce-dev -n argocd -p '{"metadata": {"annotations": {"notifications.argoproj.io/subscribe.on-deployed.slack":"cd-pods"}}}' --type merge
argoCD에서 Sync수동시 sync버튼 클릭 or 자동 이면 슬랙에 알림 전달 된다.
'DevOps > K8s' 카테고리의 다른 글
K8S HA(멀티 마스터 노드) 구성하기 (0) 2023.10.16 K3S로 프로젝트 구성하기 - 7 (0) 2023.06.20 K3S로 프로젝트 구성하기 - 5 (0) 2023.06.08 K3S로 프로젝트 구성하기 - 4 (0) 2023.06.08