func createPodsOrDie(cs *kubernetes.Clientset, ns string, n int) { for i := 0; i < n; i++ { pod := &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: fmt.Sprintf("pod-%d", i), Namespace: ns, Labels: map[string]string{"foo": "bar"}, }, Spec: api.PodSpec{ Containers: []api.Container{ { Name: "busybox", Image: "gcr.io/google_containers/echoserver:1.4", }, }, RestartPolicy: api.RestartPolicyAlways, }, } _, err := cs.Pods(ns).Create(pod) framework.ExpectNoError(err, "Creating pod %q in namespace %q", pod.Name, ns) } }
expectation = "should not allow an eviction" } It(fmt.Sprintf("evictions: %s => %s", c.description, expectation), func() { createPodsOrDie(cs, ns, c.podCount) if c.replicaSetSize > 0 { createReplicaSetOrDie(cs, ns, c.replicaSetSize, c.exclusive) } if c.minAvailable.String() != "" { createPodDisruptionBudgetOrDie(cs, ns, c.minAvailable) } // Locate a running pod. var pod api.Pod err := wait.PollImmediate(framework.Poll, schedulingTimeout, func() (bool, error) { podList, err := cs.Pods(ns).List(apiapi.ListOptions{}) if err != nil { return false, err } for i := range podList.Items { if podList.Items[i].Status.Phase == api.PodRunning { pod = podList.Items[i] return true, nil } } return false, nil }) Expect(err).NotTo(HaveOccurred())