Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan akses repositori
Sebelum menerapkan aplikasi, konfigurasikan Argo CD untuk mengakses repositori Git dan registrasi bagan Helm Anda. Argo CD mendukung beberapa metode otentikasi untuk GitHub, Bitbucket GitLab,, dan ECR. AWS CodeCommit AWS
catatan
Untuk integrasi AWS layanan langsung (bagan Helm ECR, CodeCommit repositori, dan CodeConnections), Anda dapat mereferensikannya secara langsung di sumber daya Aplikasi tanpa membuat konfigurasi Repositori. Peran Kemampuan harus memiliki izin IAM yang diperlukan. Lihat Konfigurasikan izin Argo CD untuk detail.
Prasyarat
-
Cluster EKS dengan kemampuan Argo CD dibuat
-
Repositori Git yang berisi manifes Kubernetes
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda
catatan
AWS CodeConnections dapat terhubung ke server Git yang berada di AWS Cloud atau lokal. Untuk informasi selengkapnya, lihat AWS CodeConnections.
Metode otentikasi
| Metode | Kasus Penggunaan | Izin IAM Diperlukan |
|---|---|---|
|
Integrasi langsung dengan AWS layanan |
||
|
CodeCommit |
Integrasi langsung dengan AWS CodeCommit repositori Git. Tidak diperlukan konfigurasi Repositori. |
|
|
CodeConnections |
Connect to GitHub, GitLab, atau Bitbucket dengan autentikasi terkelola. Membutuhkan pengaturan koneksi. |
|
|
Artefak ECR OCI |
Integrasi langsung dengan AWS ECR untuk bagan Helm OCI dan gambar manifes. Tidak diperlukan konfigurasi Repositori. |
|
|
Konfigurasi repositori dengan kredensional |
||
|
AWS Secrets Manager (Nama Pengguna/Token) |
Simpan token atau kata sandi akses pribadi. Mengaktifkan rotasi kredenal tanpa akses Kubernetes. |
|
|
AWS Secrets Manager (Kunci SSH) |
Gunakan otentikasi kunci SSH. Mengaktifkan rotasi kredenal tanpa akses Kubernetes. |
|
|
AWS Secrets Manager (GitHub Aplikasi) |
GitHub Otentikasi aplikasi dengan kunci pribadi. Mengaktifkan rotasi kredenal tanpa akses Kubernetes. |
|
|
Rahasia Kubernetes |
Metode CD Argo standar menggunakan rahasia in-cluster |
Tidak ada (izin ditangani oleh EKS Access Entry dengan Kubernetes RBAC) |
Akses langsung ke AWS layanan
Untuk AWS layanan, Anda dapat mereferensikannya secara langsung di sumber daya Aplikasi tanpa membuat konfigurasi Repositori. Peran Kemampuan harus memiliki izin IAM yang diperlukan.
CodeCommit repositori
CodeCommit Repositori referensi langsung di Aplikasi:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-nametargetRevision: main path: kubernetes/manifests
Izin Peran Kemampuan yang Diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:GitPull", "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections
Referensi GitHub, GitLab, atau repositori Bitbucket melalui. CodeConnections Format URL repositori berasal dari koneksi CodeConnections ARN.
Format URL repositori adalah:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests
Izin Peran Kemampuan yang Diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeconnections:UseConnection", "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
Grafik ECR Helm
ECR menyimpan bagan Helm sebagai artefak OCI. Argo CD mendukung dua cara untuk mereferensikannya:
Format helm (direkomendasikan untuk bagan Helm):
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-helm namespace: argocd spec: source: repoURL:account-id.dkr.ecr.region.amazonaws.com/repository-nametargetRevision:chart-versionchart:chart-namehelm: valueFiles: - values.yaml
Catatan: Jangan sertakan oci:// awalan saat menggunakan format Helm. Gunakan chart bidang untuk menentukan nama bagan.
Format OCI (untuk artefak OCI dengan manifes Kubernetes):
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-oci namespace: argocd spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-nametargetRevision:artifact-versionpath:path-to-manifests
Catatan: Sertakan oci:// awalan saat menggunakan format OCI. Gunakan path bidang sebagai gantichart.
Izin Peran Kemampuan yang Diperlukan - lampirkan kebijakan terkelola:
arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Kebijakan ini mencakup izin ECR yang diperlukan:ecr:GetAuthorizationToken,ecr:BatchGetImage, dan. ecr:GetDownloadUrlForLayer
Menggunakan AWS Secrets Manager
Simpan kredensyal repositori di Secrets Manager dan referensikan mereka dalam konfigurasi Argo CD Repository. Menggunakan Secrets Manager memungkinkan rotasi kredenal otomatis tanpa memerlukan akses Kubernetes RBAC — kredensyal dapat diputar menggunakan izin IAM ke Secrets Manager, dan Argo CD secara otomatis membaca nilai yang diperbarui.
catatan
Untuk penggunaan kembali kredensyal di beberapa repositori (misalnya, semua repositori di bawah GitHub organisasi), gunakan templat kredensyal repositori dengan. argocd.argoproj.io/secret-type: repo-creds Ini memberikan UX yang lebih baik daripada membuat rahasia repositori individu. Untuk informasi selengkapnya, lihat Kredensial Repositori
Otentikasi nama pengguna dan token
Untuk repositori HTTPS dengan token atau kata sandi akses pribadi:
Buat rahasia di Secrets Manager:
aws secretsmanager create-secret \ --name argocd/my-repo \ --description "GitHub credentials for Argo CD" \ --secret-string '{"username":"your-username","token":"your-personal-access-token"}'
Bidang sertifikat klien TLS opsional (untuk server Git pribadi):
aws secretsmanager create-secret \ --name argocd/my-private-repo \ --secret-string '{ "username":"your-username", "token":"your-token", "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t" }'
catatan
tlsClientCertKeyNilai tlsClientCertData dan harus dikodekan base64.
Buat Rahasia Repositori yang mereferensikan Secrets Manager:
apiVersion: v1 kind: Secret metadata: name: my-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-AbCdEf project: default
Otentikasi kunci SSH
Untuk akses Git berbasis SSH, simpan kunci pribadi sebagai plaintext (bukan JSON):
Buat rahasia dengan kunci pribadi SSH:
aws secretsmanager create-secret \ --name argocd/my-repo-ssh \ --description "SSH key for Argo CD" \ --secret-string "-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn ... -----END OPENSSH PRIVATE KEY-----"
Buat Rahasia Repositori untuk SSH:
apiVersion: v1 kind: Secret metadata: name: my-repo-ssh namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: git@github.com:your-org/your-repo.git secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-ssh-AbCdEf project: default
GitHub Otentikasi aplikasi
Untuk otentikasi GitHub Aplikasi dengan kunci pribadi:
Buat rahasia dengan kredensyal GitHub Aplikasi:
aws secretsmanager create-secret \ --name argocd/github-app \ --description "GitHub App credentials for Argo CD" \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678" }'
catatan
githubAppPrivateKeySecretNilai harus dikodekan base64.
Bidang opsional untuk GitHub Perusahaan:
aws secretsmanager create-secret \ --name argocd/github-enterprise-app \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678", "githubAppEnterpriseBaseUrl":"https://github.example.com/api/v3" }'
Buat Rahasia Repositori untuk GitHub Aplikasi:
apiVersion: v1 kind: Secret metadata: name: my-repo-github-app namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-app-AbCdEf project: default
Templat kredensi repositori
Untuk penggunaan kembali kredensyal di beberapa repositori (misalnya, semua repositori di bawah GitHub organisasi atau pengguna), gunakan templat kredensi repositori dengan. argocd.argoproj.io/secret-type: repo-creds Ini memberikan UX yang lebih baik daripada membuat rahasia repositori individual untuk setiap repositori.
Buat template kredensi repositori:
apiVersion: v1 kind: Secret metadata: name: github-org-creds namespace: argocd labels: argocd.argoproj.io/secret-type: repo-creds stringData: type: git url: https://github.com/your-org secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-org-AbCdEf
Template kredensyal ini berlaku untuk semua repositori yang cocok dengan awalan URL. https://github.com/your-org Anda kemudian dapat mereferensikan repositori apa pun di bawah organisasi ini di Aplikasi tanpa membuat rahasia tambahan.
Untuk informasi selengkapnya, lihat Kredensial Repositori
penting
Pastikan Peran Kemampuan IAM Anda memiliki kebijakan terkelola yang arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess dilampirkan, atau izin yang setara termasuk secretsmanager:GetSecretValue dan izin dekripsi KMS. Lihat Pertimbangan Argo CD konfigurasi kebijakan IAM.
Menggunakan AWS CodeConnections
Untuk CodeConnections integrasi, lihatConnect ke repositori Git dengan AWS CodeConnections.
CodeConnections menyediakan otentikasi terkelola untuk GitHub, GitLab, dan Bitbucket tanpa menyimpan kredensyal.
Menggunakan Rahasia Kubernetes
Simpan kredensyal secara langsung di Kubernetes menggunakan metode CD Argo standar.
Untuk HTTPS dengan token akses pribadi:
apiVersion: v1 kind: Secret metadata: name: my-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo username: your-username password: your-personal-access-token
Untuk SSH:
apiVersion: v1 kind: Secret metadata: name: my-repo-ssh namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: git@github.com:your-org/your-repo.git sshPrivateKey: | -----BEGIN OPENSSH PRIVATE KEY----- ... your private key ... -----END OPENSSH PRIVATE KEY-----
CodeCommit repositori
Untuk AWS CodeCommit, berikan CodeCommit izin Peran Kemampuan IAM Anda ()codecommit:GitPull.
Konfigurasikan repositori:
apiVersion: v1 kind: Secret metadata: name: codecommit-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://git-codecommit.us-west-2.amazonaws.com/v1/repos/my-repo project: default
Untuk konfigurasi kebijakan IAM yang mendetail, lihatPertimbangan Argo CD.
Verifikasi koneksi repositori
Periksa status koneksi melalui Argo CD UI di bawah Pengaturan → Repositori. UI menunjukkan status koneksi dan kesalahan otentikasi apa pun.
Rahasia Repositori tidak termasuk informasi status.
Sumber daya tambahan
-
Daftarkan cluster target- Daftarkan cluster target untuk penerapan
-
Buat Aplikasi- Buat Aplikasi pertama Anda
-
Pertimbangan Argo CD- Izin IAM dan konfigurasi keamanan
-
Repositori Pribadi - Referensi
konfigurasi repositori hulu