# Rancher - ArgoCD
[_ArgoCD_](https://argo-cd.readthedocs.io/en/stable/) es una herramienta de automatización de CD y GitOps que te ayudará a desplegar y mantener distribuciones de kubernetes.
## Requisitos
Antes de continuar con la configuración, se da por hecho que ya has instalado _ArgoCD_ en el _Cluster_. Asimismo, se da por hecho que ya cuentas con la contraseña de acceso a _ArgoCD_.
Para ingresar deberás colocar `admin` como usuario y la contraseña que hayas obtenido desde la consola.

## Agregar un repositorio
Una vez que hayas ingresado a la plataforma de _ArgoCD_, lo primero que debes realizar es agregar un repositorio de _Git_ de donde obtendremos las configuraciones. Para ello, da clic en la opción _Manage your repositories_ que es la segunda opción en el menú de la izquierda.

Una vez que estes dentro de la configuración de _Manage your repositories_, ubica la opción de _Repositories_ y da clic en esa opción.

Dentro de _Repositories_, verás varias opciones para conectar nuestro repositorio, en caso de que tengas habilitado la opción de SSH en tu configuración con _Git_ selecciona esa opción, en caso contrario, selecciona la opción de HTTPS.

Dentro de la configuración usando HTTPS, se requiere de la dirección HTTPS del repositorio, así como un acceso mediante usuario y contraseña.

Para obtener ese usuario y contraseña deberás ir a tu repositorio y obtenerlo mediante un _token_, en caso de que estes usando _Gitlab_ lo puedes hacer mediante la siguiente configuración:

Una vez que hayas conectado el repositorio a _ArgoCD_, deberás ir al portal principal y seleccionar la _New App_
## Agregar nueva aplicación

Una vez que des clic en este botón, se abrirá una ventana para configurar el repositorio, deberás ingresar el nombre de la aplicación, seleccionar _Default_ en la parte de _Project_ y en _Sync Policy_ seleccionar _Automatic_.

En la siguiente sección de _Source_ deberás seleccionar el repositorio del cual obtendrás la configuración, así como el path de la _Chart_.

En la siguiente configuración _Destination_ selecciona la opción por defecto en el campo _Cluster URL_ y coloca el nombre del namespace que deseas crear:

Finalmente, revisa los valores de Helm y en caso de que todo este correcto da clic en el botón _Create_.

Con esta configuración, la aplicación se creará y podrás verla en el panel principal. Para ver la configuración detallada da clic sobre la configuración.

Al dar clic sobre la configuración, te mostrará una vista detallada de los recursos que se estan creando y conectando en el _Namespace_, deberás poner atención en las secciones:
- App Health
- Current Sync Status
- Last Sync Result

## Actualizar Aplicación
En caso de que actualices tu repositorio y quieras reflejar esos cambios en tu aplicación, deberás dar clic en el botón _Sync_.

Posteriormente, se abrirá una ventana en dónde tendrás que seleccionar la opción _Force_ y dar clic en _Synchronize_.

## Logs & Troubleshooting
En caso de que algún componente de la aplicación tenga algún error o contenga un estatus diferente a _Health_, puedes ver información adicional de cada elemento, dando clic sobre el elemento deseado.

Al dar clic, sobre el elemento se abrirá una ventana con información, para ver la información acerca de los eventos, da clic en la opción _Events_.

También puedes ver los _Logs_ de los elementos si das clic en esa opción.