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
Untuk penggunaan kembali kredensyal di beberapa repositori, Anda dapat menggunakan templat kredensyal repositori (repocreds). Untuk informasi selengkapnya, lihat Repositori Pribadi
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. |
|
|
Grafik ECR Helm |
Integrasi langsung dengan AWS ECR untuk grafik Helm OCI. Tidak diperlukan konfigurasi Repositori. |
|
|
Konfigurasi repositori dengan kredensional |
||
|
AWS Secrets Manager (Nama Pengguna/Token) |
Simpan token atau kata sandi akses pribadi |
|
|
AWS Secrets Manager (Kunci SSH) |
Gunakan otentikasi kunci SSH |
|
|
AWS Secrets Manager (GitHub Aplikasi) |
GitHub Otentikasi aplikasi dengan kunci pribadi |
|
|
Rahasia Kubernetes |
Metode CD Argo standar menggunakan rahasia in-cluster |
Tidak ada (hanya kebijakan kepercayaan) |
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:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }
Menggunakan AWS Secrets Manager
Simpan kredensyal repositori di Secrets Manager dan referensikan mereka dalam konfigurasi Argo CD Repository.
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
penting
Pastikan Peran Kemampuan IAM Anda memiliki secretsmanager:GetSecretValue izin untuk rahasia yang Anda buat. 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-----
Repositori publik
Tidak diperlukan konfigurasi tambahan untuk repositori publik:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: public-app namespace: argocd spec: source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook # ... rest of configuration
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 kluster 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