Điều này mô tả một giải pháp trong đó bạn giữ các tệp yaml của mình trong kho lưu trữ GitHub tách biệt với kho lưu trữ nơi bạn giữ mã dự án của mình. Vì vậy, hai repos là:
- Dự án repo GitHub
- Cơ sở hạ tầng repo GitHub (IaC)
Giả định của tôi là Flux sau đó được chỉ vào repo Cơ sở hạ tầng để khi các thay đổi được thực hiện ở đó, Flux sẽ mang cụm nội tuyến với các thay đổi mong muốn hiện được khai báo trong repo. (Chúng tôi sử dụng ArgoCD). Khi bạn thực hiện các thay đổi đối với repo dự án của mình và Hành động GitHub sẽ tạo hình ảnh mới (có thẻ mới) và đẩy vào Sổ đăng ký bộ chứa Azure của bạn.
Sau đó, bạn đặt câu hỏi hỏi làm thế nào để công cụ CI/CD (tức là Flux) biết về thẻ hình ảnh mới để nó có thể lấy hình ảnh mới.
Khuyến nghị là cân nhắc sử dụng Kustomize để quản lý việc cập nhật thẻ trong repo Cơ sở hạ tầng để công cụ CI/CD tự động phát hiện thay đổi đó trong repo và cập nhật cụm tương ứng bằng cách sử dụng hình ảnh mới.
Điều này sẽ yêu cầu như sau:
Thêm tệp Kustomization.yaml vào repo Cơ sở hạ tầng chứa a) tệp kê khai yaml mô tả cơ sở hạ tầng của bạn cho dự án và b) thẻ hình ảnh sẽ được thay thế.
apiVersion: kustomize.config.k8s.io/v1beta1
loại: Tùy chỉnh
tài nguyên:
- tài nguyên1.yaml
- tài nguyên2.yaml
- ...
hình ảnh:
- tên: tên hình ảnh trong bảng kê khai triển khai của bạn
newTag: thay thế
Sau đó, trong quy trình Hành động GitHub trong Repo dự án của bạn, hãy sử dụng hành động actions/checkout@v2 để kéo repo Cơ sở hạ tầng từ xa. Sau đó, thêm hành động imranismail/setup-kustomize@v1 và sử dụng hành động đó để thay thế tab hình ảnh. Sau đó đẩy các thay đổi trở lại repo Cơ sở hạ tầng. Ví dụ dưới đây, sửa đổi để phù hợp với tình huống của bạn:
xây dựng các bước ở đây
triển khai:
nhu cầu: xây dựng
chạy trên: Ubuntu-mới nhất
các bước:
- tên: Thanh toán repo từ xa
sử dụng: hành động/thanh toán@v2
với:
kho lưu trữ: {repo github của bạn}
mã thông báo: ${{ secret.INFRA_REPO_TOKEN }}
đường dẫn: cơ sở hạ tầng
- tên: Cài đặt Tùy chỉnh
sử dụng: imranismail/setup-kustomize@v1
với:
kustomize-phiên bản: "3.6.1"
- tên: Tắt thẻ hình ảnh
chạy: |
cd infra-repo/{tên repo}
tùy chỉnh bộ chỉnh sửa hình ảnh {tên hình ảnh}:{tag}
- tên: Cam kết và đẩy
chạy: |
cd infra-repo/{tên repo}
git config --local user.email [email protected]
git config --local user.name github-actions
git commit -am "cập nhật thẻ hình ảnh"
đẩy git
Các liên kết có liên quan này cũng sẽ cung cấp cho bạn thông tin bạn cần để xây dựng quy trình làm việc của mình một cách chính xác: