func createPodDisruptionBudgetOrDie(cs *release_1_4.Clientset, ns string, minAvailable intstr.IntOrString) { pdb := policy.PodDisruptionBudget{ ObjectMeta: api.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()) }
ns = f.Namespace.Name }) 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, 2) // Since disruptionAllowed starts out false, if we see it ever become true, // 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.PodDisruptionAllowed, nil }) Expect(err).NotTo(HaveOccurred()) }) evictionCases := []struct { description string minAvailable intstr.IntOrString podCount int replicaSetSize int32 shouldDeny bool
cs = f.StagingClient ns = f.Namespace.Name }) It("should create a PodDisruptionBudget", func() { pdb := policy.PodDisruptionBudget{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: ns, }, Spec: policy.PodDisruptionBudgetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, MinAvailable: intstr.FromString("1%"), }, } _, err := cs.Policy().PodDisruptionBudgets(ns).Create(&pdb) Expect(err).NotTo(HaveOccurred()) }) It("should update PodDisruptionBudget status", func() { pdb := policy.PodDisruptionBudget{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: ns, }, Spec: policy.PodDisruptionBudgetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, MinAvailable: intstr.FromInt(2), }, } _, err := cs.Policy().PodDisruptionBudgets(ns).Create(&pdb)