argocd mail notification 설정을 적용한다.
1. ArgoCD Notifications 템플릿 적용
아래 커맨드를 통해 argocd-notifications-cm에 메일 템플릿을 적용한다.
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-notifications/stable/catalog/install.yaml
※ 주의
기본 제공되는 yaml 파일은 단일 소스 설정만 지원하기에, 멀티소스에서 사용하기 위해서는 argocd-notifications-cm ConfigMap을 수정해야 한다. 수정 없이 멀티 소스 설정에서 사용하면 다음과 같은 오류가 발생한다.
time="2024-09-07T15:50:12Z" level=error msg="Failed to notify recipient {gmail kyeongseo96@gmail.com} defined in resource argocd/mlflow-application: template: app-sync-running:14:40: executing \"app-sync-running\" at <call .repo.RepoURLToHTTPS>: error calling call: arg 0: value is nil; should be of type string using the configuration in namespace argocd" resource=argocd/mlflow-application
2. Multi-Sources 사용을 위한 argocd-notifications-cm ConfigMap 수정
멀티 소스 설정을 사용하는 경우, 다음 단계를 따라 ConfigMap을 수정한다.
2-1. 아래 커맨드를 사용해 ConfigMap 편집 모드에 진입한다.
kubectl edit -n argocd cm argocd-notifications-cm
2-2. 모든 템플릿에서 다음 부분을 찾아 삭제한다.
"uri":"{{.app.spec.source.repoURL | call .repo.RepoURLToHTTPS}}"
3. argocd-notifications-cm에 SMTP 정보를 추가한다.
3-1. 아래 커맨드를 사용해 ConfigMap 편집 모드에 진입한다.
kubectl edit -n argocd cm argocd-notifications-cm
3-2. Gmail SMTP 설정
service.email.gmail에서 gmail은 SMTP 서비스의 식별자로 임의로 이름을 지정할 수 있다. 여러 SMTP 설정을 사용할 경우 이 식별자를 통해 각 설정을 구분한다.
apiVersion: v1
data:
service.email.gmail: |
host: smtp.gmail.com
port: 587
username: kyeongseo96@gmail.com
password: 앱비밀번호 입력
from: kyeongseo96@gmail.com
3-3. 커스텀 SMTP 서버 설정
service.email.mysmtp에서 mysmtp는 SMTP 서비스의 식별자로 임의로 이름을 지정할 수 있다. 여러 SMTP 설정을 사용할 경우 이 식별자를 통해 각 설정을 구분한다.
apiVersion: v1
data:
service.email.mysmtp: |
host: 10.0.1.118
port: 1025
from: kyeongseo.oh@data-dynamics.io
4. argocd application에서 notification 설정을 진행한다.
4-1. UI에서 notification 설정
1. Application 탭 클릭 후 notification을 설정하려는 Application을 클릭한다.
2. DETAILS 버튼을 클릭한 후 SUMMARY 탭에서 EDIT 버튼을 클릭한다.
3. NOTIFICATION SUBSCRIPTIONS에서 각 이벤트에 따라 알람을 설정한다.
4-2. yaml에서 notification 설정
Application yaml 파일에 metadata.annotations에 notification 설정을 추가한다. on-sync-running.gmail의 gmail은 3-2에서 설정한 gmail smtp 식별자이다.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
notifications.argoproj.io/subscribe.on-sync-running.gmail: kyeongseo96@gmail.com
notifications.argoproj.io/subscribe.on-sync-succeeded.gmail: kyeongseo96@gmail.com
5. Mail Notification 확인
메일로 notification이 오는 것을 확인한다.
'kubenetes' 카테고리의 다른 글
CRI-O 환경에서 Podman, Ping, Audit 관련 이슈 해결 가이드 (0) | 2024.09.19 |
---|---|
Kubernetes에서 Spark 사용하기: spark operator를 이용한 spark on kubernetes 설정 및 사용 방법 (0) | 2024.09.09 |
Kubernetes 환경에서 ArgoCD를 활용한 MLflow Helm 차트 배포: GitOps 및 Private Harbor 활용 (1) | 2024.09.05 |
kubernetes에서 private harbor 이미지 pull 하는 방법 (0) | 2024.09.04 |
tekton 설치 (0) | 2024.08.29 |
댓글