-
Couldn't load subscription status.
- Fork 1.4k
Description
⚠️ Cluster API maintainers can ask to turn an issue-proposal into a CAEP when necessary, this is to be expected for large changes that impact multiple components, breaking changes, or new large features.
Goals
- Improve kubeadm to support Cluster API
- Remove duplication of effort across kubeadm and Cluster API
Non-Goals/Future Work
- Fully replace kubeadm
User Story
As an operator, I want kubeadm to have better support for Cluster API's use cases to reduce the number of failed machines in my infrastructure.
Detailed Description
In a number of environments, machines can intermittently fail to bootstrap. The most common of these are control plane joins, which lead to temporary changes in etcd and API server availability, mediated by the speed of the underlying infrastructure and the particulars of infrastructure load balancers.
Some ugly hacks have been introduced, notably #2763 to retry kubeadm operations. As a long term solution, Cluster API should be a good kubeadm citizen and make changes to kubeadm to do the appropriate retries to cover the variety of infrastructure providers supported by Cluster API. In addition, the KCP controller re-implements some of the
Contract changes [optional]
- Support the effort to move kubeadm out-of-tree
- Make kubeadm retry operations based on data gathered from Cluster API users
- Consider implementing machine-readable for kubeadm to support RFE: a consistent way for infrastructure providers to report bootstrap success or failure #2554
- Re-factor relevant parts of kubeadm into a library consumable by the bootstrap and kubeadm control plane controllers
Data model changes [optional]
- Migrate to kubeadm v1beta2
[Describe contract changes between Cluster API controllers, if applicable.]
/kind proposal