mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #37813 from kubernetes/revert-36625-branch-eliminate-recursive-call-attemptToUpdateMasterRoleLabelsAndTaints
Automatic merge from submit-queue (batch tested with PRs 35300, 36709, 37643, 37813, 37697) Revert "[kubeadm] use iteration instead of recursion in function" Reverts kubernetes/kubernetes#36625 Removing the recursive call means that `n` is never updated, so you never succeed in the update, and you've creating an infinite loop. Also, this entire bit of functionality should be a patch and you won't have to worry about conflicts. @luxas
This commit is contained in:
commit
00e369b14f
@ -178,22 +178,21 @@ func attemptToUpdateMasterRoleLabelsAndTaints(client *clientset.Clientset, sched
|
|||||||
n.ObjectMeta.Annotations[v1.TaintsAnnotationKey] = string(taintsAnnotation)
|
n.ObjectMeta.Annotations[v1.TaintsAnnotationKey] = string(taintsAnnotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
for {
|
if _, err := client.Nodes().Update(n); err != nil {
|
||||||
if _, err := client.Nodes().Update(n); err != nil {
|
if apierrs.IsConflict(err) {
|
||||||
if apierrs.IsConflict(err) {
|
fmt.Println("<master/apiclient> temporarily unable to update master node metadata due to conflict (will retry)")
|
||||||
fmt.Println("<master/apiclient> temporarily unable to update master node metadata due to conflict (will retry)")
|
time.Sleep(apiCallRetryInterval)
|
||||||
time.Sleep(apiCallRetryInterval)
|
attemptToUpdateMasterRoleLabelsAndTaints(client, schedulable)
|
||||||
} else {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return nil
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateMasterRoleLabelsAndTaints(client *clientset.Clientset, schedulable bool) error {
|
func UpdateMasterRoleLabelsAndTaints(client *clientset.Clientset, schedulable bool) error {
|
||||||
|
// TODO(phase1+) use iterate instead of recursion
|
||||||
err := attemptToUpdateMasterRoleLabelsAndTaints(client, schedulable)
|
err := attemptToUpdateMasterRoleLabelsAndTaints(client, schedulable)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("<master/apiclient> failed to update master node - %v", err)
|
return fmt.Errorf("<master/apiclient> failed to update master node - %v", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user