¿Qué es ArgoCD?

ArgoCD es una herramienta de entrega continua declarativa basada en GitOps para Kubernetes. Automatiza el despliegue de aplicaciones sincronizando continuamente el estado deseado definido en un repositorio Git con el clúster de Kubernetes. El repositorio Git se convierte en la única fuente de verdad.

Requisitos previos

  • Un clúster de Kubernetes en funcionamiento (o kind para pruebas locales)
  • kubectl configurado para acceder al clúster
  • Un repositorio Git con manifiestos de Kubernetes

Instalación de ArgoCD

Cree el namespace de ArgoCD y aplique el manifiesto de instalación oficial:

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Espere a que todos los pods estén listos:

kubectl wait --for=condition=Ready pod --all -n argocd --timeout=120s

Acceder a la interfaz de ArgoCD

Por defecto el servidor de ArgoCD no está expuesto externamente. Use port-forwarding para acceso local:

kubectl port-forward svc/argocd-server -n argocd 8080:443

Abra https://localhost:8080 en su navegador y obtenga la contraseña inicial del administrador:

kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath="{.data.password}" | base64 -d

Inicie sesión con el usuario admin y la contraseña obtenida.

Instalación del CLI de ArgoCD

# macOS
brew install argocd

# Linux
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd && sudo mv argocd /usr/local/bin/

Autentique el CLI:

argocd login localhost:8080 --username admin --password <su-contraseña> --insecure

Desplegar su primera aplicación

Cree una aplicación que apunte al repositorio de ejemplos oficial de ArgoCD:

argocd app create guestbook \
  --repo https://github.com/argoproj/argocd-example-apps.git \
  --path guestbook \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace default

Inicie la primera sincronización:

argocd app sync guestbook

Compruebe el estado:

argocd app get guestbook

Activar la sincronización automática

Por defecto ArgoCD no aplica cambios desde Git de forma automática. Active la sincronización automática con autocorrección para que el clúster refleje siempre el estado del repositorio:

argocd app set guestbook --sync-policy automated --self-heal --auto-prune

Con --auto-prune, los recursos eliminados en Git también se eliminan del clúster.

Actualizar ArgoCD

Aplique el manifiesto de instalación de la nueva versión:

kubectl apply -n argocd \
  -f https://raw.githubusercontent.com/argoproj/argo-cd/<nueva-version>/manifests/install.yaml

Consulte la página de releases para conocer la última versión. Tras la actualización, vuelva a aplicar cualquier ConfigMap personalizado (argocd-cm) para conservar su configuración.


Si deseas apoyarme, invítame un café.