👋 Xin chào tất cả các bạn! Nếu bạn đã tìm đến bài viết này, hãy để lại một bình luận chào nhau cho thêm phần thân thiện nhé!
Giới Thiệu
Trong phần 1 của loạt bài viết, chúng ta đã cùng nhau khám phá cách cài đặt ArgoCD bằng Helm và tìm hiểu cách hoạt động của nó. Để tiếp tục chuỗi bài viết này, chúng ta sẽ học cách kết nối ArgoCD đến các kho lưu trữ riêng tư (private repository).
Lưu ý: Bài viết này sẽ sử dụng ArgoCD đã được cài đặt ở phần trước. Nếu bạn đã cài đặt ArgoCD bằng phương pháp khác, hãy tham khảo thêm tài liệu từ ArgoCD Document để thực hiện các bước phù hợp.
Tổng Quan Về Kết Nối ArgoCD Đến Kho Lưu Trữ Riêng Tư
Để ArgoCD có thể truy cập vào các kho lưu trữ riêng tư, chúng ta cần cung cấp một số thông tin xác thực (credentials). Chúng tôi sẽ chủ yếu kết nối tới GitHub, nhưng các nhà cung cấp khác cũng có quy trình tương tự. Một số phương thức xác thực bao gồm:
- Sử dụng tên đăng nhập/mật khẩu khi kết nối bằng HTTPS.
- Sử dụng Personal Access Token (PAT).
- Sử dụng SSH Private Key khi kết nối qua SSH.
- Sử dụng GitHub App.
Các thông tin xác thực này cần được lưu trữ dưới dạng Secret trong Kubernetes. Bạn có thể sử dụng cả dòng lệnh (CLI) hoặc giao diện người dùng (UI), ArgoCD sẽ tự động tạo ra các Secret tương ứng.
Có hai loại Secret chứa thông tin xác thực, được phân biệt qua label:
- Repository Secret: Chứa thông tin xác thực cho từng kho lưu trữ riêng tư.
- Credential Template: Là một cấu hình mẫu với thông tin xác thực và có thể được tái sử dụng cho nhiều kho lưu trữ khác nhau.
Cách Tạo Kho Lưu Trữ và Credential Template Qua UI/CLI
- Truy cập vào Settings > Repositories.
- Nhấn vào nút +CONNECT REPO.
- Cung cấp đầy đủ thông tin xác thực.
- Chọn một trong hai tùy chọn:
- Nhấn CONNECT để lưu thành Repository.
- Nhấn SAVE AS CREDENTIAL TEMPLATE để lưu thông tin thành Credential Template.
Cách Kết Nối Kho Lưu Trữ Riêng Tư Bằng Helm
Nếu bạn muốn sử dụng Helm để cấu hình kho lưu trữ, hãy thực hiện các bước sau:
-
Tạo một file
values.yaml
mới. -
Thêm thông tin sau vào file
values.yaml
:yamlconfigs: repositories: ds101-cluster: url: https://github.com/devsuccess101/ds101-cluster type: git
-
Cung cấp thông tin xác thực cho các kho lưu trữ trong file
values.yaml
với các phương thức khác nhau mà chúng tôi đã đề cập.
Cách Tạo Credential Templates
Dưới đây là một số phương thức để cấu hình credential templates:
1. Sử Dụng Tên Đăng Nhập và Mật Khẩu
yaml
configs:
credentialTemplates:
https-creds:
url: https://github.com/devsuccess101
username: my-username
password: my-password
2. Sử Dụng Personal Access Token (PAT)
yaml
configs:
credentialTemplates:
https-creds:
url: https://github.com/devsuccess101
username: my-username
password: my-personal-access-token
3. Sử Dụng SSH Private Key
yaml
configs:
credentialTemplates:
ssh-creds:
url: git@github.com:devsuccess101
sshPrivateKey: |
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
4. Sử Dụng GitHub App
Cách kết nối này yêu cầu tạo một GitHub App và cấu hình credential template theo mẫu phù hợp như sau:
yaml
configs:
credentialTemplates:
ds101-cluster:
githubAppID: "924036"
githubAppInstallationID: "51953849"
githubAppPrivateKey: |
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
project: default
type: git
url: https://github.com/devsuccess101
Kiểm Tra và Xác Nhận
Sau khi thực hiện tất cả các bước trên, hãy trở lại trang dashboard của ArgoCD để kiểm tra trạng thái kết nối. Nếu tất cả các thông tin xác thực đều chính xác, bạn sẽ thấy các kho lưu trữ được kết nối thành công.
Kết Luận
Chúng ta đã hoàn thành việc cấu hình ArgoCD để kết nối với các kho lưu trữ riêng tư. Việc lưu trữ thông tin xác thực dưới dạng các Secret giúp bảo mật và dễ dàng quản lý. Bạn sẵn sàng để tiếp tục sử dụng ArgoCD trong việc quản lý hạ tầng của mình.
Bước Tiếp Theo
- Tạo Git Repository chứa các cấu hình liên quan đến ArgoCD và các ứng dụng khác.
- Tạo và cấu hình Application để ArgoCD theo dõi và quản lý các ứng dụng trong cluster của bạn.
Nếu bạn thấy bài viết này hữu ích, đừng quên like và subscribe cho kênh DevSuccess101 trên các nền tảng mà bạn yêu thích. Cảm ơn bạn đã theo dõi!
✴️ Website: https://devsuccess101.com
✴️ Subscribe kênh! https://l.devsuccess101.com/subscribe
✴️ Tham gia cộng đồng Discord để được hỗ trợ: https://l.devsuccess101.com/discord
✴️ Donate: Momo, Paypal
source: viblo