1. Prinsip Utama Filosofi GitOps
GitOps adalah cara melakukan Continuous Deployment di mana seluruh deskripsi infrastruktur dan manifesto status aplikasi (Kubernetes YAML, Helm Charts, Kustomize) disimpan secara deklaratif di dalam repositori Git.
- Declarative System: Seluruh konfigurasi kluster didefinisikan dalam bentuk berkas manifes.
- Git as Single Source of Truth: Repositori Git menjadi satu-satunya sumber kebenaran status aplikasi.
- Automated Sync & Self-Healing: Agen (ArgoCD) secara terus-menerus membandingkan status di Git (Desired State) dengan status aktual di Kluster Kubernetes (Live State). Jika ada perbedaan (drift), ArgoCD akan melakukan Self-Healing / Sync otomatis.
2. Contoh Manifes ArgoCD Application
argocd-app-manifest.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: payment-microservice
namespace: argocd
spec:
project: default
source:
repoURL: 'https://github.com/myorg/k8s-manifests.git'
targetRevision: HEAD
path: environments/production
destination:
server: 'https://kubernetes.default.svc'
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true