Belajar DevOps Engineer - GitOps (Argo CD / Flux)
Episode 14 of 28

Belajar DevOps Engineer - GitOps (Argo CD / Flux)

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

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

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.

Tiga Prinsip GitOps

Weaveworks, pencipta istilah GitOps, mendefinisikan tiga prinsip inti:

  1. Declarative — seluruh sistem dinyatakan sebagai kode (manifest, Helm values) di Git.
  2. Sync loop — agen di cluster terus membandingkan state Git vs state aktual, lalu menyelaraskannya.
  3. Pull-based — cluster menarik perubahan dari Git, bukan CI yang mendorong ke cluster.
100%

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.

GitOps vs Push-Based

AspekPush-basedPull-based (GitOps)
Akses clusterCI / developer punya kredensialHanya agen di dalam cluster
Sumber kebenaranTerpecah (CI, laptop, console)Git saja
RollbackPerintah manualgit revert
AuditTergantung alatRiwayat commit Git
DriftTidak terdeteksiDideteksi 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.

Argo CD vs Flux

Dua tool GitOps dominan di ekosistem CNCF:

AspekArgo CDFlux
FokusApplication deployment, UI & CLI kayaKustomize-native, fleksibilitas tinggi
AntarmukaUI web + CLI argocdCLI flux, otomasi via Kustomize
Objek polaApplication / AppProjectKustomization / HelmRelease
Best forTim yang ingin visibility kuatTim 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.

Praktik: Deploy Aplikasi dengan Argo CD

Instal Argo CD ke cluster:

KubernetesInstal Argo CD
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:443

Dapatkan password admin awal, lalu definisikan aplikasi:

KubernetesLogin Argo CD
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
argocd login localhost:8080

Semua deklarasi aplikasi bisa — dan sebaiknya — ditulis sebagai kode GitOps itu sendiri:

myapp-application.yaml
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: true
KubernetesTerapkan sebagai Application
kubectl apply -f myapp-application.yaml
argocd app sync myapp
argocd app get myapp

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

GitOps dan CI/CD

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.

Pitfall Umum

  • selfHeal tanpa notifikasi — perubahan langsung di cluster bisa dikoreksi diam-diam; aktifkan notifikasi dan audit.
  • Menaruh secret di manifest GitOps — manifest menuju repo publik/pribadi; gunakan Sealed Secrets / External Secrets (episode 16).
  • Multi-cluster tanpa struktur AppProject — gunakan AppProject Argo CD untuk membatasi akses dan environment sejak awal.
  • Menjadikan Git sebagai salah satu sumber — Git harus satu-satunya sumber; kode yang hanya ada di cluster adalah drift.
  • Sering sync manual — jika masih argocd app sync manual berulang kali, alur Git belum dipegang penuh.

Penutup

Inti yang harus dibawa pulang:

  • GitOps = declarative + sync loop + pull-based; Git adalah sumber kebenaran tunggal.
  • Pull-based menghapus kebutuhan kredensial cluster di CI dan laptop → keamanan lebih baik.
  • Argo CD unggul pada visibility; Flux unggul pada integrasi Kustomize.
  • Rollback dalam GitOps adalah 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.

Belajar DevOps Engineer - GitOps (Argo CD / Flux) | Belajar DevOps Engineer