Despliega tu primera aplicación con un manifiesto declarativo
Apunta Argo CD a un repositorio de Git mediante un recurso Application y observa cómo se sincroniza.
Argo CD se configura con recursos de Kubernetes, como todo lo demás en el clúster. El principal es Application: dice “toma los manifiestos de esta ruta de este repositorio y mantenlos aplicados en este clúster y namespace”. Esta guía crea un pequeño repositorio de configuración, lo registra con un Application y luego modifica Git para ver cómo ocurre la sincronización. Asume que Argo CD está instalado y que puedes iniciar sesión (consulta la guía anterior).
Prepara un repositorio de configuración
Crea un repositorio de Git (en cualquier host al que Argo CD pueda acceder) con esta estructura:
webapp-config/
├── application.yaml # el Application de Argo CD, aplicado una vez a mano
└── dev/
├── deployment.yaml
└── service.yaml
dev/deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
spec:
replicas: 2
selector:
matchLabels:
app: webapp
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: nginx:1.25
ports:
- containerPort: 80
dev/service.yaml:
apiVersion: v1
kind: Service
metadata:
name: webapp
spec:
selector:
app: webapp
ports:
- port: 80
targetPort: 80
Los manifiestos omiten deliberadamente el namespace. Argo CD los aplica en el namespace de destino que configures a continuación. Mantén application.yaml fuera de la ruta sincronizada (dev/) para que la aplicación no intente gestionar su propia definición. Si el repositorio es privado, agrega primero las credenciales en Settings → Repositories en la interfaz.
Escribe el manifiesto Application
application.yaml:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: webapp-dev
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/your-org/webapp-config.git
targetRevision: HEAD
path: dev
destination:
server: https://kubernetes.default.svc
namespace: webapp
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
prune: true
selfHeal: true
Las partes importantes:
sourcees donde vive el estado deseado: el repositorio, la revisión a seguir (HEADsigue la rama predeterminada) y la carpeta dentro de él.destinationes donde se aplica.https://kubernetes.default.svcsignifica “el clúster en el que se ejecuta el propio Argo CD”. Para gestionar un clúster externo, debes registrarlo y usar la dirección de su servidor de API.project: defaultcoloca la aplicación en el proyecto integrado de Argo CD. Los proyectos agrupan aplicaciones y restringen lo que pueden desplegar.syncPolicyactiva la sincronización automática y crea el namespace si no existe. Lo que hacenpruneyselfHealtiene su propia guía. Comprueba elapiVersioncon la documentación actual, ya que es el campo que más probablemente cambie entre versiones.
Registra la aplicación
Haz commit y push del repositorio, y luego aplica el manifiesto al clúster una sola vez:
kubectl apply -f application.yaml
Idealmente, esta es la última vez que ejecutas kubectl apply para esta aplicación. A partir de aquí, los cambios pasan por Git.
Explora el árbol de recursos
Abre la interfaz. La aplicación webapp-dev aparece y, en unos segundos, pasa a Synced y Healthy. Ábrela para ver el árbol de recursos: el Service, el Deployment, el ReplicaSet que está detrás y dos Pods. Al seleccionar un recurso se muestra su manifiesto en vivo, sus eventos y (para los Pods) sus logs, lo que suele ser más rápido que cambiar a la terminal. Confírmalo también desde el clúster:
kubectl get all -n webapp
Cambia Git y observa la sincronización
Edita dev/deployment.yaml en tu repositorio, cambia la etiqueta de la imagen a nginx:1.26 y haz commit en la rama seguida. Argo CD consulta los repositorios cada tres minutos de forma predeterminada, así que puedes esperar o hacer clic en Refresh en la aplicación para que lo compruebe de inmediato. La aplicación muestra brevemente OutOfSync y luego se despliega un nuevo ReplicaSet. Verifica que el cambio se aplicó:
kubectl get deploy webapp -n webapp \
-o jsonpath='{.spec.template.spec.containers[0].image}'; echo
Ese es todo el ciclo: editas Git y Argo CD hace converger el clúster. La siguiente guía explica cómo controlar ese comportamiento.
Guías populares
-
Push vs Pull: cómo entrega Argo CD en Kubernetes Por qué la entrega basada en pull y dirigida por Git cambia cómo despliegas, proteges y recuperas clústeres. -
Configura multiclúster con Argo CD Gestiona despliegues en varios clústeres. -
Controla el comportamiento de sincronización: auto-sync, prune, self-heal y rollback Decide cuándo Argo CD aplica los cambios, qué elimina y cómo deshacer un mal despliegue.