GitOps menjadikan repository Git sebagai satu-satunya sumber kebenaran untuk seluruh infrastruktur; di episode ini kalian memahami konsep declarative, sync loop, dan pull-based deployment, membandingkan Argo CD dan Flux, lalu men-deploy aplikasi dengan Argo CD dan menguji rollback otomatis

Di episode 13 kalian men-deploy chart Helm secara manual — dan di beberapa langkah sudah muncul insting yang benar: nilai konfigurasi harus masuk Git. GitOps membawa ide itu ke konsekuensi logisnya: repository Git adalah satu-satunya sumber kebenaran untuk seluruh cluster. Tidak ada kubectl apply manual, tidak ada kredensial cluster di laptop.
GitOps mengubah model operasional dari push-based (CI atau manusia mendorong perubahan ke cluster) menjadi pull-based (agen di dalam cluster menarik state yang diinginkan dari Git, lalu mewujudkannya). Hasilnya: rollback adalah git revert, audit adalah riwayat Git, dan perubahan yang tidak sesuai Git akan dikoreksi otomatis.
Weaveworks, pencipta istilah GitOps, mendefinisikan tiga prinsip inti:
Ketika developer mengubah manifest di Git, agen mendeteksi perubahan dan menerapkannya. Ketika seseorang mengubah resource langsung di cluster, agen mengembalikannya ke state Git — drift dikoreksi, bukan dibiarkan.
| Aspek | Push-based | Pull-based (GitOps) |
|---|---|---|
| Akses cluster | CI / developer punya kredensial | Hanya agen di dalam cluster |
| Sumber kebenaran | Terpecah (CI, laptop, console) | Git saja |
| Rollback | Perintah manual | git revert |
| Audit | Tergantung alat | Riwayat commit Git |
| Drift | Tidak terdeteksi | Dideteksi dan dikoreksi |
Keuntungan paling nyata adalah keamanan: tim developer tidak perlu kredensial cluster untuk me-deploy — mereka cukup membuat commit. CI hanya berhenti di "meng-update manifest di Git", dan agen yang melakukan sisanya.
Dua tool GitOps dominan di ekosistem CNCF:
| Aspek | Argo CD | Flux |
|---|---|---|
| Fokus | Application deployment, UI & CLI kaya | Kustomize-native, fleksibilitas tinggi |
| Antarmuka | UI web + CLI argocd | CLI flux, otomasi via Kustomize |
| Objek pola | Application / AppProject | Kustomization / HelmRelease |
| Best for | Tim yang ingin visibility kuat | Tim yang sudah memakai Kustomize |
Pilihannya bukan soal siapa yang lebih baik, melainkan konteks: Argo CD unggul pada visibility dan manajemen aplikasi; Flux unggul pada kekuatan Kustomize dan kebiasaan declarative-first. Banyak tim memakai salah satunya secara konsisten di seluruh cluster.
Instal Argo CD ke cluster:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl get pods -n argocd -w
kubectl port-forward svc/argocd-server -n argocd 8080:443Dapatkan password admin awal, lalu definisikan aplikasi:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
argocd login localhost:8080Semua deklarasi aplikasi bisa — dan sebaiknya — ditulis sebagai kode GitOps itu sendiri:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/username/deploy-manifests
path: myapp
targetRevision: main
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: truekubectl apply -f myapp-application.yaml
argocd app sync myapp
argocd app get myappsyncPolicy.automated dengan prune dan selfHeal berarti: perubahan di Git otomatis disinkronkan, resource yang hilang dari Git dihapus, dan drift dikoreksi.
Tip
Uji kekuatan GitOps dengan rollback: git revert manifest yang terakhir di-apply. Dalam beberapa detik, cluster kembali ke state commit sebelumnya — tanpa kubectl, tanpa akses cluster. Inilah perbedaan antara deploy otomatis dan deploy yang dapat diaudit.
Penting untuk memposisikan GitOps dalam pipeline: CI (episode 5) tetap membangun dan menguji image. Yang berubah adalah langkah CD (episode 6): alih-alih CI me-deploy langsung, CI cukup meng-update tag image di repository manifest. Argo CD mendeteksi perubahan di Git dan me-rollout image baru. Deployment produksi menjadi efek samping dari commit, bukan dari credential di CI.
selfHeal tanpa notifikasi — perubahan langsung di cluster bisa dikoreksi diam-diam; aktifkan notifikasi dan audit.argocd app sync manual berulang kali, alur Git belum dipegang penuh.Inti yang harus dibawa pulang:
git revert — auditable, cepat, dan otomatis.Di episode 15 selanjutnya kita membahas Platform Engineering & Internal Developer Platform (IDP) — evolusi cara tim DevOps melayani developer. Alih-alih memberi developer akses ke seluruh toolchain, kalian membangun jalur emas (golden path) dengan Backstage dan portal self-service.