Belajar GitOps - FluxCD - FluxCD Overview & Architecture
Episode 2 of 36

Belajar GitOps - FluxCD - FluxCD Overview & Architecture

Pengenalan FluxCD v2 sebagai CNCF graduated project, alasan memilih FluxCD, perbandingan dengan ArgoCD, dan pembedahan arsitektur GitOps Toolkit beserta komponen serta konsep intinya.

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

Pendahuluan

Di episode 1 kalian sudah memahami sejarah GitOps dan empat prinsip intinya: declarative, versioned, pulled, dan reconciled. Sekarang pertanyaannya: tools mana yang mewujudkan prinsip itu secara praktis di Kubernetes? Jawaban utama di seri ini adalah FluxCD v2 — dan episode ini menjelaskan mengapa.

Kita akan membedah FluxCD dari tiga arah: apa dan bagaimana ia dirancang, mengapa ia menjadi pilihan yang menarik dibandingkan alternatifnya (terutama ArgoCD), serta peta arsitektur GitOps Toolkit yang menjadi otak di balik FluxCD. Setelah episode ini, kalian akan bisa menjawab pertanyaan "FluxCD itu apa sih?" dengan percaya diri.

Mengenal FluxCD v2

FluxCD v2 adalah penerus Flux v1 yang ditulis ulang total (complete rewrite). Beberapa fakta yang wajib kalian tahu:

  • Merupakan CNCF graduated project — salah satu tools GitOps dengan kematangan dan adopsi komunitas tertinggi.
  • Dibangun di atas GitOps Toolkit: kumpulan controller Kubernetes yang kecil, fokus, dan bisa dikombinasikan.
  • Kubernetes-native: seluruh konfigurasi diekspresikan lewat CustomResourceDefinition (CRD), bukan lewat config file yang eksotik.
  • Extensible: karena controller terpisah-pisah, kalian hanya menginstall komponen yang dibutuhkan.

Alih-alih satu binary raksasa yang melakukan segalanya, FluxCD membagi tanggung jawab ke beberapa controller yang masing-masing menangani satu domain. Semua controller ini diinstall ke namespace flux-system sebagai Deployment dengan nama yang mudah dikenali: source-controller, kustomize-controller, helm-controller, notification-controller, serta image-reflector-controller dan image-automation-controller. Cek cepat setelah instalasi:

Lihat controller yang berjalan
kubectl get deployments -n flux-system

Hasilnya menunjukkan kelima controller dalam status READY. Di episode 4 kita akan menyaksikan proses ini terjadi langsung lewat flux bootstrap github.

Mengapa Memilih FluxCD

FluxCD tidak populer tanpa alasan. Keunggulan utamanya:

  • Kubernetes native (CRD): semua sumber dan konfigurasi adalah objek Kubernetes — bisa diinspect dengan kubectl, bisa dikunci dengan RBAC.
  • Fleksibel dan composable: controller GitOps Toolkit bisa dipasang sebagian, cocok untuk kebutuhan sederhana sampai kompleks.
  • Mendukung multi-tenancy: repository dan namespace bisa dipartisi per tim dengan pola tenant.
  • Progressive delivery via Flagger: integrasi dengan Flagger untuk canary, A/B, dan blue-green deployment.
  • Komunitas kuat: project aktif dengan kontributor besar dan dokumentasi rapi.
  • Vendor-neutral: mendukung GitHub, GitLab, Bitbucket, serta source S3, GCS, Azure Blob, dan OCI registry.

FluxCD vs ArgoCD

Dua raksasa GitOps ini sering dibandingkan. Keduanya sama-sama pull-based, tetapi pendekatannya berbeda:

AspekFluxCDArgoCD
ArsitekturToolkit modular, banyak controller kecilMonolitik, satu aplikasi
Interaksi utamaCLI-first (flux + kubectl)UI-first (web console)
Konsep utamaGitRepository + KustomizationApplication + Project
Multi-tenancyBerbasis namespace + RBACProject dengan scope antar-namespace
HelmDirektori per HelmRelease (Chart langsung dari repo)Chart dibundle dalam Application
Progressive deliveryFlagger (tool terpisah)Rollout bawaan (ApplicationSet)

Kapan memilih Flux? Kalau tim kalian berbasis CLI dan kubectl, suka arsitektur modular, dan ingin kontrol komponen per-komponen. Kapan memilih Argo? Kalau tim kalian lebih nyaman dengan UI grafis, butuh fitur Progressive Delivery bawaan, dan lebih suka satu aplikasi yang memusatkan semuanya.

Tip

Jangan terjebak perang "mana yang lebih baik". Keduanya sama-sama valid — pilih berdasarkan cara kerja tim dan kebutuhan arsitektur. Seri ini fokus FluxCD, tapi prinsip yang kalian pelajari berlaku juga untuk ArgoCD.

Arsitektur GitOps Toolkit

Inilah jantung FluxCD. GitOps Toolkit terdiri dari lima kelompok controller, masing-masing dengan domain sendiri:

ControllerTanggung Jawab Utama
Source ControllerMenarik dan memverifikasi source: Git, Helm, Bucket, OCI.
Kustomize ControllerMerekoniliasi manifest menjadi objek cluster.
Helm ControllerMengelola Helm release secara deklaratif.
Notification ControllerMenyebarkan event dan alert ke platform eksternal.
Image Automation ControllersMemperbarui image dan versi secara otomatis.

Alur kerjanya berurutan: Source Controller menarik source, lalu Kustomize Controller atau Helm Controller membaca source tersebut dan merekoniliasi ke cluster, sementara Notification Controller memberitahu status ke luar (Slack, GitHub, dan lainnya). Image Automation Controllers berdiri terpisah untuk menutup loop pembaruan image.

Konsep Inti FluxCD

Sebelum praktik, kuasai lima istilah yang akan muncul terus-menerus:

  • Sources: objek yang menunjuk ke asal konfigurasi — GitRepository (repo Git), HelmRepository (chart index), Bucket (object storage), dan OCIRepository (image OCI).
  • Kustomization: objek yang menyatakan "source mana yang harus diterapkan dan bagaimana" — bukan file kustomization.yaml Kustomize, walau keduanya bekerja sama.
  • HelmRelease: objek yang membungkus chart dan values, mengarah ke sumber chart.
  • Reconciliation loop: mekanisme controller yang terus-menerus menyamakan kondisi nyata dengan yang dideklarasikan.
  • Dependency management & health assessment: FluxCD bisa menunggu dependency selesai dan menilai kesehatan objek hasil rekonsiliasi.

Penutup

Episode 2 memberi peta jalan arsitektur FluxCD:

  • FluxCD v2 adalah rewrite total Flux v1, CNCF graduated, dibangun di atas GitOps Toolkit.
  • Keunggulan: Kubernetes-native, modular, multi-tenancy, Flagger, komunitas, dan vendor-neutral.
  • vs ArgoCD: Flux CLI-first dan toolkit, Argo UI-first dan monolitik — pilih sesuai kebutuhan tim.
  • Komponen: Source, Kustomize, Helm, Notification, dan Image Automation Controllers.
  • Konsep: Sources, Kustomization, HelmRelease, reconciliation loop, dependency, dan health assessment.

Di episode 3 kita menyelam lebih dalam ke arsitektur GitOps Toolkit: pembedahan detail Source Controller, Kustomize Controller, Helm Controller, Notification Controller, dan Image Automation Controllers — objek CRD apa saja yang tersedia dan bagaimana masing-masing bekerja. Sampai jumpa!