Di episode ini kalian belajar mendiagnosis masalah FluxCD: kegagalan rekonsiliasi, source yang tidak tersedia, health check gagal, autentikasi dan RBAC. Lengkap dengan teknik debug lewat flux logs, flux events, flux trace, kubectl describe, dan CLI.

Di episode 31 kalian sudah menyusun adopsi enterprise dengan proses dan struktur organisasi yang matang. Namun tak peduli seberapa rapi konfigurasinya, di produksi masalah akan tetap muncul — dan yang membedakan engineer hebat adalah kecepatannya menemukan akar masalah. Di episode 32 ini kalian belajar troubleshooting & debugging FluxCD secara sistematis: dari masalah umum yang paling sering terjadi, hingga teknik investigasi memakai CLI dan observasi mendalam.
Saat Flux tidak bisa menarik atau menerapkan konfigurasi, semua Kustomization yang terpengaruh akan masuk status Not Ready. Mulailah dengan flux get kustomizations untuk melihat kondisi masing-masing objek.
GitRepository yang gagal berarti Flux tidak bisa menarik dari Git. Penyebab umum: repositori tidak ada, cabang berubah, kredensial salah, atau rate limit GitHub/GitLab.
Note
Selalu cek pesan message pada status objek. Flux menuliskan alasan spesifik di sana — misalnya "repository not found" atau "authentication required".
Health check gagal terjadi ketika readiness probe belum pernah berubah menjadi sukses dalam batas waktu yang ditentukan di spec.healthChecks. Sementara error autentikasi dan RBAC biasanya muncul saat Flux mencoba membaca atau menulis resource yang tidak diizinkan oleh kebijakan RBAC cluster.
Cara tercepat melihat apa yang sedang dilakukan Flux adalah streaming log semua controller:
flux logs --all-namespaces --since=10mTambahkan --level=error untuk hanya melihat kesalahan, atau arahkan ke controller tertentu dengan --kind=Kustomization.
Karena kontainer restart menghapus log, Flux juga menulis kejadian ke cluster sebagai Kubernetes Event. Tampilkan dengan:
flux events --all-namespaces --since=1hEvent adalah jejak yang bertahan lebih lama dari log — sangat berguna untuk masalah yang hanya muncul sesekali.
Untuk masalah yang melibatkan alur source ke kustomization, flux trace menunjukkan hubungan antara objek secara visual:
flux trace apps Deployment shopKombinasikan dengan cara konvensional: kubectl describe kustomization shop -n apps untuk membaca kondisi terakhir, lalu kubectl get events -n apps --sort-by=.lastTimestamp untuk melihat urutan kejadian.
Sekali lihat, semua resource Flux di namespace:
flux get all --all-namespacesIni memberi peta status keseluruhan — mulai dari source, kustomization, helm release, sampai image policy.
Untuk memicu rekonsiliasi segera tanpa menunggu interval:
flux reconcile source git flux-system --with-source
flux reconcile kustomization flux-system --with-sourceBila ada perubahan yang mengunci rekonsiliasi berturut-turut, hentikan sementara dengan flux suspend kustomization shop, perbaiki, lalu lanjutkan dengan flux resume kustomization shop.
Caution
suspend menghentikan rekonsiliasi tanpa menghapus resource yang sudah ada. Pastikan Anda mencatat objek mana yang di-suspend, karena mudah terlupakan dan membuat environment tidak ter-update.
Mengekspor sumber daya dalam bentuk YAML berguna untuk memeriksa status yang tersimpan di cluster:
flux export gitrepository shopKetika pesan di status tidak cukup, telusuri log controller secara langsung:
kubectl logs -n flux-system deploy/source-controller \
--follow --tail=200Controller Flux mengekspos metrik Prometheus, termasuk gotk_reconcile_condition dan gotk_reconcile_duration. Nilai False pada gotk_reconcile_condition menandakan masalah yang perlu diinvestigasi:
{
"metric": {
"__name__": "gotk_reconcile_condition",
"kind": "Kustomization",
"name": "flux-system",
"status": "False"
},
"value": [1722657600, "1"]
}Masalah jaringan sering muncul sebagai error timeout atau TLS. Gunakan kubectl exec ke pod controller dan coba git ls-remote langsung untuk mengisolasi apakah masalah di koneksi atau di kredensial:
kubectl exec -n flux-system deploy/source-controller -- \
git ls-remote https://github.com/devvnull/fleet.gitTip
Buat urutan investigasi yang tetap: cek flux get all, lalu event, lalu log. Urutan ini mencegah Anda melompat langsung ke asumsi yang salah.
Di episode ini kalian belajar troubleshooting FluxCD secara sistematis: mengenali lima masalah umum, membaca log dan event, menggunakan flux trace, memanfaatkan flux reconcile dan suspend/resume, serta mendalami log controller dan metrik.
Inti yang harus dibawa pulang:
flux events untuk masalah yang jarang muncul.flux get all, flux reconcile, dan flux suspend/resume menangani sebagian besar perbaikan.flux export dan metrik Prometheus mempercepat diagnosis.Di episode 33, kita membahas perjalanan yang tak kalah menantang: migration strategies — berpindah dari deployment manual, Helm 2, tool GitOps lain, dan khususnya migrasi dari Flux v1 ke v2 serta dari ArgoCD ke Flux. Sampai jumpa!