mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Merge pull request #36211 from brendandburns/cordon
Automatic merge from submit-queue Add retry to node scheduability marking. Fixes https://github.com/kubernetes/kubernetes/issues/32391 @justinsb @janetkuo @kubernetes/sig-cli
This commit is contained in:
commit
4b5667e177
@ -82,6 +82,7 @@ const (
|
||||
kLocalStorageWarning = "Deleting pods with local storage"
|
||||
kUnmanagedFatal = "pods not managed by ReplicationController, ReplicaSet, Job, or DaemonSet (use --force to override)"
|
||||
kUnmanagedWarning = "Deleting pods not managed by ReplicationController, ReplicaSet, Job, or DaemonSet"
|
||||
kMaxNodeUpdateRetry = 10
|
||||
)
|
||||
|
||||
var (
|
||||
@ -551,7 +552,21 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error {
|
||||
} else {
|
||||
helper := resource.NewHelper(o.restClient, o.nodeInfo.Mapping)
|
||||
unsched.SetBool(desired)
|
||||
_, err := helper.Replace(cmdNamespace, o.nodeInfo.Name, true, o.nodeInfo.Object)
|
||||
var err error
|
||||
for i := 0; i < kMaxNodeUpdateRetry; i++ {
|
||||
// We don't care about what previous versions may exist, we always want
|
||||
// to overwrite, and Replace always sets current ResourceVersion if version is "".
|
||||
helper.Versioner.SetResourceVersion(o.nodeInfo.Object, "")
|
||||
_, err = helper.Replace(cmdNamespace, o.nodeInfo.Name, true, o.nodeInfo.Object)
|
||||
if err != nil {
|
||||
if !apierrors.IsConflict(err) {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
break
|
||||
}
|
||||
// It's a race, no need to sleep
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user