Primeros pasos con ArgoCD
¿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)
kubectlconfigurado 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é.