Merge pull request #109840 from neolit123/1.25-fix-master-taint-re-add

kubeadm: only taint CP nodes when the legacy "master" taint is present
This commit is contained in:
Kubernetes Prow Robot 2022-05-05 21:31:03 -07:00 committed by GitHub
commit 7141b6d58d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -253,16 +253,20 @@ func AddNewControlPlaneTaint(client clientset.Interface) error {
}
for _, n := range nodes.Items {
// Check if the node has the taint already and skip it if so
hasTaint := false
// Check if the node has the old / new taints
hasOldTaint := false
hasNewTaint := false
for _, t := range n.Spec.Taints {
if t.String() == kubeadmconstants.ControlPlaneTaint.String() {
hasTaint = true
break
switch t.String() {
case kubeadmconstants.OldControlPlaneTaint.String():
hasOldTaint = true
case kubeadmconstants.ControlPlaneTaint.String():
hasNewTaint = true
}
}
// If the node does not have the taint, patch it
if !hasTaint {
// If the old taint is present and the new taint is missing, patch the node with the new taint.
// When the old taint is missing, assume the user has manually untainted the node and take no action.
if !hasNewTaint && hasOldTaint {
err = apiclient.PatchNode(client, n.Name, func(n *v1.Node) {
n.Spec.Taints = append(n.Spec.Taints, kubeadmconstants.ControlPlaneTaint)
})