Chuyển tới nội dung chính

Hướng dẫn tích hợp Argo CD Image Updater

Trong phần này sẽ hướng dẫn người dùng deploy ứng dụng trên ArgoCD sử dụng Image Updater. Để sử dụng tính năng Argo CD Image Updater, người dùng thực hiện enable service thông qua portal, thực hiện cấu hình các thông tin để xác thực cần dùng như secret/secret registry/Container registry.

Chuẩn bị

Bước 1: Chuẩn bị source deployment

Source deployment là Helm chart.

Ví dụ người dùng muốn deploy service nginx với Helm chart tới ArgoCD. Chuẩn bị chart để deploy:

Image deploy được quản lý trên container registry. Trong phần demo này sẽ sử dụng container registry của FPT Cloud.

Argo CD Image Updater hỗ trợ phương thức Git write-back để lưu trữ các tham số deploy ứng dụng. Mặc định Argo CD Image Updater sẽ lưu các tham số trong file name .argocd-source-<app-name>.yaml trong đường dẫn được sử dụng với Application cấu hình trong đường dẫn manifest trên ArgoCD. Điều này cho phép ArgoCD triển khai ứng dụng theo tham số đã được lưu trữ trên Git.

Ví dụ: Tạo file .argocd-source-demo-images-updater.yaml với các thông tin sau:

helm:
parameters:
- name: image.name
value: registry.fke.fptcloud.com/a6762c5a-56d1-4285-b4bc-b61177a171e1/nginx
forcestring: true
- name: image.tag
value: dev-742b0343
forcestring: true

Bước 2: Cấu hình images pullSecret trên Portal

Ví dụ: Người dùng sử dụng Secret Registry để kiểm tra thay đổi trên Container Registry. pullSecret được đặt tên: habor-secret

Secret Registry sẽ được sử dụng trong annotations của Application.

Bước 3: Tạo Application trên ArgoCD

Sau đó sử dụng chức năng Edit as yaml để cấu hình annotations:

Bổ sung annotations để sử dụng Image Updater:

AnnotationMô tả
argocd-image-updater.argoproj.io/demo-images-updater.allow-tags: regexp:^dev-[0-9a-f]{8}$Chỉ định những tag name được cho phép để update tới repository. Ví dụ chỉ cho phép cập nhật với các tag khớp biểu thức chính quy "dev-" và chuỗi thập lục phân có 8 chữ số. VD: dev-a5fb3d31
argocd-image-updater.argoproj.io/****.pull-secret: pullsecret:argocd-ebwa49tw/habor-secretpullSecret để Argo CD Image Updater kiểm tra các tag images trên registry. Định dạng: pullsecret:argocd-[argocd-id]/[Secret-registry-name]
argocd-image-updater.argoproj.io/****.update-strategy: latestXác định cách Argo CD Image Updater tìm phiên bản mới của images. Strategy: Semver (phiên bản mới nhất theo ngữ nghĩa), Latest (tag mới nhất push lên gần đây), Digest (theo SHA digest), Name (sắp xếp theo bảng chữ cái)
argocd-image-updater.argoproj.io/git-branch: masterNhánh để cập nhật thay đổi trong manifest
argocd-image-updater.argoproj.io/write-back-method: gitPhương thức để cập nhật thay đổi của image
argocd-image-updater.argoproj.io/image-list: =registry.fke.fptcloud.com/a6762c5a-56d1-4285-b4bc-b61177a171e1/nginxDanh sách images để theo dõi cập nhật

Bước 4: Cấu hình webhook tới git để kiểm tra thay đổi khi update tag images trên Container Registry

  • Tạo webhook GitLab trên Portal:

  • Cấu hình webhook trong GitLab:

Test push event:

Bước 5: Kiểm tra ứng dụng

Kiểm tra image đang chạy ứng dụng trước khi push một image mới:

Push image mới tới registry:

Argo CD Image Updater sẽ cập nhật image mới tới git:

Webhook GitLab sẽ phát hiện thay đổi và thực hiện deploy image mới:

Kiểm tra push image không đúng định dạng được cho phép tới registry:

Kiểm tra không có sự thay đổi tới ứng dụng: