Argo CD: primer despliegue GitOps con revisión

Índice de contenido
  1. Instala desde una versión oficial revisada
  2. Acceso al panel
  3. Prepara un repositorio pequeño
  4. Revisa diferencias antes de sincronizar
  5. Automatización con límites
  6. Recuperación
  7. Preguntas frecuentes
    1. ¿GitOps significa publicar cada push?
    2. ¿prune solo borra archivos de Git?
    3. ¿Volver al commit anterior recupera la base de datos?
  8. En pocas palabras
  9. Conclusión
  10. Fuentes y documentación

GitOps utiliza un repositorio como referencia declarativa de configuración. Argo CD observa diferencias y puede reconciliarlas en Kubernetes. No significa que cualquier commit deba aplicarse automáticamente sin revisión.

Utiliza un clúster y repositorio de laboratorio sin secretos. Comprueba contexto antes de instalar un controlador que tendrá permisos sobre recursos.

Instala desde una versión oficial revisada

Selecciona una release mantenida y sus instrucciones. El manifiesto stable puede cambiar; una referencia por versión facilita reproducir el entorno.

kubectl config current-context
kubectl create namespace argocd

Aplica después el manifiesto elegido siguiendo la documentación y revisa qué permisos crea. No uses una URL de otra persona que empaquete una instalación desconocida.

Acceso al panel

Para una prueba, port-forward permite llegar al servicio sin publicarlo mediante un balanceador:

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

La conexión del ejemplo usa TLS. Verifica la identidad y configura confianza apropiada antes de introducir credenciales. No conviertas --insecure en una recomendación administrativa permanente.

La contraseña inicial y el mecanismo para obtenerla son sensibles. No publiques la salida y cambia el acceso inicial según el procedimiento oficial.

Prepara un repositorio pequeño

Crea manifiestos de una aplicación de práctica en una carpeta y evita recursos compartidos o de producción. Guarda imagen y configuración con versiones deliberadas.

Una definición de aplicación tiene una estructura como:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: practica
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/TU_ORGANIZACION/TU_REPOSITORIO.git
    targetRevision: main
    path: manifests
  destination:
    server: https://kubernetes.default.svc
    namespace: practica
  syncPolicy:
    syncOptions:
      - CreateNamespace=true

Sustituye el repositorio y revisa permisos y contenido antes de aplicar. El ejemplo no activa sincronización automática ni eliminación automática.

Revisa diferencias antes de sincronizar

Comprueba recursos nuevos, modificaciones y eliminaciones. Luego sincroniza manualmente y verifica la aplicación, no solo el estado mostrado por el controlador.

Si una imagen no descarga o un pod no está listo, consulta eventos y logs de Kubernetes. Git sincronizado no equivale a aplicación funcional.

Automatización con límites

self-heal puede corregir diferencias respecto a Git; prune puede eliminar recursos que ya no estén declarados. Entiende el efecto antes de habilitarlos.

Protege ramas, repositorios y cuentas que modifican manifiestos. Quien cambia el origen de configuración puede influir en el clúster, por lo que esos permisos forman parte de la seguridad del despliegue.

Recuperación

Volver a un commit anterior puede restaurar configuración, pero no deshace por sí solo una migración de datos. Conserva una estrategia de recuperación independiente.

Para otros equipos, crea proyectos y RBAC con alcance limitado. No compartas la cuenta administrativa para todas las tareas.

Preguntas frecuentes

¿GitOps significa publicar cada push?

No. Puedes mantener revisión y sincronización manual. La automatización es una decisión que debe corresponder al proceso.

¿prune solo borra archivos de Git?

No. Puede provocar eliminación de recursos del clúster según la configuración. Revisa alcance antes de habilitarlo.

¿Volver al commit anterior recupera la base de datos?

No automáticamente. Datos y efectos externos requieren respaldo y procedimientos propios.

En pocas palabras

Argo CD compara el estado declarado en Git con recursos del clúster. La automatización requiere límites de acceso y comprensión de los cambios que puede aplicar o eliminar.

Conclusión

Practica un cambio y su reversión en un namespace aislado. Activa sincronización automática solo después de revisar permisos, protección de Git y tratamiento de datos externos.

Para continuar, revisa Instalar Kubernetes en Ubuntu desde cero: guía completa y Docker: qué es y cómo usarlo para ejecutar contenedores.

Fuentes y documentación

Documentación de argo-cd.readthedocs.io.

Documentación de argo-cd.readthedocs.io.

Subir

Descubre más de Sergio Caballero

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Continuar leyendo