Episode pembuka seri GitOps dengan FluxCD: skill fundamental yang wajib kalian kuasai, tools yang harus disiapkan, spesifikasi hardware minimum, dan cara memverifikasi seluruh setup sebelum masuk ke materi inti.

Selamat datang di seri Belajar GitOps - Continuous Delivery dengan FluxCD! Di seri ini kita akan membangun fondasi deployment modern dari nol: mulai dari memahami mengapa GitOps lahir, membedah arsitektur FluxCD sebagai salah satu implementasi GitOps paling matang di ekosistem Cloud Native, sampai mengoperasikan FluxCD untuk menyinkronkan Kubernetes dengan repository Git secara otomatis.
Namun sebelum menyentuh FluxCD, ada satu aturan yang tidak bisa ditawar: GitOps berada di persimpangan banyak disiplin — Git, Kubernetes, YAML, container, dan CI/CD. Kalau salah satu fondasinya goyah, materi berikutnya akan terasa seperti membangun rumah di atas pasir. Karena itu, episode 0 ini khusus menyiapkan seluruh fondasi: skill yang wajib dimiliki, tools yang perlu diinstall, spesifikasi hardware, dan langkah verifikasi agar semuanya siap ketika seri ini berlanjut.
FluxCD pada dasarnya adalah kumpulan controller Kubernetes yang membaca Git dan mewujudkan isinya ke cluster. Maka skill di bawah ini bukan sekadar "sebaiknya", melainkan "wajib" karena akan dipakai di hampir semua episode.
GitOps berarti "semua perubahan melalui Git". Kalian harus nyaman dengan git clone, git add, git commit, git push, git pull, dan git checkout. Jangan berhenti di situ — pahami juga konsep branch, tag, dan pull request, karena di produksi perubahan environment tidak pernah di-push langsung ke branch utama. PR adalah gerbang review dan audit.
FluxCD mewujudkan manifest ke cluster, jadi kalian harus paham objek-objek inti Kubernetes: Pod, Deployment, Service, ConfigMap, Secret, Ingress, dan Namespace. Yang terpenting, pahami konsep desired state dan reconciliation: Kubernetes terus-menerus menyelaraskan kondisi nyata dengan yang dideklarasikan — konsep yang sama persis dengan yang dilakukan FluxCD. Karena FluxCD bekerja lewat CustomResourceDefinition (CRD), kalian juga akan sering berinteraksi dengan objek kustom, jadi kenali bagaimana CRD dan controller bekerja.
Sebagian besar pekerjaan GitOps adalah menulis dan membaca YAML. Pastikan kalian paham aturan indentasi (spasi, bukan tab), struktur key: value, list, dan cara membaca manifest multi-dokumen (---). Jangan khawatir soal keindahan — yang penting konsisten dan valid.
GitOps adalah bagian dari CD (Continuous Delivery). Kalian perlu tahu bedanya CI (membangun dan menguji artefak) vs CD (menghantarkan artefak ke environment). FluxCD menggantikan "tahap deploy" tradisional, bukan seluruh pipeline CI.
FluxCD tidak menjalankan container, tetapi aplikasi yang dikelolanya berbentuk image container. Pahami dasar Dockerfile, cara build dan pull image, serta istilah registry dan tag. Tanpa ini, konfigurasi image di manifest akan terasa seperti teka-teki.
Semua demo di seri ini memakai CLI. Minimal kalian harus nyaman menavigasi terminal dan membaca output perintah. kubectl adalah jembatan kalian ke cluster; setiap perintah yang dikerjakan FluxCD juga bisa kalian verifikasi manual dengan kubectl. CLI flux akan dikenalkan di episode ini dan dibahas menyeluruh di episode 5.
Pahami perbedaan mendasar antara declarative (mendeskripsikan hasil akhir yang diinginkan) dan imperative (menuliskan langkah-langkah untuk mencapai hasil). GitOps sepenuhnya dibangun di atas paradigma declarative. Kalau konsep ini masih samar, episode 1 akan mengulanginya dari akar sejarah.
FluxCD dibangun di atas pola controller: sebuah loop yang terus-menerus membandingkan state nyata dengan desired state, lalu melakukan aksi untuk menghilangkan perbedaan. Kenali istilah reconcile, reconciliation loop, dan operator Kubernetes. Konsep inilah yang membuat FluxCD bisa bekerja terus-menerus tanpa intervensi manusia.
| No | Tool | Fungsi | Level |
|---|---|---|---|
| 1 | Kubernetes cluster (minikube, kind, k3s, cloud) | Target tempat aplikasi dideploy | Wajib |
| 2 | kubectl | CLI untuk berinteraksi dengan cluster | Wajib |
| 3 | Git client | Berinteraksi dengan repository | Wajib |
| 4 | Flux CLI (flux) | Kontrol FluxCD dari terminal | Wajib |
| 5 | Helm 3.x | Package manager untuk Kubernetes | Wajib |
| 6 | Kustomize (built-in kubectl) | Manajemen konfigurasi native Kubernetes | Wajib |
| 7 | Text editor / IDE (VS Code + extensions) | Menulis dan mengedit manifest | Wajib |
| 8 | Docker Desktop | Local development dan image | Opsional |
| 9 | Akun GitHub / GitLab / Bitbucket | Hosting repository manifest | Wajib |
| 10 | Personal Access Token (PAT) | Kredensial akses repository untuk FluxCD | Wajib |
Khusus untuk pilihan cluster lokal, rekomendasi saya: gunakan kind atau minikube karena paling ringan untuk lab, dan k3s jika ingin pengalaman yang lebih mendekati produksi. Semuanya valid — pilih yang paling nyaman dengan OS kalian.
Important
Personal Access Token hanya boleh disimpan di lingkungan yang aman. Saat bootstrap, FluxCD menulis kredensial ini menjadi Secret di cluster (bukan di Git), dan di CI token disimpan sebagai secret pipeline. Jangan pernah commit token ke repository.
GitOps bukan kerja berat untuk laptop kalian, tapi Kubernetes cluster lokal yang cukup rakus. Rekomendasinya:
| Komponen | Minimum | Recommended |
|---|---|---|
| RAM | 8 GB | 16 GB+ |
| Storage | 20 GB free | 40 GB+ |
| CPU | Quad-core | Quad-core + |
| Internet | Stabil | Stabil |
Tip
Cluster lokal berbagi sumber daya dengan OS utama. Kalau laptop kalian bermasalah dengan minikube atau kind, coba turunkan alokasi resource cluster (misal --cpus 2 --memory 4096), atau gunakan VM cloud untuk lab.
Setelah menginstall seluruh tools, verifikasi dengan satu perintah per tools. Pastikan tidak ada error sebelum melanjutkan ke episode berikutnya.
kubectl version --client
kubectl cluster-info
kubectl get nodesJika cluster belum ada, buat dulu:
kind create cluster --name gitops-fluxcd
kubectl config current-context
kubectl get nodesWarning
Pastikan kubectl config current-context menunjuk ke cluster yang benar. Salah context adalah penyebab paling umum "manifest berhasil di-apply tapi hilang" — FluxCD akan mendeploy ke cluster yang sedang aktif.
Episode 0 adalah gerbang masuk seri ini. Berikut yang wajib kalian bawa:
Di episode 1 berikutnya kita masuk ke bagian yang paling penting secara konseptual: sejarah deployment aplikasi, kelahiran GitOps oleh Weaveworks, masalah yang dipecahkannya, dan mengapa model pull mengubah cara kita mendeploy. Pastikan semua tools sudah terpasang, karena materi praktik akan segera dimulai!