Actualización práctica del módulo AWS EKS con Terraform de la versión 20.x a la 21.x: resumen de cambios y soluciones a problemas comunes durante el upgrade

La versión v21.0.0 del módulo terraform-aws-modules/eks/aws añade soporte para el proveedor aws en su versión 6 y trae cambios importantes que implican ajustes en nuestro código Terraform. Entre las novedades principales está la eliminación del soporte nativo para IRSA y su sustitución por EKS Pod Identity en el submódulo de Karpenter. Además el submódulo aws-auth fue eliminado y varios parámetros fueron renombrados, por lo que es necesario adaptar las llamadas al módulo y las variables del proyecto.

Paso 1 actualizar el proveedor aws y los módulos: cambiar la restricción de proveedor a la serie 6 y actualizar los módulos EKS y Karpenter a la serie v21. Ejecutar terraform init -upgrade para refrescar .terraform.lock.hcl y evitar errores del tipo does not match configured version constraint. Esto asegura que Renovate y terraform gestionen correctamente las versiones menores del proveedor.

Paso 2 renombrado de variables: el módulo 21 renombró varias entradas con una convención nueva. Algunos mapeos habituales son cluster_name pasa a name; cluster_version pasa a kubernetes_version; cluster_endpoint_public_access pasa a endpoint_public_access; cluster_enabled_log_types pasa a enabled_log_types; cluster_addons pasa a addons; cluster_security_group_name pasa a security_group_name. Revisar y actualizar todas las llamadas al módulo para reflejar estos cambios.

Paso 3 IRSA y Karpenter: las opciones irsa del módulo fueron eliminadas y ahora se crea una EKS Pod Identity para Karpenter por defecto. Si tu despliegue de Karpenter usa un namespace distinto de kube-system debes pasar el parámetro namespace al módulo de Karpenter para evitar que la asociación de identidad se cree en el namespace equivocado y provoque que Karpenter entre en CrashLoopBackOff y bloquee actualizaciones de grupos de nodos.

Paso 4 cambios en tipos y taints: el módulo 21 introduce tipos de datos más estrictos. En particular la definición de taints ahora es un map de objetos con keys bien definidas en lugar de tipos any o sets de maps. Esto obliga a adaptar las variables de entrada para pasar las taints como un map donde cada entrada incluye key value y effect. Actualizar la variable que describe los managed node groups para usar el nuevo formato y adaptar los valores en los tfvars.

Problema con ALB Controller y metadata EC2: tras el upgrade el AWS Load Balancer Controller puede fallar al consultar IMDS por cambios en la forma de acceder a metadatos y a IMDSv2. La solución práctica es parametrizar explícitamente los valores necesarios en el values del chart Helm, por ejemplo region y vpcId y, si aplica, el aws-vpc-tag-key. Con esos ajustes el controlador recupera correctamente la información de VPC y funciona sin necesidad de depender de consultas a IMDS desde el pod.

Problema Node Group CREATE_FAILED al crear un cluster nuevo: al crear un cluster nuevo con el módulo v21 puede ocurrir que los nodos se levanten pero no entren en el cluster por falta del CNI instalado, dando lugar a errores Container runtime network not ready y a la falla de creación del node group. La causa suele ser que los addons gestionados por EKS se crearon después de los nodos. La solución es usar la opción before_compute para los addons críticos como vpc-cni y eks-pod-identity-agent, de modo que se creen antes de que se lancen los nodos gestionados. Con before_compute habilitado el flujo de creación respeta el orden correcto y los nodos quedan saludables.

Resumen de la experiencia: el upgrade a v21 fue en general fluido una vez realizadas las adaptaciones en variables, tipos y en la gestión de identidades de Karpenter. Las acciones clave son actualizar la versión del proveedor, ejecutar terraform init -upgrade, renombrar parámetros según la nueva API del módulo, eliminar referencias a IRSA y verificar namespace de Karpenter, convertir las taints al nuevo tipo map de objetos y asegurar que addons críticos se creen antes de los nodos con before_compute.

En Q2BSTUDIO somos especialistas en acompañar migraciones y upgrades de infraestructuras cloud y en diseñar soluciones robustas a medida. Si necesitas soporte en migraciones Terraform, gestión de servicios cloud o implementación de arquitecturas EKS podemos ayudarte con auditoría de código, automatización y despliegue continuo. Con experiencia en aplicaciones a medida y software a medida ofrecemos además servicios de servicios cloud aws y azure y consultoría en ciberseguridad para asegurar tus entornos productivos.

También integramos capacidades de inteligencia artificial y análisis de datos para empresas, desde IA para empresas y agentes IA hasta soluciones de inteligencia de negocio y visualización con power bi. Si buscas desarrollar una aplicación compleja o mejorar la seguridad y escalabilidad de tu plataforma cloud visita nuestra página sobre software a medida y descubre cómo combinamos desarrollo, ciberseguridad y servicios cloud para proyectos que requieren alto grado de especialización.

Palabras clave incluidas de forma natural en este artículo para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Si quieres que te acompañemos en la actualización de módulos Terraform o en la implantación de una arquitectura EKS segura y automatizada contacta con Q2BSTUDIO.