mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
Add retries in cluster-autoscaler e2e
This commit is contained in:
parent
0d666e1fcd
commit
2630cefcce
@ -674,43 +674,61 @@ 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))
|
||||||
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
for j := 0; j < 3; j++ {
|
||||||
if err != nil {
|
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
||||||
return err
|
if err != nil {
|
||||||
}
|
return err
|
||||||
for _, taint := range freshNode.Spec.Taints {
|
}
|
||||||
if taint.Key == disabledTaint {
|
for _, taint := range freshNode.Spec.Taints {
|
||||||
|
if taint.Key == disabledTaint {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
freshNode.Spec.Taints = append(freshNode.Spec.Taints, v1.Taint{
|
||||||
|
Key: disabledTaint,
|
||||||
|
Value: "DisabledForTest",
|
||||||
|
Effect: v1.TaintEffectNoSchedule,
|
||||||
|
})
|
||||||
|
_, err = c.Core().Nodes().Update(freshNode)
|
||||||
|
if err == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
if !errors.IsConflict(err) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
glog.Warningf("Got 409 conflict when trying to taint node, retries left: %v", 3-j)
|
||||||
}
|
}
|
||||||
freshNode.Spec.Taints = append(freshNode.Spec.Taints, v1.Taint{
|
return fmt.Errorf("Failed to taint node in allowed number of retries")
|
||||||
Key: disabledTaint,
|
|
||||||
Value: "DisabledForTest",
|
|
||||||
Effect: v1.TaintEffectNoSchedule,
|
|
||||||
})
|
|
||||||
_, err = c.Core().Nodes().Update(freshNode)
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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))
|
||||||
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
for j := 0; j < 3; j++ {
|
||||||
if err != nil {
|
freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{})
|
||||||
return err
|
if err != nil {
|
||||||
}
|
return err
|
||||||
newTaints := make([]v1.Taint, 0)
|
}
|
||||||
for _, taint := range freshNode.Spec.Taints {
|
newTaints := make([]v1.Taint, 0)
|
||||||
if taint.Key != disabledTaint {
|
for _, taint := range freshNode.Spec.Taints {
|
||||||
newTaints = append(newTaints, taint)
|
if taint.Key != disabledTaint {
|
||||||
|
newTaints = append(newTaints, taint)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
||||||
return err
|
if err == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if !errors.IsConflict(err) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
glog.Warningf("Got 409 conflict when trying to taint node, retries left: %v", 3-j)
|
||||||
}
|
}
|
||||||
return nil
|
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