Migliorare i confini dei controller e l’affidabilità dei test in Kubernetes

Scritto da Alessio il 02/10/2026

Problema

Parte della validazione degli endpoint avveniva fuori dal reconciler responsabile del loro ciclo di vita. I controlli di allocazione e l'avvio dell'API server richiedevano inoltre una gestione più chiara di cancellazioni e timeout. Nei test, un caso di errore di etcd dava per scontata la presenza di iptables, client-go usava polling deprecato e alcune asserzioni end-to-end non indicavano l'operazione coinvolta.

Modifiche

Ho spostato la validazione degli IP degli endpoint nel reconciler e migliorato gli errori di cancellazione e timeout nei controlli di allocazione di IP e porte, rimuovendo anche un timeout del repair controller che poteva bloccare kube-apiserver. Ho aggiornato un test di errore di etcd per usare nftables con iptables come alternativa, sostituito wait.PollImmediate con Eventually e chiarito le asserzioni end-to-end interessate.

Risultato

La validazione avviene al confine del ciclo di vita dell'endpoint, gli errori di cancellazione sono più chiari e i test dipendono meno da una sola configurazione di rete. Le modifiche ai test non alterano il comportamento di Kubernetes in esecuzione.

Commit: validazione endpoint, cancellazione e timeout, test nftables, polling, asserzioni