Desplegando con Argo CD

Guillermo Garcia - Jul 18 - - Dev Community

Se llegó el gran día, vamos a configurar Argo CD para automatizar nuestros despliegues.

Este es el video de la guía para que lo veas y vayas siguiendo paso a paso conmigo:

Necesitamos un pre-requisito:

- Crear un Personal Access Token (PAT) para conectar el proyecto con Argo CD, por motivos de practicicidad lo he llamado argocd.
Enter fullscreen mode Exit fullscreen mode

Ahora entramos a Argo CD (recuerda que le cambiamos el password hace dos publicaciones y creamos un port-forward con kubectl).

Creando el Proyecto

Vamos a Settings -> Projects y damos click en el botón que dice: "+ NEW PROJECT", llenamos los campos con la información que nos pide.

Nota : Para este caso que es un ejemplo no voy a explicar a detalle el apartado de seguridad todavía, haremos algo básico e "inseguro".

SOURCE REPOSITORIES: *
DESTINATIONS - Server: *, Name: *, Namespace: *
CLUSTER RESOURCE ALLOW LIST - Kind: *, Group: *

Argo CD Settings

Creando la conexión hacia nuestro Repositorio Azure DevOps

Vamos a crear la conexión hacia el repositorio:
Settings -> Repositories y damos click en el botón que dice "+ CONNECT REPO"

  • En Choose your connection methods
    seleccionamos: VIA HTTPS.

  • En Project , seleccionamos el proyecto que creamos previamente.

  • En Repository URL copiamos la URL en HTTPS del proyecto donde están nuestros manifests.
    ejemplo: https://YOURPROJECT@dev.azure.com/YOURPROJECT/DockerHub%20Test/_git/Deploy

  • Username: argocd (esto es opcional por que lo que nos importa es el password).

  • Password: el PAT que generamos al inicio.

Argo CD proyecto

Configurando la aplicación.

Ahora vamos a Applications -> "+ NEW APP" o en el botón de en medio de la página que dice "CREATE APPLLICATION" (suponiendo que no tengas ninguna aplicación).

GENERAL
Application Name: rdicidr
Project Name: Aquí seleccionamos el proyecto que creamos en el paso anterior.

SYNC POLICY podemos dejarlo en manual y después lo cambiamos a automatic para que vean la diferencia.

SOURCE
Repository URL: Al darle click al campo seleccionamos la URL del repositorio que creamos previamente.
Revision: HEAD y Branches
Path: ./k8s
Nota: Nótese que en el campo Path hay un punto antes del /

DESTINATION
Cluster URL: https://kubernetes.default.svc
Namespace: *

Algo como la siguiente imagen:

Repo y k8s configuraciones

Damos click en el botón CREATE, que se encuentra en la parte superior y listo.

Sincronizando la aplicación

Ahora vemos nuestra aplicación (en amarillo) pero todavía no está desplegada en nuestro cluster, debemos dar click en el botón SYNC para que se sincronice.

Esto abrira ventana a la derecha y damos click en el botón SYNCHRONIZE.

NOTA: Cuando es la primera vez que ejecutamos el pipeline en Azure DevOps se quedará "trabado/congelado" en el Stage Deploy esto es porque nos aparecerá un mensaje y un botón solicitando permisos para el usuario "argocd" en el lado superior derecho, aceptamos y listo. Algo como la imagen siguiente:

Autorización en el pipeline

Deploy Manual

Para ver que todo funciona correctamente, volvemos a Azure DevOps y ejecutamos el pipeline para que cambie el TAG de nuestra imagen y volvemos a Argo CD para ver que está en color amarillo esperando que demos en el botón SYNC.

Deploy Automático

Volvemos a Argo CD, en el panel izquierdo Applications -> "nuestra app", ahora en la parte superior damos click en el botón DETAILS bajamos hasta la sección SYNC POLICY y damos click en el botón ENABLE AUTO-SYNC , nos aparecerá una ventana de confirmación (sobre decir que damos click en OK).

Ejecuta el pipeline nuevamente en Azure DevOps y Argo CD automáticamente hará el SYNC y desplegará la nueva version de nuestra app en el cluster.

Una vez hayamos realizado el Deploy de nuestra aplicación podremos verla más o menos así:

Aplicación en Argo CD

Y cuando le damos click veremos la aplicación, y si lees arriba donde dice Synced y Sync OK , puedes ver el detalle del despliegue el autor y los comentarios de cuando se realizó el push a los manifest desde nuestro pipeline en el Stage Deploy. Mira la siguiente imagen:

Detalle de la aplicación

En el siguiente post seguirémos con el siguiente topic de monitoreo.

. . . . . . . . . . . . . . . . . . . . . . .