Merge pull request #72537 from mortent/FixEvictionsFlake

Fix flaking evictions test
This commit is contained in:
Kubernetes Prow Robot 2019-01-04 20:11:32 -08:00 committed by GitHub
commit 34ca1301da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,7 +86,7 @@ func TestConcurrentEvictionRequests(t *testing.T) {
} }
} }
waitToObservePods(t, informers.Core().V1().Pods().Informer(), numOfEvictions) waitToObservePods(t, informers.Core().V1().Pods().Informer(), numOfEvictions, v1.PodRunning)
pdb := newPDB() pdb := newPDB()
if _, err := clientSet.Policy().PodDisruptionBudgets(ns.Name).Create(pdb); err != nil { if _, err := clientSet.Policy().PodDisruptionBudgets(ns.Name).Create(pdb); err != nil {
@ -193,18 +193,21 @@ func TestTerminalPodEviction(t *testing.T) {
if _, err := clientSet.CoreV1().Pods(ns.Name).Create(pod); err != nil { if _, err := clientSet.CoreV1().Pods(ns.Name).Create(pod); err != nil {
t.Errorf("Failed to create pod: %v", err) t.Errorf("Failed to create pod: %v", err)
} }
addPodConditionSucceeded(pod) addPodConditionSucceeded(pod)
if _, err := clientSet.CoreV1().Pods(ns.Name).UpdateStatus(pod); err != nil { if _, err := clientSet.CoreV1().Pods(ns.Name).UpdateStatus(pod); err != nil {
t.Fatal(err) t.Fatal(err)
} }
waitToObservePods(t, informers.Core().V1().Pods().Informer(), 1) waitToObservePods(t, informers.Core().V1().Pods().Informer(), 1, v1.PodSucceeded)
pdb := newPDB() pdb := newPDB()
if _, err := clientSet.Policy().PodDisruptionBudgets(ns.Name).Create(pdb); err != nil { if _, err := clientSet.Policy().PodDisruptionBudgets(ns.Name).Create(pdb); err != nil {
t.Errorf("Failed to create PodDisruptionBudget: %v", err) t.Errorf("Failed to create PodDisruptionBudget: %v", err)
} }
waitPDBStable(t, clientSet, 1, ns.Name, pdb.Name)
pdbList, err := clientSet.Policy().PodDisruptionBudgets(ns.Name).List(metav1.ListOptions{}) pdbList, err := clientSet.Policy().PodDisruptionBudgets(ns.Name).List(metav1.ListOptions{})
if err != nil { if err != nil {
t.Fatalf("Error while listing pod disruption budget") t.Fatalf("Error while listing pod disruption budget")
@ -341,13 +344,19 @@ func rmSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, *disruption.D
// wait for the podInformer to observe the pods. Call this function before // wait for the podInformer to observe the pods. Call this function before
// running the RS controller to prevent the rc manager from creating new pods // running the RS controller to prevent the rc manager from creating new pods
// rather than adopting the existing ones. // rather than adopting the existing ones.
func waitToObservePods(t *testing.T, podInformer cache.SharedIndexInformer, podNum int) { func waitToObservePods(t *testing.T, podInformer cache.SharedIndexInformer, podNum int, phase v1.PodPhase) {
if err := wait.PollImmediate(2*time.Second, 60*time.Second, func() (bool, error) { if err := wait.PollImmediate(2*time.Second, 60*time.Second, func() (bool, error) {
objects := podInformer.GetIndexer().List() objects := podInformer.GetIndexer().List()
if len(objects) == podNum { if len(objects) != podNum {
return true, nil return false, nil
} }
return false, nil for _, obj := range objects {
pod := obj.(*v1.Pod)
if pod.Status.Phase != phase {
return false, nil
}
}
return true, nil
}); err != nil { }); err != nil {
t.Fatal(err) t.Fatal(err)
} }