LA NINA // BLOG
Kembali ke Indeks Catatan

GitOps Skala Enterprise: Otomasi ArgoCD, Manifest Hardening, dan Zero-Trust Kubernetes

Paradigma Deklaratif: Git Sebagai Sumber Kebenaran Tunggal

Dalam tata kelola kluster Kubernetes enterprise, intervensi manual menggunakan kubectl apply secara langsung di lingkungan produksi menciptakan risiko inkonsistensi (configuration drift) dan celah audit keamanan. Paradigma GitOps mengubah alur kerja ini dengan menetapkan repositori Git yang terenkripsi dan terlindungi (protected branch) sebagai satu-satunya representasi sah (single source of truth) dari infrastruktur.

TEXT
┌──────────────┐         Git Push / PR         ┌──────────────┐
│  Developer   ├──────────────────────────────►│ Git Repo     │
└──────────────┘                               │ (Manifests)  │
                                               └──────┬───────┘
                                                      │ Pull / Reconcile
                                                      ▼
┌─────────────────────────────────────────────────────────────┐
│ Kubernetes Production Cluster                               │
│  ┌──────────────────────┐      Sync State   ┌────────────┐  │
│  │ ArgoCD Application   ├──────────────────►│ Live K8s   │  │
│  │ Controller (Drift)   │                   │ Resources  │  │
│  └──────────────────────┘                   └────────────┘  │
└─────────────────────────────────────────────────────────────┘

Dengan model tarik (pull-based reconciliation) yang dijalankan oleh operator di dalam kluster, sistem tidak memerlukan pembukaan port SSH atau kube-apiserver ke jaringan publik.


Mitigasi State Drift & Self-Healing

ArgoCD memantau kondisi kluster (live state) secara terus-menerus dan membandingkannya dengan definisi di repositori (target state). Jika terjadi perubahan tidak sah di kluster, mekanisme self-healing secara otomatis mengembalikan konfigurasi ke spesifikasi Git dalam hitungan detik.

Contoh spesifikasi deklaratif Application ArgoCD dengan audit otomatis:

YAML
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: edge-gateway-service
  namespace: argocd
spec:
  project: default
  source:
    repoURL: 'https://git.example.internal/infrastructure/k8s-apps.git'
    targetRevision: HEAD
    path: overlays/production
  destination:
    server: 'https://kubernetes.default.svc'
    namespace: edge-production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

Keamanan Manajemen Rahasia: Sealed Secrets

Menyimpan credential atau token dalam bentuk plaintext di Git merupakan pelanggaran kepatuhan mutlak. Solusi yang diadopsi adalah kriptografi asimetris menggunakan Bitnami SealedSecrets:

  1. Kunci privat (private key) hanya berada di dalam kluster Kubernetes dan tidak pernah keluar.
  2. Pengembang mengenkripsi Secret lokal menggunakan kunci publik (public certificate).
  3. Manifest SealedSecret aman untuk di-commit ke Git secara publik.
  4. Controller di kluster mendekripsi manifest menjadi Secret standar Kubernetes saat sinkronisasi berjalan.

Melalui standarisasi GitOps, setiap perubahan infrastruktur terdokumentasi rapi di git log, dapat di-rollback instan dengan git revert, dan memenuhi standar Zero-Trust tertinggi.

Kembali ke Atas ↑