Móc tài nguyên ArgoCD.
Đã trợ giúp trong thiết lập E2E
Một số trường hợp sử dụng hook là:
A- Trước khi triển khai phiên bản mới của ứng dụng, hãy sử dụng hook PreSync để thực hiện di chuyển lược đồ cơ sở dữ liệu.
B- Sử dụng móc nối Đồng bộ hóa để sắp xếp một triển khai phức tạp đòi hỏi sự phức tạp hơn so với chiến lược cập nhật cuộn Kubernetes.
C- Sau khi triển khai, hãy sử dụng hook PostSync để chạy kiểm tra tình trạng và tích hợp.
D- Nếu thao tác Đồng bộ hóa không thành công, hãy sử dụng hook SyncFail để chạy logic dọn dẹp hoặc hoàn thiện. Móc cho SyncFail chỉ khả dụng trong v1.2
Trong trường hợp sử dụng của tôi -
Tôi cần tạo thiết lập End-2-End, nghĩa là sau khi triển khai dịch vụ qua ArgoCD và đảm bảo rằng các nhóm đang hoạt động, tôi cần chạy thử nghiệm đơn vị ngay lập tức để hoàn tất quy trình CI/CD của mình.
Do đó, hook PostSync phù hợp với trường hợp sử dụng của tôi.
Vì vậy, trong blog này, chúng ta sẽ thảo luận về cấu hình hook PostSync.
Chỉ cần duyệt qua tệp bên dưới một lần.
1 apiVersion: batch/v1
2 kind: Job
3 metadata:
4 name: ms-echoserver-Unit-test-trigger
5 annotations:
6 argocd.argoproj.io/hook: PostSync
7 argocd.argoproj.io/hook-delete-policy: HookSucceeded
8 spec:
9 template:
10 metadata:
11 labels:
12 name: unit-test
13 spec:
14 containers:
15 - name: unit-test
16 args:
17 - /bin/sh
18 - -ec
19 - "curl --location --request POST \"https://api.buildkite.com/v2/organizations/example/pipelines/unit-test/builds\" --header \"Authorization: Bearer ${GITHUB_TOKEN}\" --header \"Content-Type: application/json\"
20 --data-raw '{
21 \"commit\": \"HEAD\",
22 \"branch\": \"main\",
23 \"message\": \"Triggered by ArgoCD post deployment of ms-echoserver :rocket:\"
24 }'"
25 env:
26 - name: GITHUB_TOKEN
27 valueFrom:
28 secretKeyRef:
29 name: ms-echoserver-secret
30 key: token
31
32 image: curlimages/curl
33 restartPolicy: Never
34 backoffLimit: 0
Dòng 2 — loại: Công việc
Tôi đang chạy nó dưới dạng kind:job vì nó chỉ cần thiết sau mỗi lần triển khai dịch vụ thành công và sau khi nó được kích hoạt, nhiệm vụ của công việc đã hoàn thành, vì vậy, kind:job là loại phù hợp trong trường hợp của tôi.
Dòng 6 : argocd.argoproj.io/hook: PostSync [Chú thích hook]
Dòng 7: argocd.argoproj.io/hook-delete-policy: HookSucceeded
[Khi hook đã được kích hoạt và công việc đã hoàn thành, nó sẽ bị xóa.]
Dòng 19: lệnh cuộn tròn
Chỉnh sửa các lệnh Curl cho phù hợp với nhu cầu của bạn. Trong trường hợp của tôi, tôi sử dụng công cụ buildkite để bắt đầu bài kiểm tra đơn vị của mình.
curl --location --request POST \"https://api.buildkite.com/v2/organizations/example/pipelines/unit-test-pipeline/builds\" --header \"Authorization: Bearer ${GITHUB_TOKEN}\" --header \"Content-Type: application/json\"
Tệp Docker-
FROM alpine:3.15
RUN apk add --no-cache bash curl jq
ENTRYPOINT ["/bin/bash"]
Mẹo:- Tránh cài đặt bất kỳ phần mềm hoặc công cụ nào mà bạn không cần; điều này sẽ giúp bạn duy trì an ninh.
Bạn có thể xem trạng thái của quy trình kiểm tra đơn vị như sau:
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].
Trình cập nhật hình ảnh ArgoCD
Thiết lập Thông báo Slack của 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 blog như vậy.

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































