This KEP is proposing a new mode for tracking the list of the API endpoints in a cluster, thus allowing to remove the ClusterStatus entry in the kubeadm-config ConfigMap and solve the problems that arise when, for any reasons, such entry does not reflect anymore the real status of the cluster.
In order to manage HA cluster properly, kubeadm requires to have access to the list of API endpoints in a cluster.
Currently this feature is implemented by adding an entry in the list of API endpoints that is stored in the ClusterStatus entry of the kubeadm-config ConfigMap.
There are well known problem related to the management of this list e.g. when a control-plane node dies or is deleted without invoking kubeadm reset, the list gets stale and the user is required to manually cleanup the list in order to avoid any kubeadm operation that relies on such list might incur into errors.
This KEP is going to propose a different mode for tracking the list of the API endpoints in a cluster, based on the inspection of the current Pods.
This approach does not require the maintenance of a separated list, and implicitly always reflect the current status of the cluster.
This allows to remove the ClusterStatus entry in the kubeadm-config ConfigMap and to clean-up all the related code in kubeadm init, kubeadm join and kubeadm reset