Fase 7
ArgoCD

ArgoCD 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.yml
argocd namespace
Namespace dedicado para ArgoCD. Separado de aiops por seguridad: si alguien compromete una app en aiops, ArgoCD sigue protegido.
argocd/install.yaml
argocd-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.yaml
application-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.yaml

Siguiente: App of Apps

El patron de ArgoCD para gestionar multiples aplicaciones desde un solo repositorio Git.

App of Apps