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!


