GitOps con Argo CD

Gisela Torres
Computación en la nube
April 12, 2022

GitOps con Argo CD

Hoy he estado jugando con Argo CD, una herramienta que nos facilita GitOps que ahora está tan de moda. En este artículo te cuento cómo probarlo con un ejemplo sencillo.

Desplegar Argo CD en tu clúster de Kubernetes

Lo primero que debes hacer es desplegar Argo CD en tu clúster. Para mi ejemplo he creado uno en AKS con los siguientes comandos:

Una vez provisionado, necesito lanzar estos dos comandos para desplegar la herramienta:

Como ves, he creado un namespace y he desplegado un manifiesto que Argo CD pone a nuestra disposición para que sea lo más sencillo posible.

Ahora que ya lo tienes instalado en tu clúster, ya puedes acceder a su interfaz para ver qué pinta tiene. Como no está expuesto directamente fuera del clúster podemos hacer uso de Port Forwarding para no tener que exponerlo de manera permanente, y que solo sea accesible desde tu máquina:

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

Ahora ya puedes acceder desde http://localhost:8080.

Página de inicio de Argo CD

El usuario con el que debes iniciar sesión es admin. Para recuperar la contraseña necesitas ejecutar el siguiente comando (es recomendable cambiar esta después):

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

Al introducir las credenciales accederás a la interfaz de Argo CD pero todavía no tendrás nada que ver.

Iniciada sesión en Argo CD sin nada que ver

Vale y ahora ¿qué hago con esto? Pues lo siguiente que puedes hacer es desplegar unan aplicación haciendo uso de un repositorio git.

Desplegar una aplicación de ejemplo

En este caso vamos a hacer uso de uno en Github. Para este artículo he creado este 0GiS0/argocd-demo con varios archivos con diferentes recursos. Ahora, en vez de descargarlo en mi local y hacer algo como kubectl apply -f . voy a usar Argo CD para que se ocupe de desplegar todo lo que he definido en este repo. Para ello haz clic en el botón CREATE APPLICATION con esta configuración:

Creación de una aplicación en el clúster de Kubernetes con Argo

Antes de continuar debes indicar también el clúster de Kubernetes de destino, así como el namespace donde se va a instalar.

Configuración del clúster de destino durante la creación de la aplicación

Nota: para tu ejemplo puedes hacer un fork de mi repo y así poder hacer los cambios que consideres.

Si la configuración es correcta, verás que el despliegue comienza:

Desplegando nuestra aplicación en Kubernetes a través de Argo CD

Una vez que finalice (lo sabrás porque aparece con el status Synced y Healthy) podrás seleccionar la aplicación y verás algo como lo siguiente.

Visualización de los recursos desplegados para esta aplicación a través de Argo CD

¿A qué mola? Lo que estás viendo son todos los recursos que se han desplegado provenientes de tu repositorio de Github. Ahora, la magia está en que si modifico cualquiera de los archivos de mi repositorio, por ejemplo el número de instancias que quiero que tenga el frontal de WordPress:

En cuanto haga push de los cambios a mi repo, Argo CD se dará cuenta (comprueba cambios cada 3 minutos):

Argo CD actualiza la aplicación con los cambios del repositorio en GitHub

Para este artículo he elegido la sincronización automática, pero también es posible que esta sea manual y poder comprobar diferencias antes de hacer cualquier cambio. Lo ideal es que tengamos un branch protegido sobre el que no se puedan hacer cambios sin haber pasado antes por una Pull Request, por ejemplo que nos permita validar que todo lo que vamos a sincronizar está en orden.

¡Bienvenido al mundo del GitOps!

Puedes leer el Articulo original AQUI-

Gisela Torres

Gisela Torres trabaja en Microsoft como Cloud Solution Architect. Se trata de un puesto técnico cuya misión es apoyar y asesorar sobre soluciones y arquitecturas cloud utilizando Microsoft Azure como plataforma. Antes de eso trabajo como arquitecta de software y desarrolladora de aplicaciones en varias empresas. Durante esos años recibio varios premios por ejemplo Most Valuable Professional en Microsoft Azure. Le encanta programar y la tecnología en general.

Más artículos de Gisela en su blog - https://www.returngis.net/

Related Posts

Boletin informativo SpainClouds.com

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form