Mattermost
Mattermost
이 알림 서비스는 Mattermost 서버에 알림을 보내요. 봇 계정의 토큰과 서버 URL을 설정하고, Slack과 호환되는 attachments 형식으로 메시지를 꾸밀 수 있어요. Mattermost 템플릿은 Slack의 attachments와 호환되므로 Slack 템플릿을 재사용하기 좋아요.
출처: 문서
본문
파라미터 (Parameters)
apiURL— 서버 URL, 예: https://mattermost.example.comtoken— 봇 토큰insecureSkipVerify— 선택 사항(bool), true 또는 falsemaxIdleConns— 선택 사항, 모든 호스트에 걸친 최대 유휴(keep-alive) 연결 수maxIdleConnsPerHost— 선택 사항, 호스트당 최대 유휴(keep-alive) 연결 수maxConnsPerHost— 선택 사항, 호스트당 최대 총 연결 수idleConnTimeout— 선택 사항, 유휴(keep-alive) 연결이 닫히기 전에 유지되는 최대 시간, 예:'90s'
설정 (Configuration)
- 봇 계정을 만들고 생성 후 토큰을 복사해요.

- 팀을 초대해요(invite team).

argocd-notifications-secretSecret에 토큰을 저장하고argocd-notifications-cmConfigMap에 Mattermost 통합을 설정해요.
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
data:
service.mattermost: |
apiURL: <api-url>
token: $mattermost-token
apiVersion: v1
kind: Secret
metadata:
name: <secret-name>
stringData:
mattermost-token: token
- 채널 id를 복사해요.

- Mattermost 통합을 위한 구독(subscription)을 생성해요.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
notifications.argoproj.io/subscribe.<trigger-name>.mattermost: <channel-id>
템플릿 (Templates)

Slack의 템플릿을 재사용할 수 있어요. Mattermost는 Slack의 attachments와 호환돼요. Mattermost 통합 가이드를 참고하세요.
template.app-deployed: |
message: |
Application {{.app.metadata.name}} is now running new version of deployments manifests.
mattermost:
attachments: |
[{
"title": "{{.app.metadata.name}}",
"title_link": "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
"color": "#18be52",
"fields": [{
"title": "Sync Status",
"value": "{{.app.status.sync.status}}",
"short": true
}, {
"title": "Repository",
"value": "{{.app.spec.source.repoURL}}",
"short": true
}]
}]
mattermost.attachments 필드에 JSON 배열을 넣어 제목·링크·색상·필드(예: Sync Status, Repository)로 구성된 메시지를 만들 수 있어요.