func getK8sLabels(client *kubernetes.Clientset, k8sargs utils.K8sArgs) (map[string]string, error) { pods, err := client.Pods(string(k8sargs.K8S_POD_NAMESPACE)).Get(fmt.Sprintf("%s", k8sargs.K8S_POD_NAME)) if err != nil { return nil, err } labels := pods.Labels if labels == nil { labels = make(map[string]string) } labels["calico/k8s_ns"] = fmt.Sprintf("%s", k8sargs.K8S_POD_NAMESPACE) return labels, nil }
func createPodsOrDie(cs *kubernetes.Clientset, ns string, n int) { for i := 0; i < n; i++ { pod := &v1.Pod{ ObjectMeta: v1.ObjectMeta{ Name: fmt.Sprintf("pod-%d", i), Namespace: ns, Labels: map[string]string{"foo": "bar"}, }, Spec: v1.PodSpec{ Containers: []v1.Container{ { Name: "busybox", Image: "gcr.io/google_containers/echoserver:1.4", }, }, RestartPolicy: v1.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 v1.Pod err := wait.PollImmediate(framework.Poll, schedulingTimeout, func() (bool, error) { podList, err := cs.Pods(ns).List(v1.ListOptions{}) if err != nil { return false, err } for i := range podList.Items { if podList.Items[i].Status.Phase == v1.PodRunning { pod = podList.Items[i] return true, nil } } return false, nil }) Expect(err).NotTo(HaveOccurred())