mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
Add retries in cluster-autoscaler e2e
This commit is contained in:
parent
0d666e1fcd
commit
2630cefcce
@ -674,6 +674,7 @@ func setMigSizes(sizes map[string]int) {
|
|||||||
|
|
||||||
func makeNodeUnschedulable(c clientset.Interface, node *v1.Node) error {
|
func makeNodeUnschedulable(c clientset.Interface, node *v1.Node) error {
|
||||||
By(fmt.Sprintf("Taint node %s", node.Name))
|
By(fmt.Sprintf("Taint node %s", node.Name))
|
||||||
|
for j := 0; j < 3; j++ {
|
||||||
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -689,11 +690,20 @@ func makeNodeUnschedulable(c clientset.Interface, node *v1.Node) error {
|
|||||||
Effect: v1.TaintEffectNoSchedule,
|
Effect: v1.TaintEffectNoSchedule,
|
||||||
})
|
})
|
||||||
_, err = c.Core().Nodes().Update(freshNode)
|
_, err = c.Core().Nodes().Update(freshNode)
|
||||||
|
if err == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if !errors.IsConflict(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
glog.Warningf("Got 409 conflict when trying to taint node, retries left: %v", 3-j)
|
||||||
|
}
|
||||||
|
return fmt.Errorf("Failed to taint node in allowed number of retries")
|
||||||
|
}
|
||||||
|
|
||||||
func makeNodeSchedulable(c clientset.Interface, node *v1.Node) error {
|
func makeNodeSchedulable(c clientset.Interface, node *v1.Node) error {
|
||||||
By(fmt.Sprintf("Remove taint from node %s", node.Name))
|
By(fmt.Sprintf("Remove taint from node %s", node.Name))
|
||||||
|
for j := 0; j < 3; j++ {
|
||||||
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -705,12 +715,20 @@ func makeNodeSchedulable(c clientset.Interface, node *v1.Node) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(newTaints) != len(freshNode.Spec.Taints) {
|
if len(newTaints) == len(freshNode.Spec.Taints) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
freshNode.Spec.Taints = newTaints
|
freshNode.Spec.Taints = newTaints
|
||||||
_, err = c.Core().Nodes().Update(freshNode)
|
_, err = c.Core().Nodes().Update(freshNode)
|
||||||
|
if err == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if !errors.IsConflict(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
glog.Warningf("Got 409 conflict when trying to taint node, retries left: %v", 3-j)
|
||||||
|
}
|
||||||
|
return fmt.Errorf("Failed to remove taint from node in allowed number of retries")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creat an RC running a given number of pods on each node without adding any constraint forcing
|
// Creat an RC running a given number of pods on each node without adding any constraint forcing
|
||||||
|
Loading…
Reference in New Issue
Block a user