cluster-api-provider-aws
cluster-api-provider-aws copied to clipboard
✨Create multiple control plane loadbalancers concurrently
What type of PR is this?
/kind feature
What this PR does / why we need it:
LoadBalancers take many minutes to become available after creation. We currently wait synchronously for a loadbalancer to become available immediately after creation. This increases total cluster installation time when creating multiple control plane loadbalancers as we don't create a loadbalancer until the previous one is fully initialised. It would be more time-efficient to create them all first, then wait for them to become available.
This PR splits loadbalancer creation into 2 phases:
- Get or create
- Reconcile
We ensure that we do the waiting in the reconcile phase after all getOrCreates have executes.
This PR doesn't introduce any parallel execution in CAPA. It simply changes the order of operations so that loadbalancer initialisations can proceed concurrently in AWS.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #5568
Special notes for your reviewer:
Checklist:
- [X] squashed commits
- [ ] includes documentation
- [ ] includes emoji in title
- [ ] adds unit tests
- [ ] adds or updates e2e tests
Release note:
Control plane loadbalancers are created concurrently, reducing cluster
installation time when using multiple control plane loadbalancers.