Thiết lập Thông báo Slack của ArgoCD

Jan 12 2023
Nhận thông báo cho tất cả các bước di chuyển Argo của bạn :) 1- Tạo ứng dụng Slack bằng URL bên dưới. Sau đó chọn “Từ đầu” Điền tên Ứng dụng, chẳng hạn như “argocd” và chọn không gian làm việc Slack của bạn như bên dưới.

Nhận thông báo cho tất cả các bước di chuyển Argo của bạn :)

ArgoCD gửi thông báo đến Slack

1- Tạo ứng dụng Slack bằng URL bên dưới.

https://api.slack.com/apps?new_app=1

Sau đó chọn “Từ đầu”

Điền vào Tên ứng dụng, chẳng hạn như “argocd” và chọn không gian làm việc Slack của bạn như bên dưới.

Sau khi ứng dụng được tạo, điều hướng đếnEnter OAuth & Permissions & Choose Permissions

Bây giờ, hãy thêm một phạm vi cho Bot này (ứng dụng argocd), vì vậy hãy chọn Hai phạm vi trong thời gian này.

quyền bot

Khi Phạm vi được định cấu hình, Cuộn trở lại trên cùng, nhấp vào nút 'Cài đặt Ứng dụng vào Không gian làm việc' và xác nhận Cài đặt.

Sau khi cài đặt hoàn tất, hãy sao chép mã thông báo OAuth.

Sao chép Mã thông báo xác thực và giữ nó ở nơi an toàn.

2- Bây giờ Tạo Kênh Slack - ví dụ argocd

Quan trọng- Duyệt qua kênh argocd của bạn và thêm bot bạn đã tạo ở bước trước, trong trường hợp này, tên bot là “argocd”

### Nếu bạn quên thêm phần này, bạn sẽ KHÔNG nhận được thông báo. ###

Thêm Bot của bạn vào kênh Slack của bạn nếu bạn muốn nhận thông báo

Sau khi thêm Bot vào kênh Slack. Chúng tôi cần thực hiện một số thay đổi đối với tệp cấu hình ArgoCD của mình .

3- Thay đổi cấu hình ArgoCD.

Giả sử mã thông báo chậm của bạn là — xoxp-12345678912345–5467834251-jGQASEDJGNCDDHTIv9ZcY

Trong cấu hình argocd của bạn, hãy tìm phần Secret argocd-notifications-secret.

apiVersion: v1
kind: Secret
metadata:
  name: argocd-notifications-secret
stringData:
  slack-token: "xoxp-12345678912345–5467834251-jGQASEDJGNCDHTIv9ZcY"

Ứng tuyển ngay bây giờ—

kubectl apply -f argocd-notifications-secret.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-notifications-cm
data:
  service.slack: |
    token: $slack-token  # use as it is 
  defaultTriggers: |
    - on-deployed
  trigger.on-deployed: |
    - description: Application is synced and healthy. Triggered once per commit.
      oncePer: app.status.operationState.syncResult.revision
      send:
      - app-deployed
      when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy' and app.status.sync.status == 'Synced'
  template.app-deployed: |
    message: |
      {{if eq .serviceType "slack"}}:white_check_mark:{{end}} 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.sync.status}}",
            "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}}
          ]
        }]

Đăng ký ngay bây giờ -

kubectl apply -f argocd-notifications-cm.yaml

Mở tệp ứng dụng dịch vụ của bạn, chẳng hạn như tệp bên dưới và thêm chú thích chùng.

annotations:
   notifications.argoproj.io/subscribe.on-deployed.slack: argocd  #Slack Channel name
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: ms-echoserver-application  
  namespace: argocd
  annotations:
    notifications.argoproj.io/subscribe.on-deployed.slack: argocd  #Slack Channel name
    
    argocd-image-updater.argoproj.io/image-list: myalias=gcr.io/project01/ms-echoserver:dev     #Write repository name
    argocd-image-updater.argoproj.io/myalias.pull-secret: pullsecret:argocd/argocd-gcr-secret  # You can remove this annotation if you have already configured the gcr secret and are using the same secret to retrieve all GCR images in your deployments.
    argocd-image-updater.argoproj.io/myalias.update-strategy: digest #There are several ways to update the image, but I'm using digest.
    argocd-image-updater.argoproj.io/write-back-method: git  # We don't need the secret as mentioned in argocd doc because we already set it up via argocd console if you're using the same git repo.
    argocd-image-updater.argoproj.io/git-branch: main 
    argocd-image-updater.argoproj.io/myalias.force-update: "true"

Kiểm tra -

Bây giờ hãy triển khai dịch vụ của bạn và kiểm tra thông báo. Tôi đang triển khai ms-echoserver-application.

chậm thông báo

Nhấp vào đây-

Hướng dẫn thiết lập tất cả trong một của ArgoCD.

ArgoCD High Availability (HA) [Sẵn sàng sản xuất].

Thiết lập xâm nhập ArgoCD

Cài đặt ArgoCD Okta.

Trình cập nhật hình ảnh ArgoCD

Móc tài nguyên ArgoCD.

Tôi hy vọng bài viết này là thông tin và hữu ích cho bạn :)

By me a Coffee ← — — — Nếu bạn thích blog, vui lòng cho tôi một Vỗ tay :) và Theo dõi tôi để biết thêm nội dung như vậy.

Tiếng vỗ tay của bạn thúc đẩy tôi tiếp tục viết những blog như vậy.