Mejorar los límites de los controladores y la fiabilidad de las pruebas en Kubernetes

Escrito por Alessio el 2/10/2026

Problema

Parte de la validación de endpoints se ejecutaba fuera del reconciliador responsable de su ciclo de vida. Las comprobaciones de asignación y el arranque del API server también necesitaban un manejo más claro de cancelaciones y tiempos de espera. En las pruebas, un caso de fallo de etcd suponía que iptables estaba disponible, client-go usaba polling obsoleto y algunas aserciones end-to-end no indicaban el contexto de la operación.

Cambios

Moví la validación de IP de los endpoints al reconciliador y mejoré los errores de cancelación y timeout en las comprobaciones de asignación de IP y puertos, además de quitar un timeout del repair controller que podía bloquear el arranque de kube-apiserver. También actualicé una prueba de fallo de etcd para usar nftables con iptables como alternativa, sustituí wait.PollImmediate por Eventually y aclaré las aserciones end-to-end afectadas.

Resultado

La validación se ejecuta en el límite del ciclo de vida del endpoint, los errores de cancelación son más claros y las pruebas dependen menos de una sola configuración de red. Los cambios de pruebas no alteran el comportamiento de Kubernetes en ejecución.

Commits: validación de endpoint, cancelación y timeout, prueba nftables, polling, aserciones