kubernetes-sigs / kubernetes-sigs/cluster-api
Speed up provisioning of the first set of worker machines by improving predicates on cluster watch
- Dominant language
- Go
- Stars
- 4.3k
- Forks
- 1.6k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 113
Description
### What would you like to be added (User Story)?
As a users I want CAPI to provision machines as fast as possible
### Detailed Description
While looking at cluster provisioning I noticed that the kubeadm bootstrap controller takes time to react to when the cluster reports control plane ready, which is the moment when workers machines are allowed to join.
From a preliminary investigation, the kubeadm bootstrap controller is watching for clusters, but existing predicates (more specifically `predicates.ClusterUnpausedAndInfrastructureReady`) are filtering out events when the cluster transition to control plane ready.
This issue is about investigating if we can speed up provisioning of the first set of worker machines by improving predicates
### Anything else you would like to add?
Note predicates.ClusterUnpausedAndInfrastructureReady, so some research is required before changing this method, or most probably it is better to create a new one.
### Label(s) to be applied
/kind feature
/area bootstrap
Contributor guide
Research direction
Start by reviewing the kubeadm bootstrap controller's cluster watch and predicates.ClusterUnpausedAndInfrastructureReady, then trace how the control-plane-ready transition is filtered. Confirm the intended predicate behavior and verify that the first worker machines can begin provisioning promptly after control plane readiness.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100