Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
kubeadm: deprecate the `ClusterStatus` dependency #87656
What type of PR is this?
What this PR does / why we need it:
The only exception is during the first upgrade cycle (
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
While `ClusterStatus` will be maintained and uploaded, it won't be used by the internal `kubeadm` logic in order to determine the etcd endpoints anymore. The only exception is during the first upgrade cycle (`kubeadm upgrade apply`, `kubeadm upgrade node`), in which we will fallback to the ClusterStatus to let the upgrade path add the required annotations to the newly created static pods.
When doing the very first upgrade from a cluster that contains the source of truth in the ClusterStatus struct, the new kubeadm logic will try to retrieve this information from annotations. This changeset adds to both etcd and apiserver endpoint retrieval the special case in which they won't retry if we are in such cases. The logic will retry if we find any unknown error, but will not retry in the following cases: - etcd annotations do not contain etcd endpoints, but the overall list of etcd pods is greater than 0. This means that we listed at least one etcd pod, but they are missing the annotation. - API server annotation is not found on the api server pod for a given node name, but no errors aside from that one were found. This means that the API server pod is present, but is missing the annotation. In both cases there is no point in retrying, and so, this speeds up the upgrade path when coming from a previous existing cluster.
[APPROVALNOTIFIER] This PR is APPROVED
The full list of commands accepted by this bot can be found here.
The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing
1 similar comment