Skip to content

Develop a custom ansible strategy plugin to perform graceful upgrade in a true rolling fashion #12929

@VannTen

Description

@VannTen

What would you like to be added

Basically: ansible-collections/community.general#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

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/featureCategorizes issue or PR as related to a new feature.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions