kubernetes-sigs/kubespray
View on GitHubDevelop a custom ansible strategy plugin to perform graceful upgrade in a true rolling fashion
Open
#12929 opened on Jan 29, 2026
help wantedkind/featurelifecycle/frozen
Description
What would you like to be added
Basically: https://github.com/ansible-collections/community.general/issues/10920
(Upstreaming the strategy into community.general would also work)
Once we switch to collection only (#12227 ) we'll be able to handle ansible plugins more easily.
WARNING: This is not an easy task, and requires to dive deep into Ansible internals and do a fair bit of Python. This not at all a "good first issue"
Why is this needed
There is 2 purpose for this strategy:
- faster cluster upgrade, because there is no longer a "all nodes in a batch wait for all other nodes" bottleneck.
- make possible cluster upgrades with bigger "batch size" (currently, a PodDisruptionBudbget can block your upgrade if enoug eligible nodes for a deployment are in the same batch. With that scenario, some of the nodes where the eviction succeded would finish instead of waiting of the rest of the batch, allowing pods to be scheduled on them and the other node drain to succeed).
/lifecycle frozen /help