Mattermost

Mattermost

이 알림 서비스는 Mattermost 서버에 알림을 보내요. 봇 계정의 토큰과 서버 URL을 설정하고, Slack과 호환되는 attachments 형식으로 메시지를 꾸밀 수 있어요. Mattermost 템플릿은 Slack의 attachments와 호환되므로 Slack 템플릿을 재사용하기 좋아요.

출처: 문서

본문

파라미터 (Parameters)

  • apiURL — 서버 URL, 예: https://mattermost.example.com
  • token — 봇 토큰
  • insecureSkipVerify — 선택 사항(bool), true 또는 false
  • maxIdleConns — 선택 사항, 모든 호스트에 걸친 최대 유휴(keep-alive) 연결 수
  • maxIdleConnsPerHost — 선택 사항, 호스트당 최대 유휴(keep-alive) 연결 수
  • maxConnsPerHost — 선택 사항, 호스트당 최대 총 연결 수
  • idleConnTimeout — 선택 사항, 유휴(keep-alive) 연결이 닫히기 전에 유지되는 최대 시간, 예: '90s'

설정 (Configuration)

  1. 봇 계정을 만들고 생성 후 토큰을 복사해요. 1
  2. 팀을 초대해요(invite team). 2
  3. argocd-notifications-secret Secret에 토큰을 저장하고 argocd-notifications-cm ConfigMap에 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
  1. 채널 id를 복사해요. 4
  2. 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)로 구성된 메시지를 만들 수 있어요.

더 알아보기 (Learn more)

  • 구독 — Mattermost 채널에 알림을 연결하는 방법.
  • 템플릿 — 알림 메시지·attachments 작성법.