kubernetes-sigs / cluster-api

Home for Cluster API, a subproject of sig-cluster-lifecycle
https://cluster-api.sigs.k8s.io
Apache License 2.0
3.45k stars 1.27k forks source link

Speed up provisioning of the first set of worker machines by improving predicates on cluster watch #8835

Open fabriziopandini opened 1 year ago

fabriziopandini commented 1 year ago

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

sbueringer commented 1 year ago

Sounds reasonable and low risk to let a few more events through

/triage accepted

fabriziopandini commented 3 months ago

/priority important-longterm

fabriziopandini commented 2 months ago

For someone to re-assess after all the optimizations in 1.5 /help