Belajar Flannel - GitOps & Deployment as Code
Episode 18 of 23

Belajar Flannel - GitOps & Deployment as Code

Episode ini membawa Flannel ke era GitOps: mengelola manifest dan Helm values sebagai code melalui Argo CD atau Flux, menerapkan versioning dan review flow, serta strategi penerapan bertahap untuk upgrade yang aman dan bisa di-rollback.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Sejauh ini kalian menerapkan Flannel lewat kubectl langsung. Di tim produksi, cara itu meninggalkan masalah: siapa yang mengubah konfigurasi, kapan, dan bagaimana mengembalikannya? GitOps menjawab semua pertanyaan ini dengan satu prinsip: git adalah sumber kebenaran.

Episode 18 membawa Flannel ke alur GitOps. Kalian akan mengelola manifest dan Helm values sebagai code lewat Argo CD atau Flux, menerapkan versioning dan review flow, serta men-deploy perubahan secara bertahap.

Menyimpan Flannel sebagai Code

Manifest vs Helm Values

Ada dua bentuk Flannel sebagai code: manifest mentah kube-flannel.yml yang disimpan langsung di repository, atau Helm chart dengan file values. Manifest sederhana dan transparan; Helm memudahkan override nilai per cluster lewat satu file.

Siapkan repository infrastruktur
mkdir -p clusters/prod/flannel
cp kube-flannel.yml clusters/prod/flannel/
git add clusters/prod/flannel/
git commit -m "chore(flannel): pin manifest v0.28.8"

Perintah git add dan git commit menandakan perubahan Flannel kini masuk riwayat dan bisa di-review seperti kode.

Nilai yang Perlu Disimpan

Simpan konfigurasi yang konsisten per cluster: image tag, backend, MTU, dan CIDR. Jika ada perbedaan antar cluster, misalnya produksi memakai host-gw sementara staging memakai vxlan, representasikan sebagai values terpisah per environment.

Argo CD dan Flux

Argo CD Application

Argo CD men-deploy Flannel dari repository melalui Application:

Argo CD Application
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: flannel
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/org/infrastructure.git
    path: clusters/prod/flannel
    targetRevision: main
  destination:
    server: https://kubernetes.default.svc
    namespace: kube-flannel
  syncPolicy:
    automated:
      prune: true

Application di atas menyinkronkan folder clusters/prod/flannel dari branch main ke namespace kube-flannel. Perubahan di git otomatis diterapkan ke cluster.

Flux Kustomization

Flux memakai Kustomization dengan pendekatan serupa:

Flux Kustomization
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: flannel
  namespace: flux-system
spec:
  interval: 10m
  sourceRef:
    kind: GitRepository
    name: infrastructure
  path: ./clusters/prod/flannel
  prune: true

Baik Argo CD maupun Flux mengarahkan Flannel ke namespace yang sama dan mengelola siklus hidupnya dari git.

Versioning dan Review Flow

Tag Image yang Jelas

Prinsip pertama GitOps: tidak ada perubahan langsung di cluster. Semua perubahan lewat pull request. Kunci suksesnya adalah image tag yang jelas sehingga diff di review mudah dibaca.

Contoh commit upgrade
git commit -m "feat(flannel): upgrade flanneld ke v0.28.8"
git push origin main

Perintah git push mengirim perubahan ke repository. Tim yang lain me-review diff sebelum disetujui, dan Argo CD atau Flux menerapkannya setelah masuk branch target.

Enkripsi dan Kunci di Repository

Jangan simpan secret di manifest. ConfigMap Flannel berisi net-conf.json yang bukan secret, tetapi jika backend memakai kunci, misalnya IPsec, gunakan Secret Kubernetes dan rujuk lewat mekanisme yang aman.

Penerapan Bertahap

Kanary di Staging Dulu

Selalu terapkan perubahan di cluster staging sebelum produksi. Upgrade Flannel di staging, verifikasi konektivitas, lalu promosikan ke produksi dengan mengganti nilai branch atau folder di repository.

Alur bertahap
kubectl -n kube-flannel rollout restart ds/kube-flannel-ds
kubectl -n kube-flannel rollout status ds/kube-flannel-ds

Perintah kubectl -n kube-flannel rollout status memastikan DaemonSet selesai sebelum lanjut ke langkah berikutnya.

Rollback yang Cepat

Keunggulan GitOps yang paling terasa saat rollback: cukup revert commit atau atur ulang targetRevision di Application, dan Argo CD atau Flux mengembalikan Flannel ke versi sebelumnya secara otomatis. Tidak ada tebakan manual tentang apa yang berubah.

Penutup

Episode 18 mengubah cara kalian mengelola Flannel: dari perintah langsung menjadi code yang di-review, di-versioning, dan diterapkan otomatis lewat GitOps.

Inti yang harus dibawa pulang:

  • Git adalah sumber kebenaran untuk konfigurasi Flannel.
  • Manifest dan Helm values disimpan per environment di repository.
  • Argo CD Application atau Flux Kustomization menerapkan dari git.
  • Semua perubahan lewat pull request dengan diff yang jelas.
  • Upgrade diuji di staging sebelum dipromosikan ke produksi.
  • Rollback cukup dengan revert commit atau mengubah targetRevision.

Di episode 19 selanjutnya kita akan mengasah diagnostik: performance dan troubleshooting — kumpulan perintah seperti ip route, ip -d link, dan journalctl, plus pemecahan masalah umum seperti Pod gagal terhubung, VXLAN down, br_netfilter mati, MTU mismatch, dan konflik subnet lease.