mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
kubeadm: do not need to remove old taint as v1.25 upgrade will remove it
This commit is contained in:
parent
4daf5f903b
commit
04e0c6c160
@ -32,7 +32,6 @@ import (
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
||||
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/preflight"
|
||||
@ -158,16 +157,6 @@ func runApply(flags *applyFlags, args []string) error {
|
||||
return errors.Wrap(err, "[upgrade/apply] FATAL")
|
||||
}
|
||||
|
||||
// Clean this up in 1.26
|
||||
// TODO: https://github.com/kubernetes/kubeadm/issues/2200
|
||||
fmt.Printf("[upgrade/postupgrade] Removing the old taint %s from all control plane Nodes. "+
|
||||
"After this step only the %s taint will be present on control plane Nodes.\n",
|
||||
kubeadmconstants.OldControlPlaneTaint.String(),
|
||||
kubeadmconstants.ControlPlaneTaint.String())
|
||||
if err := upgrade.RemoveOldControlPlaneTaint(client); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Upgrade RBAC rules and addons.
|
||||
klog.V(1).Infoln("[upgrade/postupgrade] upgrading RBAC rules and addons")
|
||||
if err := upgrade.PerformPostUpgradeTasks(client, cfg, flags.patchesDir, flags.dryRun, flags.applyPlanFlags.out); err != nil {
|
||||
|
@ -27,10 +27,8 @@ import (
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
errorsutil "k8s.io/apimachinery/pkg/util/errors"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
"k8s.io/klog/v2"
|
||||
@ -44,7 +42,6 @@ import (
|
||||
kubeletphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet"
|
||||
patchnodephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/patchnode"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient"
|
||||
dryrunutil "k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun"
|
||||
)
|
||||
|
||||
@ -215,45 +212,6 @@ func rollbackFiles(files map[string]string, originalErr error) error {
|
||||
return errors.Errorf("couldn't move these files: %v. Got errors: %v", files, errorsutil.NewAggregate(errs))
|
||||
}
|
||||
|
||||
// RemoveOldControlPlaneTaint finds all nodes with the new "control-plane" node-role label
|
||||
// and removes the old "control-plane" taint to them.
|
||||
// TODO: https://github.com/kubernetes/kubeadm/issues/2200
|
||||
func RemoveOldControlPlaneTaint(client clientset.Interface) error {
|
||||
selectorControlPlane := labels.SelectorFromSet(labels.Set(map[string]string{
|
||||
kubeadmconstants.LabelNodeRoleControlPlane: "",
|
||||
}))
|
||||
nodes, err := client.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{
|
||||
LabelSelector: selectorControlPlane.String(),
|
||||
})
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "could not list nodes labeled with %q", kubeadmconstants.LabelNodeRoleControlPlane)
|
||||
}
|
||||
|
||||
for _, n := range nodes.Items {
|
||||
// Check if the node has the old taint
|
||||
hasOldTaint := false
|
||||
taints := []v1.Taint{}
|
||||
for _, t := range n.Spec.Taints {
|
||||
if t.String() == kubeadmconstants.OldControlPlaneTaint.String() {
|
||||
hasOldTaint = true
|
||||
continue
|
||||
}
|
||||
// Collect all other taints
|
||||
taints = append(taints, t)
|
||||
}
|
||||
// If the old taint is present remove it
|
||||
if hasOldTaint {
|
||||
err = apiclient.PatchNode(client, n.Name, func(n *v1.Node) {
|
||||
n.Spec.Taints = taints
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CleanupKubeletDynamicEnvFileContainerRuntime reads the kubelet dynamic environment file
|
||||
// from disk, ensure that the container runtime flag is removed.
|
||||
// TODO: Temporary workaround. Remove in 1.27:
|
||||
|
Loading…
Reference in New Issue
Block a user