Fase 7
ArgoCDArgoCD Overview · GitOps
ArgoCD convierte Git en la fuente de verdad del cluster. Compara el estado declarado contra el estado real, y si divergen reconcilia automáticamente. Es la forma moderna de desplegar en Kubernetes.
01
Antes y Despues de ArgoCD
La diferencia entre kubectl apply manual y GitOps no es cosmética: cambia la forma en que se gestiona la infraestructura.
Deploy
Sin ArgoCDkubectl apply -f k3s/manifests/ manual
Con ArgoCDPush a Git → ArgoCD sincroniza automaticamente
Drift
Sin ArgoCDNadie sabe si el cluster difiere de Git
Con ArgoCDArgoCD detecta OutOfSync en ~3 minutos y lo reporta
Self-healing
Sin ArgoCDSi alguien borra un recurso, outage hasta intervencion manual
Con ArgoCDArgoCD lo recrea automaticamente. Max 3 min de outage.
Audit trail
Sin ArgoCDSin registro de quien cambio que en el cluster
Con ArgoCDGit history es el audit trail. Cada cambio tiene autor y commit message.
Rollback
Sin ArgoCDRevertir cambios manualmente, paso a paso
Con ArgoCDgit revert + push → ArgoCD aplica el rollback automaticamente
02
La Application de ArgoCD
Un solo YAML define que ArgoCD gestione el proyecto. Se aplica una vez con kubectl, después ArgoCD toma el control.
argocd/argocd-app.yml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: aiops-lab
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/agusm2002/rocky-linux-aiops-lab
targetRevision: main
path: k3s/manifests
directory:
recurse: true
destination:
server: https://kubernetes.default.svc
namespace: aiops
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true prune + selfHeal = cluster siempre igual a Git. prune elimina recursos que se removieron del repo. selfHeal recrea recursos que se borraron manualmente. Con ambos, el estado del cluster nunca diverge del repo.
03
Recursos de ArgoCD
ArgoCD se instala con un solo comando y estos recursos. El único que se escribe a mano es la Application.
Application aiops-lab
Define el source (repo Git + path), el destination (cluster + namespace) y la sync policy. Es el unico recurso que se aplica manualmente.
argocd-app.ymlargocd namespace
Namespace dedicado para ArgoCD. Separado de aiops por seguridad: si alguien compromete una app en aiops, ArgoCD sigue protegido.
argocd/install.yamlargocd-server Service
Expone la UI y API de ArgoCD. En el lab se accede via port-forward. En OCI se expone via Ingress.
argocd/install.yamlapplication-controller
El cerebro de ArgoCD. Monitorea el repo Git y compara contra el estado real del cluster. Si divergen, aplica la sync policy.
argocd/install.yamlSiguiente: App of Apps
El patron de ArgoCD para gestionar multiples aplicaciones desde un solo repositorio Git.