Cómo desplegar ArgoCD en EKS con SSO sin gestionar un solo pod
Después de bastante tiempo entre eventos, organizaciones y mucho trabajo, volvemos por aquí para hablar de uno de los últimos “avances” que AWS ha presentado.
Con todo el tema de la IA, parece que solo estemos hablando de modelos, agentes y prompts. Pero nada más lejos de la realidad, seguimos gestionando muchísima infraestructura, y AWS sigue lanzando cosas muy interesantes para simplificar esa parte. (menos mal, algún anuncio no relacionado con IA también nos gusta escuchar).
Sin intentar que esto tuviese algún sentido, hemos terminado cerrando una rueda interesante alrededor de EKS, ArgoCD y IAM Identity Center en nuestros posts de #awstwins. La verdad es que en este post he tirado un poco de clickbait, a lo influencer, pero en realidad volvemos al barro y con lo de siempre: Kubernetes y automatización.
En concreto, vamos a hablar de EKS Capabilities.
En posts anteriores como el de acontinuación instalábamos y gestionábamos Argo CD nosotros. Hoy toca darle otra vuelta. Que para eso estamos, ¿no?
¿Qué es EKS Capabilities?
EKS Capabilities es una nueva feature de AWS que permite utilizar herramientas del ecosistema Kubernetes gestionadas directamente por AWS.
Es decir,no tienes que instalar nada, mantener nada ni preocuparte de por qué algo está caído.
Básicamente nuestro estilo de vida, no?
Actualmente hay 3 capabilities disponibles:
ArgoCD
De este ya hemos hablado mucho en diferentes posts y es el que vamos a usar puesto que cerramos el circulo. Incluiremos la parte del SSO.KRO (Kubernetes Resource Orchestrator)
Permite crear recursos de forma declarativa agrupando varios recursos en uno solo.ACK (AWS Controllers for Kubernetes)
Permite gestionar recursos de AWS directamente desde Kubernetes.
¿La parte interesante de todo esto?
Estas capabilities operan en el control plane de EKS, no en tus nodos ni en tu cuenta.
Resultado: menos componentes que mantener y menos cosas que se rompan.
¿Qué hemos desplegado?
Para ir rápido y evitar mantener algo "custom", hemos hecho lo de siempre: usar módulos de la community.
En este caso:
- Una VPC
- Un cluster EKS
- Karpenter para el autoscaling de nodos (no entraremos en detalle aquí)
Si queréis ver más sobre Karpenter, mi hermano ya publicó un post sobre esto, que siempre podéis dejar un Like!💕:
Volvamos a "Capabilities" que es lo que nos interesa. Tal y como decíamos, para esta PoC, podéis encontrar el módulo de EKS Capabilities aquí con los ejemplos, ya sabéis "Copy & Paste" o si no, siempre podéis tirar de IA para un código rápido.
SSO con IAM Identity Center
Una de las partes más interesantes de usar EKS Capabilities con ArgoCD es que el SSO no requiere ninguna integración adicional.
No hay que tocar:
-
ConfigMapde ArgoCD argocd-cm- configuración de OIDC
Simplemente le dices a AWS qué grupos de IAM Identity Center corresponden a qué roles dentro de ArgoCD, y a funcionar.
Ejemplo en Terraform:
module "argocd_eks_capability" {
source = "terraform-aws-modules/eks/aws//modules/capability"
type = "ARGOCD"
cluster_name = module.eks.cluster_name
configuration = {
argo_cd = {
aws_idc = {
idc_instance_arn = one(data.aws_ssoadmin_instances.this.arns)
}
namespace = "argocd"
rbac_role_mapping = [{
role = "ADMIN"
identity = [{
id = data.aws_identitystore_group.aws_administrator.group_id
type = "SSO_GROUP"
}]
}]
}
}
}
En mi caso, para ir rápido con la PoC:
- He usado mi grupo Admin
- He desplegado el cluster en la misma cuenta donde tengo IAM Identity Center
Si queréis hacerlo cross-account, tendrás que crear un Role que permita a Terraform leer los grupos de Identity Center.
Dicho esto, vamos a la práctica de cómo quedaría esta parte.
Una vez desplegado nuestro cluster con todos los requisitos, podemos observar que tenemos argocd funcionando en nuestra pestaña de Capabilities.
Nos conectamos a nuestro endpoint (Argo API endpoint).
Como hemos comentado, la integración con SSO es super rápida, solo indica qué roles quieres usar y el mapping y listo!

Introducimos nuestras credenciales de AWS.

Y ya tenemos argo cd funcionando.
Lo mejor de todo
Cuando lances el código:
- Se desplegará ArgoCD como capability
- Tendrás SSO funcionando
- Podrás loguearte directamente
- Y empezar a desplegar tus aplicaciones
Y ahora viene lo mejor:
kubectl get pods -A
No verás ni un solo pod de ArgoCD.
Porque ArgoCD está ejecutándose en el control plane de EKS, no dentro de tu cluster.
Llevamos varios posts hablando de ArgoCD, cual es el mejor diseño, como instalarlo, como configurarlo, como gestionarlo y de repente llega un update de AWS y nos dice y si lo hago por ti? Encima con SSO de serie que más podemos pedir? 😁
Cabe remarcar como siempre que el objetivo es simplemente una PoC, para PROD deberíamos de revisar el tema de dominio privado, clusters adicionales, AppProjects por equipo... pero de eso ya hemos hablado en varias otros posts que podéis recuperar desde #AWTwinS.
Como siempre, cualquier feedback es bienvenido! o por aquí, por LinkedIn o donde podáis encontrarnos! Nos vemos por los eventos!



Top comments (0)