func createPodDisruptionBudgetOrDie(cs *kubernetes.Clientset, ns string, minAvailable intstr.IntOrString) { pdb := policy.PodDisruptionBudget{ ObjectMeta: v1.ObjectMeta{ Name: "foo", Namespace: ns, }, Spec: policy.PodDisruptionBudgetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, MinAvailable: minAvailable, }, } _, err := cs.Policy().PodDisruptionBudgets(ns).Create(&pdb) Expect(err).NotTo(HaveOccurred()) }
}) It("should create a PodDisruptionBudget", func() { createPodDisruptionBudgetOrDie(cs, ns, intstr.FromString("1%")) }) It("should update PodDisruptionBudget status", func() { createPodDisruptionBudgetOrDie(cs, ns, intstr.FromInt(2)) createPodsOrDie(cs, ns, 3) waitForPodsOrDie(cs, ns, 3) // Since disruptionAllowed starts out 0, if we see it ever become positive, // that means the controller is working. err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { pdb, err := cs.Policy().PodDisruptionBudgets(ns).Get("foo") if err != nil { return false, err } return pdb.Status.PodDisruptionsAllowed > 0, nil }) Expect(err).NotTo(HaveOccurred()) }) evictionCases := []struct { description string minAvailable intstr.IntOrString podCount int replicaSetSize int32 shouldDeny bool
}) It("should create a PodDisruptionBudget", func() { createPodDisruptionBudgetOrDie(cs, ns, intstr.FromString("1%")) }) It("should update PodDisruptionBudget status", func() { createPodDisruptionBudgetOrDie(cs, ns, intstr.FromInt(2)) createPodsOrDie(cs, ns, 3) waitForPodsOrDie(cs, ns, 3) // Since disruptionAllowed starts out 0, if we see it ever become positive, // that means the controller is working. err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { pdb, err := cs.Policy().PodDisruptionBudgets(ns).Get("foo", metav1.GetOptions{}) if err != nil { return false, err } return pdb.Status.PodDisruptionsAllowed > 0, nil }) Expect(err).NotTo(HaveOccurred()) }) evictionCases := []struct { description string minAvailable intstr.IntOrString podCount int replicaSetSize int32 shouldDeny bool