Introduction
Kali ini saya akan sharing tentang penggunaan ArgoCD GitOps CD, kita dapat mengelola konfigurasi dan pembaruan klaster Kubernetes kita menggunakan Git sebagai sumber kebenaran tunggal. ArgoCD memungkinkan otomatisasi yang mulus, memastikan bahwa perubahan dalam repositori Git secara otomatis tercermin dan diaplikasikan ke lingkungan produksi kita.
Keunggulan utama GitOps CD dengan ArgoCD melibatkan kesederhanaan pengelolaan konfigurasi, peningkatan keamanan, dan kemampuan untuk mengotomatiskan proses pengiriman. Dengan demikian, kita dapat fokus pada pengembangan aplikasi, sementara infrastruktur dan pengiriman perangkat lunak diurus dengan lebih efektif.
Tujuan utamanya adalah untuk memisah CI & CD nya, supaya kita bisa menggunakan 1 image saja untuk di deploy sehingga jika ada case ketika kita ingin rollback ke tag image sebelumya tinggal menggunakan by commit/UI.
Fungsi GitOps CD dengan ArgoCD:
- Manajemen Konfigurasi Berbasis Git
- Otomatisasi Penerapan Perubahan
- Pengelolaan Versi dan Audit
- Deklaratif
- Keterukuran dan Skalabilitas
Baca juga :
Hal yang perlu di siapkan tentunya :
- Cluster kubernetes / minikube
- helm plugins install
Flow CI & CD menggunakan GitOps ArgoCD

Berikut langkah – langkah, untuk deploy ArgoCD di cluster kubernetes kita :
Step 1 – Install ArgoCD
Install dengan menggunakan command helm
$ helm repo add argo-cd https://argoproj.github.io/argo-helm
Kemudian ada beberapa hal yang perlu kita sesuaikan didalam values , contohnya adalah storage class jumlah size dll, dan kalian bisa sesuaikan di
https://github.com/argoproj/argo-helm/blob/main/charts/argo-cd/values.yaml jika kalian sudah menyesuaikannya selanjutnya install / apply values tersebut dengan menggunakan chart yang kita add tadi.
helm upgrade --install --namespace argocd argocd argo-cd/argo-cd -f argo-cd/values.yaml
Step 2 – Conf
Setelah itu check POD dan lakukan konfiguras menggunakan PortForwarding untuk akses ArgoCD UI nya

Port Forwarding argoCD-server:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Akses menggunakan CLI atau Web dengan https://localhost:443
Sebelumnya kita harus melakukan decode password argoCD karena ketika kita deploy secret akan otomatis terbuat :
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Step 3 – How to Add Repositories Manifest
Ada beberapa metode untuk penamahan repositories yaitu, Https, github app dan juga SSH, biasanya saya melakukan penambahan tersebut menggunakan SSH.

Step 4 – Declarative add App on ArgoCD
Ada dua metode untuk menambahkan apps kita kedalam ArgoCD disini saya mencotohkanya menggunakan yaml karena kemudahan untuk customize code serta lebih declarative.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: argocd-app
spec:
project: default
source:
repoURL: 'https://github.com/gunawan-d/helm-mychart'
path: chart-gunawan
targetRevision: HEAD
helm:
valueFiles:
- ../manifests/values.yaml
destination:
server: 'https://kubernetes.default.svc'
namespace: argocd
syncPolicy:
automated:
prune: true
selfHeal: true
allowEmpty: false
syncOptions:
- Validate=false
- ApplyOutOfSyncOnly=true
syncWave:
concurrency: 1
failFast: true
syncInterval: 1m
revisionHistoryLimit: 3
Adapaun penjelasan tentang beberapa syntax diatas adalah sebagai berikut:
- repoURL : repository URL
- Path: adalah folder template kita karena kita menggunakan helm untuk deploy aplikasinya
- ValuesFiles: lokasi values.yaml atau manifests dari aplikasi kita
- Server & namespace : adalah lokasi dari Cluster kubernetes kita tinggal kita sesuaikan
- SyncPolicy automated: untuk auto sync jika ketika ada image baru
- SyncInterval: yang dimana auto sync berjalan 1 menit sekali
- ReisionHistoryLimit: adalah fitur paling penting bagi argoCD untuk merollback sebuah aplikasi dari image yang sudah ditentukan misal hanya 3.
Selamat mencoba

Admin website igunawan.com, System Administrator, DevOps Engineer

Saran kak, utk selanjutnya bikin use case lbh banyak lagi kak. Terimakasih
Baik, terima kasih saranya