

 **Bantu meningkatkan 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 GitHub ** tautan ** Edit halaman ini di 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.

# Pertimbangan CD Argo
<a name="argocd-considerations"></a>

Topik ini mencakup pertimbangan penting untuk menggunakan Kemampuan EKS untuk CD Argo, termasuk perencanaan, izin, otentikasi, dan pola penerapan multi-cluster.

## Perencanaan
<a name="_planning"></a>

Sebelum menerapkan CD Argo, pertimbangkan hal berikut:

 **Strategi repositori**: Tentukan di mana manifes aplikasi Anda akan disimpan (CodeCommit, GitHub, GitLab, Bitbucket). Rencanakan struktur repositori dan strategi percabangan Anda untuk lingkungan yang berbeda.

 **Strategi RBAC**: Rencanakan tim atau pengguna mana yang harus memiliki akses admin, editor, atau pemirsa. Petakan ini ke AWS grup Identity Center atau peran CD Argo.

 **Multi-cluster arsitektur**: Tentukan apakah Anda akan mengelola beberapa cluster dari satu instance CD Argo. Pertimbangkan untuk menggunakan cluster manajemen khusus untuk Argo CD.

 **Organisasi aplikasi**: Rencanakan bagaimana Anda akan menyusun Aplikasi dan ApplicationSets. Pertimbangkan untuk menggunakan proyek untuk mengatur aplikasi berdasarkan tim atau lingkungan.

 **Kebijakan sinkronisasi**: Putuskan apakah aplikasi harus disinkronkan secara otomatis atau memerlukan persetujuan manual. Sinkronisasi otomatis umum untuk pengembangan, manual untuk produksi.

## Izin
<a name="_permissions"></a>

Untuk informasi terperinci tentang Peran Kemampuan IAM, kebijakan kepercayaan, dan praktik terbaik keamanan, lihat [Peran IAM kemampuan Amazon EKS](capability-role.md) dan[Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md).

### Ikhtisar Peran Kemampuan IAM
<a name="_iam_capability_role_overview"></a>

Saat Anda membuat sumber daya kemampuan CD Argo, Anda menyediakan Peran Kemampuan IAM. Tidak seperti ACK, Argo CD terutama mengelola sumber daya Kubernetes, bukan sumber daya secara langsung. AWS Namun, Peran Kemampuan IAM diperlukan untuk:
+ Mengakses repositori Git pribadi di CodeCommit
+ Mengintegrasikan dengan AWS Identity Center untuk otentikasi
+ Mengakses rahasia di AWS Secrets Manager (jika dikonfigurasi)
+ Cross-cluster penerapan ke cluster EKS lainnya

### CodeCommit integrasi
<a name="_codecommit_integration"></a>

Jika Anda menggunakan CodeCommit repositori, lampirkan kebijakan dengan izin baca:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:GitPull"
      ],
      "Resource": "*"
    }
  ]
}
```

**penting**  
Untuk penggunaan produksi, batasi `Resource` bidang ke ARN repositori tertentu alih-alih menggunakan`"*"`.  
Contoh:  

```
"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"
```
Ini membatasi akses kemampuan Argo CD hanya ke repositori yang perlu dikelola.

### Integrasi Secrets Manager
<a name="_secrets_manager_integration"></a>

Jika Anda menyimpan kredentif repositori di Secrets Manager, lampirkan kebijakan terkelola untuk akses baca:

```
arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess
```

Kebijakan ini mencakup izin yang diperlukan:`secretsmanager:GetSecretValue`,`secretsmanager:DescribeSecret`, dan izin mendekripsi KMS.

### Pengaturan dasar
<a name="_basic_setup"></a>

Untuk fungsionalitas dasar Argo CD dengan repositori Git publik, tidak ada kebijakan IAM tambahan yang diperlukan di luar kebijakan kepercayaan.

## Autentikasi
<a name="_authentication"></a>

### AWS Integrasi Pusat Identitas
<a name="shared_aws_identity_center_integration"></a>

Kemampuan terkelola CD Argo terintegrasi langsung dengan AWS Identity Center (sebelumnya AWS SSO), memungkinkan Anda menggunakan penyedia identitas yang ada untuk otentikasi.

Saat Anda mengkonfigurasi integrasi Pusat AWS Identitas:

1. Pengguna mengakses UI CD Argo melalui konsol EKS

1. Mereka mengotentikasi menggunakan AWS Identity Center (yang dapat bergabung dengan penyedia identitas perusahaan Anda)

1.  AWS Identity Center menyediakan informasi pengguna dan grup ke Argo CD

1. Argo CD memetakan pengguna dan grup ke peran RBAC berdasarkan konfigurasi Anda

1. Pengguna hanya melihat aplikasi dan sumber daya yang mereka miliki izin untuk mengakses

### Menyederhanakan akses dengan set izin Identity Center
<a name="_simplifying_access_with_identity_center_permission_sets"></a>

 AWS Identity Center menyediakan dua jalur otentikasi yang berbeda saat bekerja dengan Argo CD:

 **Otentikasi API Argo CD**: Identity Center menyediakan otentikasi SSO ke UI dan API Argo CD. Ini dikonfigurasi melalui pemetaan peran RBAC kemampuan Argo CD.

 **Akses cluster EKS**: Kemampuan CD Argo menggunakan peran IAM yang disediakan pelanggan untuk mengotentikasi dengan cluster EKS melalui entri akses. Entri akses ini dapat dikonfigurasi secara manual untuk menambah atau menghapus izin.

Anda dapat menggunakan kum [ pulan izin Identity Center ](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html) untuk menyederhanakan manajemen identitas dengan mengizinkan satu identitas untuk mengakses cluster Argo CD dan EKS. Ini mengurangi overhead dengan mengharuskan Anda mengelola hanya satu identitas di kedua sistem, daripada mempertahankan kredentif terpisah untuk akses CD Argo dan akses cluster.

### Pemetaan peran RBAC
<a name="_rbac_role_mappings"></a>

Argo CD memiliki peran bawaan yang dapat Anda petakan ke pengguna dan grup AWS Identity Center:

 **ADMIN**: Akses penuh ke semua aplikasi dan pengaturan. Dapat membuat, memperbarui, dan menghapus aplikasi. Dapat mengelola konfigurasi CD Argo.

 **EDITOR**: Dapat membuat dan memodifikasi aplikasi. Tidak dapat mengubah pengaturan CD Argo atau menghapus aplikasi.

 **VIEWER**: Read-only akses ke aplikasi. Dapat melihat status aplikasi dan riwayat. Tidak dapat membuat perubahan.

**catatan**  
Nama peran peka huruf besar dan harus huruf besar (ADMIN, EDITOR, VIEWER).

**penting**  
Integrasi EKS Capabilities dengan AWS Identity Center mendukung hingga 1.000 identitas per kemampuan CD Argo. Identitas dapat berupa pengguna atau grup.

## Multi-cluster penyebaran
<a name="_multi_cluster_deployments"></a>

Kemampuan Argo CD yang dikelola mendukung penerapan multi-cluster, memungkinkan Anda mengelola aplikasi di seluruh cluster pengembangan, pementasan, dan produksi dari satu instance CD Argo.

### Cara kerja multi-cluster
<a name="_how_multi_cluster_works"></a>

Saat Anda mendaftarkan cluster tambahan dengan Argo CD:

1. Anda membuat rahasia cluster yang mereferensikan cluster EKS target oleh ARN

1. Anda membuat Aplikasi atau ApplicationSets yang menargetkan cluster yang berbeda

1. Argo CD terhubung ke setiap cluster untuk menyebarkan dan menonton sumber daya

1. Anda melihat dan mengelola semua cluster dari satu Argo CD UI

### Prasyarat untuk multi-cluster
<a name="_prerequisites_for_multi_cluster"></a>

Sebelum mendaftarkan cluster tambahan:
+ Buat Entri Akses pada cluster target untuk peran kemampuan CD Argo
+ Pastikan konektivitas jaringan antara kemampuan Argo CD dan cluster target
+ Verifikasi izin IAM untuk mengakses cluster target

### Daftarkan cluster
<a name="_register_a_cluster"></a>

Daftarkan cluster menggunakan Rahasia Kubernetes di namespace. `argocd`

Dapatkan cluster target ARN. Ganti {{region-code}} dengan AWS Wilayah tempat cluster target Anda berada dan ganti {{target-cluster}} dengan nama cluster target Anda.

```
aws eks describe-cluster \
  --region {{region-code}} \
  --name {{target-cluster}} \
  --query 'cluster.arn' \
  --output text
```

Buat rahasia cluster menggunakan cluster ARN:

```
apiVersion: v1
kind: Secret
metadata:
  name: target-cluster
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: cluster
type: Opaque
stringData:
  name: target-cluster
  server: arn:aws:eks:us-west-2:111122223333:cluster/target-cluster
  project: default
```

**penting**  
Gunakan ARN cluster EKS di `server` lapangan, bukan URL server API Kubernetes. Kemampuan terkelola membutuhkan ARN untuk mengidentifikasi cluster target.

Terapkan rahasianya:

```
kubectl apply -f cluster-secret.yaml
```

### Konfigurasikan Entri Akses pada cluster target
<a name="_configure_access_entry_on_target_cluster"></a>

Cluster target harus memiliki Entri Akses yang memberikan izin peran kemampuan CD Argo untuk menerapkan aplikasi. Ganti {{region-code}} dengan AWS Wilayah tempat cluster target Anda berada, ganti {{target-cluster}} dengan nama cluster target Anda, dan ganti ARN dengan peran kemampuan Argo CD ARN Anda.

```
aws eks create-access-entry \
  --region {{region-code}} \
  --cluster-name {{target-cluster}} \
  --principal-arn {{arn:aws:iam::111122223333:role/ArgoCDCapabilityRole}} \
  --type STANDARD \
  --kubernetes-groups system:masters
```

**catatan**  
Untuk penggunaan produksi, pertimbangkan untuk menggunakan grup Kubernetes yang lebih ketat daripada. `system:masters`

### Akses klaster pribadi
<a name="_private_cluster_access"></a>

Kemampuan Argo CD yang dikelola dapat digunakan ke cluster EKS yang sepenuhnya pribadi tanpa memerlukan peering VPC atau konfigurasi jaringan khusus. AWS mengelola konektivitas antara kemampuan Argo CD dan cluster jarak jauh pribadi secara otomatis. Pastikan kontrol akses repositori Anda dan kebijakan Argo CD RBAC dikonfigurasi dengan benar.

### Cross-account penyebaran
<a name="_cross_account_deployments"></a>

Untuk penerapan lintas akun, tambahkan Peran Kemampuan IAM Argo CD dari akun sumber ke Entri Akses EKS cluster target:

1. Di akun target, buat Entri Akses pada cluster EKS target

1. Gunakan Argo CD IAM Capability Role ARN dari akun sumber sebagai prinsipal

1. Konfigurasikan izin Kubernetes RBAC yang sesuai untuk Entri Akses

1. Daftarkan cluster target di Argo CD menggunakan kluster EKS ARN

Tidak diperlukan pembuatan peran IAM tambahan atau konfigurasi kebijakan kepercayaan — Entri Akses EKS menangani akses lintas akun.

## Praktik terbaik
<a name="_best_practices"></a>

 **Gunakan sumber deklaratif sebagai sumber kebenaran**: Simpan semua manifes aplikasi Anda dalam sumber deklaratif (repositori Git, pendaftar Helm, atau gambar OCI), mengaktifkan kontrol versi, jejak audit, dan kolaborasi.

 **Menerapkan RBAC yang tepat**: Gunakan integrasi AWS Identity Center untuk mengontrol siapa yang dapat mengakses dan mengelola aplikasi di Argo CD. Argo CD mendukung kontrol akses halus ke sumber daya dalam Aplikasi (Deployments, Pod,, Secrets). ConfigMaps

 **Gunakan ApplicationSets untuk penerapan multi-lingkungan**: Gunakan ApplicationSets untuk menyebarkan aplikasi di beberapa cluster atau ruang nama dengan konfigurasi yang berbeda.

## Manajemen siklus hidup
<a name="_lifecycle_management"></a>

### Kebijakan sinkronisasi aplikasi
<a name="_application_sync_policies"></a>

Kontrol bagaimana Argo CD menyinkronkan aplikasi:

 **Sinkronisasi manual**: Aplikasi memerlukan persetujuan manual untuk menyinkronkan perubahan. Direkomendasikan untuk ** lingkungan ** produksi.

 **Sinkronisasi otomatis**: Aplikasi secara otomatis menyinkronkan ketika perubahan Git terdeteksi. Umum untuk lingkungan pengembangan dan pementasan.

 **Self-healing**: Secara otomatis mengembalikan perubahan manual yang dilakukan pada cluster. Memastikan status cluster cocok dengan Git.

 **Pemangkasan**: Secara otomatis menghapus sumber daya yang dihapus dari Git. Gunakan dengan hati-hati karena ini dapat menghapus sumber daya.

### Kesehatan aplikasi
<a name="_application_health"></a>

Argo CD terus memantau kesehatan aplikasi:
+  **Seh ** at: Semua sumber daya berjalan seperti yang diharapkan
+  **Kem ** ajuan: Sumber daya sedang dibuat atau diperbarui
+  **Terdegradasi**: Beberapa sumber daya tidak sehat
+  **Ditangguhkan**: Aplikasi dijeda
+  **Hil ** ang: Sumber daya hilang dari cluster

### Sinkronkan jendela
<a name="_sync_windows"></a>

Konfigurasikan jendela sinkronisasi untuk mengontrol kapan aplikasi dapat disinkronkan:
+ Izinkan sinkronisasi hanya selama jendela pemeliharaan
+ Blokir sinkronisasi selama jam kerja
+ Jadwalkan sinkronisasi otomatis untuk waktu tertentu
+ Gunakan jendela sinkronisasi dalam situasi di mana Anda perlu membuat perubahan dan menghentikan sinkronisasi apa pun (skenario pecahan kaca)

## Konfigurasi Webhook untuk sinkronisasi lebih cepat
<a name="_webhook_configuration_for_faster_sync"></a>

Secara default, Argo CD mensurvei repositori Git setiap 6 menit untuk mendeteksi perubahan. Untuk penerapan yang lebih responsif, konfigurasikan webhook Git untuk memicu sinkronisasi langsung saat perubahan didorong.

Webhook memberikan beberapa manfaat:
+ Respon sinkronisasi langsung saat kode didorong (detik vs menit)
+ Mengurangi overhead polling dan meningkatkan kinerja sistem
+ Penggunaan batas tarif API yang lebih efisien
+ Pengalaman pengguna yang lebih baik dengan umpan balik yang lebih cepat

### Titik akhir Webhook
<a name="_webhook_endpoint"></a>

URL webhook mengikuti pola`${serverUrl}/api/webhook`, di mana `serverUrl` URL server CD Argo Anda. Untuk menemukan URL server Anda, lihat[URL titik akhir Argo CD](working-with-argocd.md#argocd-endpoint-url).

Misalnya, jika URL server Argo CD Anda adalah`https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com`, URL webhook adalah:

```
https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com/api/webhook
```

### Konfigurasikan webhook oleh penyedia Git
<a name="_configure_webhooks_by_git_provider"></a>

 **GitHub**: Dalam pengaturan repositori Anda, tambahkan webhook dengan URL webhook Argo CD. Atur jenis konten ke `application/json` dan pilih “Hanya acara push”.

 **GitLab**: Dalam pengaturan proyek Anda, tambahkan webhook dengan URL webhook Argo CD. Aktifkan “Push events” dan opsional “Tag push events”.

 **Bitbucket**: Dalam pengaturan repositori Anda, tambahkan webhook dengan URL webhook Argo CD. Pilih “Repository push” sebagai pemicunya.

 **CodeCommit**: Buat EventBridge aturan Amazon yang memicu perubahan status CodeCommit repositori dan mengirimkan pemberitahuan ke titik akhir webhook Argo CD.

Untuk petunjuk konfigurasi webhook terperinci, lihat Konfigurasi Webhook CD [ Argo. ](https://argo-cd.readthedocs.io/en/stable/operator-manual/webhook/)

**catatan**  
Webhook melengkapi polling—mereka tidak menggantikannya. Argo CD terus melakukan polling repositori sebagai mekanisme fallback jika pemberitahuan webhook terlewatkan.

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Bekerja dengan Argo CD](working-with-argocd.md)- Pelajari cara membuat dan mengelola Aplikasi CD Argo
+  [Memecahkan masalah dengan kemampuan CD Argo](argocd-troubleshooting.md)- Memecahkan masalah CD Argo
+  [Bekerja dengan sumber daya kemampuan](working-with-capabilities.md)- Kelola sumber daya kemampuan CD Argo Anda