ArgoCD je deklarativní nástroj pro průběžné doručování (Continuous Delivery) určený výhradně pro Kubernetes. Implementuje metodologii GitOps, kde Git slouží jako „jediný zdroj pravdy“ (Single Source of Truth) pro stav infrastruktury.
ArgoCD běží jako kontrolér uvnitř Kubernetes clusteru a neustále porovnává stav definovaný v Gitu se stavem skutečně běžícím v clusteru.
ArgoCD používá dva základní ukazatele pro stav aplikace:
| Stav | Popis |
|---|---|
| Synced | Stav v clusteru přesně odpovídá tomu, co je v Gitu. |
| Out of Sync | V Gitu je novější verze nebo někdo ručně změnil konfiguraci v clusteru. |
| Healthy | Všechny prostředky (Pody, Services) běží v pořádku. |
| Degraded | Některé části aplikace selhaly (např. CrashLoopBackOff). |
ArgoCD není omezeno jen na čisté YAML soubory. Podporuje:
V ArgoCD definujete objekt typu Application, který říká: „Vezmi tento kód z tohoto Gitu a nasaď ho do tohoto clusteru“.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: moje-aplikace
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/firma/web-app.git
targetRevision: HEAD
path: overlays/production
destination:
server: https://kubernetes.default.svc
namespace: prod-namespace
syncPolicy:
automated:
prune: true
selfHeal: true
kubectl, ArgoCD to zjistí a díky funkci Self-Healing změnu přepíše zpět podle Gitu.Bezpečnostní poznámka: Protože má ArgoCD plná práva k zápisu do clusteru, je kritické správně nastavit RBAC (Role-Based Access Control) a SSO (Single Sign-On).