Merge pull request #43621 from MaciekPytel/ca_unflake_e2e

Automatic merge from submit-queue (batch tested with PRs 42900, 43044, 42896, 43308, 43621)

Fix flaky cluster-autoscaler e2e

This should fix 2 cluster-autoscaler flaky e2e. 

**Release note**:

```release-note
```
This commit is contained in:
Kubernetes Submit Queue 2017-03-27 08:32:31 -07:00 committed by GitHub
commit b9f975de83

View File

@ -26,6 +26,7 @@ import (
"strings"
"time"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/util/intstr"
@ -740,11 +741,25 @@ func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, id stri
if err != nil {
return err
}
*rc.Spec.Replicas = int32(i + 1)
rc, err = f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Update(rc)
if err != nil {
return err
// Update replicas count, to create new pods that will be allocated on node
// (we retry 409 errors in case rc reference got out of sync)
for j := 0; j < 3; j++ {
*rc.Spec.Replicas = int32(i + 1)
rc, err = f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Update(rc)
if err == nil {
break
}
if !errors.IsConflict(err) {
return err
}
glog.Warningf("Got 409 conflict when trying to scale RC, retries left: %v", 3-j)
rc, err = f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Get(id, metav1.GetOptions{})
if err != nil {
return err
}
}
err = wait.PollImmediate(5*time.Second, podTimeout, func() (bool, error) {
rc, err = f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Get(id, metav1.GetOptions{})
if err != nil || rc.Status.ReadyReplicas < int32(i+1) {