

 **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.

# Gunakan ApplicationSets
<a name="argocd-applicationsets"></a>

ApplicationSets menghasilkan beberapa Aplikasi dari template, memungkinkan Anda untuk menyebarkan aplikasi yang sama di beberapa cluster, lingkungan, atau ruang nama dengan definisi sumber daya tunggal.

## Prasyarat
<a name="_prerequisites"></a>
+ Cluster EKS dengan kemampuan Argo CD dibuat
+ Akses repositori dikonfigurasi (lihat) [Konfigurasikan akses repositori](argocd-configure-repositories.md)
+  `kubectl`dikonfigurasi untuk berkomunikasi dengan cluster Anda

**catatan**  
Beberapa cluster target tidak diperlukan untuk ApplicationSets. Anda dapat menggunakan generator selain generator cluster (seperti generator list, git, atau matriks) untuk menyebarkan aplikasi tanpa cluster jarak jauh.

## Bagaimana cara ApplicationSets kerja
<a name="_how_applicationsets_work"></a>

ApplicationSets gunakan generator untuk menghasilkan parameter, lalu terapkan parameter tersebut ke template Aplikasi. Setiap set parameter yang dihasilkan menciptakan satu Aplikasi.

Generator umum untuk penerapan EKS:
+  **Generator daftar** - Secara eksplisit mendefinisikan cluster dan parameter untuk setiap lingkungan
+  **Generator cluster** - Secara otomatis menyebarkan ke semua cluster terdaftar
+  **Generator Git** - Hasilkan Aplikasi dari struktur repositori
+  **Generator matriks** - Gabungkan generator untuk penerapan multi-dimensi
+  **Gabungkan generator** - Gabungkan parameter dari beberapa generator

Untuk referensi generator lengkap, lihat [ApplicationSet Dokumentasi](https://argo-cd.readthedocs.io/en/stable/user-guide/application-set/).

## Daftar Generator
<a name="_list_generator"></a>

Terapkan ke beberapa cluster dengan konfigurasi eksplisit:

```
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: guestbook-all-clusters
  namespace: argocd
spec:
  generators:
  - list:
      elements:
      - environment: dev
        replicas: "2"
      - environment: staging
        replicas: "3"
      - environment: prod
        replicas: "5"
  template:
    metadata:
      name: 'guestbook-{{environment}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/example/guestbook
        targetRevision: HEAD
        path: 'overlays/{{environment}}'
      destination:
        name: '{{environment}}-cluster'
        namespace: guestbook
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
```

**catatan**  
Gunakan `destination.name` dengan nama cluster untuk keterbacaan yang lebih baik. `destination.server`Bidang ini juga berfungsi dengan cluster EKS ARNs jika diperlukan.

Ini menciptakan tiga Aplikasi:`guestbook-dev`,`guestbook-staging`, dan`guestbook-prod`.

## Generator cluster
<a name="_cluster_generator"></a>

Terapkan ke semua cluster terdaftar secara otomatis:

```
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: cluster-addons
  namespace: argocd
spec:
  generators:
  - clusters: {}
  template:
    metadata:
      name: '{{name}}-addons'
    spec:
      project: default
      source:
        repoURL: https://github.com/example/cluster-addons
        targetRevision: HEAD
        path: addons
      destination:
        server: '{{server}}'
        namespace: kube-system
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
```

Ini secara otomatis membuat Aplikasi untuk setiap cluster terdaftar.

 **Cluster filter**:

Gunakan `matchLabels` untuk menyertakan cluster tertentu, atau `matchExpressions` untuk mengecualikan cluster:

```
spec:
  generators:
  - clusters:
      selector:
        matchLabels:
          environment: production
        matchExpressions:
        - key: skip-appset
          operator: DoesNotExist
```

## Generator Git
<a name="_git_generators"></a>

Generator Git membuat Aplikasi berdasarkan struktur repositori:
+  **Generator direktori** - Menyebarkan setiap direktori sebagai Aplikasi terpisah (berguna untuk layanan mikro)
+  **Generator file** - Hasilkan Aplikasi dari file parameter (berguna untuk penyebaran multi-penyewa)

 **Contoh: Penyebaran Microservices** 

```
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: microservices
  namespace: argocd
spec:
  generators:
  - git:
      repoURL: https://github.com/example/microservices
      revision: HEAD
      directories:
      - path: services/*
  template:
    metadata:
      name: '{{path.basename}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/example/microservices
        targetRevision: HEAD
        path: '{{path}}'
      destination:
        name: my-cluster
        namespace: '{{path.basename}}'
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
        syncOptions:
        - CreateNamespace=true
```

Untuk detail tentang generator Git dan konfigurasi berbasis file, lihat [Git Generator dalam dokumentasi](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) Argo CD.

## Generator matriks
<a name="_matrix_generator"></a>

Gabungkan beberapa generator untuk digunakan di berbagai dimensi (lingkungan × cluster):

```
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: multi-env-multi-cluster
  namespace: argocd
spec:
  generators:
  - matrix:
      generators:
      - list:
          elements:
          - environment: dev
          - environment: staging
          - environment: prod
      - clusters:
          selector:
            matchLabels:
              region: us-west-2
  template:
    metadata:
      name: 'app-{{environment}}-{{name}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/example/app
        targetRevision: HEAD
        path: 'overlays/{{environment}}'
      destination:
        name: '{{name}}'
        namespace: 'app-{{environment}}'
```

Untuk detail tentang menggabungkan generator, lihat [Matrix Generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) dalam dokumentasi Argo CD.

## Penyebaran multi-wilayah
<a name="_multi_region_deployment"></a>

Terapkan ke cluster di beberapa wilayah:

```
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: global-app
  namespace: argocd
spec:
  generators:
  - list:
      elements:
      - clusterName: prod-us-west
        region: us-west-2
      - clusterName: prod-us-east
        region: us-east-1
      - clusterName: prod-eu-west
        region: eu-west-1
  template:
    metadata:
      name: 'app-{{region}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/example/app
        targetRevision: HEAD
        path: kubernetes
        helm:
          parameters:
          - name: region
            value: '{{region}}'
      destination:
        name: '{{clusterName}}'
        namespace: app
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
```

## Mengelola ApplicationSets
<a name="_manage_applicationsets"></a>

 **Lihat ApplicationSets dan dihasilkan Aplikasi**:

```
kubectl get applicationsets -n argocd
kubectl get applications -n argocd -l argocd.argoproj.io/application-set-name=<applicationset-name>
```

 **Perbarui ApplicationSet**:

Ubah ApplicationSet spesifikasi dan aplikasikan kembali. Argo CD secara otomatis memperbarui semua Aplikasi yang dihasilkan:

```
kubectl apply -f applicationset.yaml
```

 **Hapus sebuah ApplicationSet**:

```
kubectl delete applicationset <name> -n argocd
```

**Awas**  
Menghapus ApplicationSet menghapus semua Aplikasi yang dihasilkan. Jika Aplikasi tersebut memiliki`prune: true`, sumber daya mereka juga akan dihapus dari cluster target.  
Untuk mempertahankan sumber daya yang digunakan saat menghapus ApplicationSet, setel `.syncPolicy.preserveResourcesOnDeletion` ke `true` dalam spesifikasi. ApplicationSet Untuk informasi lebih lanjut, lihat [Pemangkasan Aplikasi & Penghapusan Sumber Daya](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Application-Deletion/) dalam dokumentasi Argo CD.

**penting**  
 ApplicationSets Fitur Argo CD memiliki pertimbangan keamanan yang harus Anda ketahui sebelum menggunakannya. ApplicationSets Untuk informasi selengkapnya, lihat [ApplicationSet Keamanan](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Security/) dalam dokumentasi Argo CD.

## Sumber daya tambahan
<a name="_additional_resources"></a>
+  [Bekerja dengan Proyek CD Argo](argocd-projects.md)- Mengatur ApplicationSets dengan Proyek
+  [Buat Aplikasi](argocd-create-application.md)- Memahami konfigurasi Aplikasi
+  [ApplicationSet Dokumentasi](https://argo-cd.readthedocs.io/en/stable/user-guide/application-set/) - Referensi dan pola generator lengkap
+  [Referensi Generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators/) - Spesifikasi generator terperinci