diff --git a/content/post/despliegue-crossplane-eks/featured.png b/content/post/despliegue-crossplane-eks/featured.png new file mode 100644 index 0000000..c5eebe4 Binary files /dev/null and b/content/post/despliegue-crossplane-eks/featured.png differ diff --git a/content/post/despliegue-crossplane-eks/featured.png:Zone.Identifier b/content/post/despliegue-crossplane-eks/featured.png:Zone.Identifier new file mode 100644 index 0000000..1ea1c81 --- /dev/null +++ b/content/post/despliegue-crossplane-eks/featured.png:Zone.Identifier @@ -0,0 +1,4 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=https://imgur.com/ +HostUrl=https://i.imgur.com/dGsLI6i.png diff --git a/content/post/despliegue-crossplane-eks/index.md b/content/post/despliegue-crossplane-eks/index.md index dd3e627..c4ae5d3 100644 --- a/content/post/despliegue-crossplane-eks/index.md +++ b/content/post/despliegue-crossplane-eks/index.md @@ -1,7 +1,17 @@ --- title: "Despliegue de EKS usando CrossPlane + ArgoCD" -date: 2023-07-14T03:52:34+02:00 -draft: true +date: 2023-06-01T03:52:34+02:00 +draft: +image: featured.png +categories: + - documentación + - proyecto final +tags: + - IaC + - kubernetes + - AWS + - Crossplane + - ArgoCD --- ## Objetivos que se quieren conseguir @@ -301,3 +311,123 @@ Tras aproximadamente **15 minutos**, el clúster estará creado junto a sus nodo El escenario final de la demo es el siguiente: ![Escenario](https://i.imgur.com/5KqPm1R.png) + +Y el flujo de trabajo en el que consiste la primera demo, con el clúster ya desplegado es el siguiente: + +1. Se realiza un commit a **github** con un cambio en el manifiesto **aws-eks.yaml**, concretamente se cambia el número de nodos que va a tener el clúster de EKS. +2. **ArgoCD** se da cuenta de que se han realizado cambios en el repositorio, y, aplicando la metodología **gitops**, hace que en los recursos que gestiona se vean reflejados dichos cambios. Compruebo que en el panel de la aplicación se ve reflejado el cambio en el recurso **nodegroup**. +3. **Crossplane**, haciendo uso del provider de AWS, se comunica con la API referente a EKS, e indica que el número de nodos ha cambiado. +4. Finalmente, en **AWS** se hacen efectivos los cambios, por lo que podemos comprobarlo accediendo a la consola de **EKS** y viendo el nuevo nodo. + +![Demo1](https://i.imgur.com/5Up9qo2.png) + +Tras ello, para demostrar el funcionamiento de Crossplane, y como este asegura que se siga el marco de trabajo **GitOps**, se añade un nodo desde la consola de AWS, mostrando como Crossplane lo detecta y vuelve a dejarlo como está definido en los recursos. + +### Despliegue en el clúster + +Una vez con el clúster, se va a desplegar una aplicación sobre él, utilizando también crossplane. El escenario es el siguiente: + +![Escenario2](https://i.imgur.com/ZqjeuTb.png) + +#### Configuración del proveedor de kubernetes + +Para configurar el proveedor de kubernetes para que tenga acceso al clúster que acabamos de crear, se ejecutan los siguientes comandos; Primero obtenemos el **kubeconfig** y lo guardamos en un fichero: + +```bash +kubectl --namespace crossplane-system \ + get secret proyecto-eks-cluster \ + --output jsonpath="{.data.kubeconfig}" \ + | base64 -d >kubeconfig.yaml +``` + +Enviamos el contenido del fichero a la variable KUBECONFIG: + +```bash +KUBECONFIG=$(