Améliorer les frontières des contrôleurs et la fiabilité des tests Kubernetes
Problème
Une partie de la validation des endpoints avait lieu en dehors du reconciler responsable de leur cycle de vie. Les vérifications d’allocation et le démarrage de l’API server nécessitaient aussi une gestion plus claire des annulations et des délais. Dans les tests, un scénario de panne d’etcd supposait qu’iptables était disponible, les tests de client-go utilisaient un polling déprécié et certaines assertions end-to-end manquaient de contexte.
Changements
J’ai déplacé la validation des adresses IP des endpoints dans le reconciler et amélioré les erreurs d’annulation et de délai lors des vérifications d’allocation d’adresses IP et de ports. J’ai également supprimé un délai du repair controller qui pouvait bloquer le démarrage de kube-apiserver. Côté tests, j’ai ajouté nftables avec iptables en solution de repli, remplacé wait.PollImmediate par Eventually et clarifié les assertions end-to-end concernées.
Résultat
La validation s’exécute à la frontière du cycle de vie des endpoints, les erreurs d’annulation sont plus explicites et les tests dépendent moins d’une configuration réseau unique. Les changements de tests ne modifient pas le comportement de Kubernetes à l’exécution.
Commits : validation des endpoints, annulation et délais, test nftables, polling, assertions