lunes, 10 de junio de 2024

Cómo Instalar Argo CD

Continuando con nuestros posts de DevOps en español, ya hemos cubierto la parte CI (Continue Integration) ahora vamos a la parte CD (Continue Delivery).
## Qué es Argo CD
Comenzamos por el principio, vamos a definir qué es Argo CD.



>[Argo CD](https://www.redhat.com/es/topics/devops/what-is-argocd) es una herramienta declarativa de distribución continua para Kubernetes. Se puede utilizar como una herramienta independiente o como parte del flujo de trabajo de integración y distribución continuas (CI/CD) para distribuir los recursos que los clústeres necesitan.

>Para gestionar las configuraciones de la infraestructura y las aplicaciones en consonancia con GitOps, su repositorio de Git debe ser la única fuente de información. Es necesario expresar el estado deseado de manera declarativa, crear versiones de él y extraerlo automáticamente. Aquí es donde entra en juego Argo CD.

## Instalación de Argo CD

Podemos instalar Argo CD de 3 formas diferentes:

1. Manual (manifest)
2. Helm
3. Kubeconfig

**Nota:** En este post vamos a usar la forma "manual" por que todavía no hemos cubierto los temas de helm y kubeconfig.

Para instalar Argo CD debemos realizar los siguientes comandos:

```bash
	kubectl create namespace argocd
	kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
```

Esto primero creará un nuevo namespace llamado argocd y después se crearan los recursos necesarios y se instalará argocd.

Verificamos que ya estén ejecutándose los pods de argocd:
```bash
	kubectl get pods -n argocd
```

Para poder entrar al panel de administración primero debemos obtener la contraseña del usuario admin, para poder ver dicha contraseña debemos ver en los secrets:

```bash
	kubectl get secrets -n argocd
	kubectl edit secret argocd-initial-admin-secret -n argocd
```

Debajo de **data** vemos el campo que dice **password:** debemos copiar su valor y realizamos el siguiente comando ejemplo:

**Nota:** Para este ejemplo el valor de password es: WW91clN1cGVyU2VjcmV0UGFzc3dvcmQK

```bash
	echo WW91clN1cGVyU2VjcmV0UGFzc3dvcmQK | base64 --decode
    YourSuperSecretPassword    
```

Estos nos devolvera la contraseña (en este ejemplo YourSuperSecretPassword) que necesitamos para ingresar en el panel de administración, por lo que procedemos a copiarlo y guardarlo temporalmente ya que cambiaremos este password.

## Accediendo al panel de administración

En mi caso estoy instalando argocd en un cluster local (on-premise) por lo que tendré que realizar un port-forward para ingresar a argocd.

```bash
	kubectl port-forward svc/argocd-server -n argocd 8080:80
```

## Accediendo al panel de administración de argocd

http://localhost:8080
**user:** admin
**pass:** YourSuperSecretPassword

## Borrado de la contraseña predeterminada

Una vez que hemos ingresado debemos borrar el secret por default
```bash
	kubectl delete secret argocd-initial-admin-secret -n argocd
```

Aquí está el repositorio de [Azure DevOps](https://dev.azure.com/guillermogarcialedezma/DockerHub%20Test/).

Acá te dejo el video de esta configuración por si tienes dudas:
En nuestro siguiente post veremos como configurar nuestro repositorio de Azure con argoCD para automatizar los deploys.

No hay comentarios.: