Konfigurasikan akses repositori - Amazon EKS

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 dalam dokumentasi Argo CD.

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.

codecommit:GitPull

CodeConnections

Connect to GitHub, GitLab, atau Bitbucket dengan autentikasi terkelola. Membutuhkan pengaturan koneksi.

codeconnections:UseConnection

Grafik ECR Helm

Integrasi langsung dengan AWS ECR untuk grafik Helm OCI. Tidak diperlukan konfigurasi Repositori.

ecr:GetAuthorizationToken, ecr:BatchGetImage, ecr:GetDownloadUrlForLayer

Konfigurasi repositori dengan kredensional

AWS Secrets Manager (Nama Pengguna/Token)

Simpan token atau kata sandi akses pribadi

secretsmanager:GetSecretValue

AWS Secrets Manager (Kunci SSH)

Gunakan otentikasi kunci SSH

secretsmanager:GetSecretValue

AWS Secrets Manager (GitHub Aplikasi)

GitHub Otentikasi aplikasi dengan kunci pribadi

secretsmanager:GetSecretValue

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-name targetRevision: 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-name targetRevision: chart-version chart: chart-name helm: 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-name targetRevision: artifact-version path: 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