From 8fc57f62485d10ec1105e260fddf64e9af952c4b Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Fri, 21 Oct 2016 11:42:13 +0200 Subject: [PATCH 1/4] UPSTREAM: 35274: Fix PDB e2e test, off-by-one --- vendor/k8s.io/kubernetes/test/e2e/disruption.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/k8s.io/kubernetes/test/e2e/disruption.go b/vendor/k8s.io/kubernetes/test/e2e/disruption.go index 2435f953b3a3..12572ef3c856 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/disruption.go +++ b/vendor/k8s.io/kubernetes/test/e2e/disruption.go @@ -69,7 +69,7 @@ var _ = framework.KubeDescribe("DisruptionController [Feature:PodDisruptionbudge } _, err := cs.Policy().PodDisruptionBudgets(ns).Create(&pdb) Expect(err).NotTo(HaveOccurred()) - for i := 0; i < 2; i++ { + for i := 0; i < 3; i++ { pod := &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: fmt.Sprintf("pod-%d", i), From e85d66ac697494a6690ad61974304533155f0b8b Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Fri, 21 Oct 2016 14:04:40 +0200 Subject: [PATCH 2/4] UPSTREAM: 35287: Add resource printer and describer for PodDisruptionBudget --- .../k8s.io/kubernetes/pkg/kubectl/describe.go | 32 +++++++++++++++ .../pkg/kubectl/resource_printer.go | 39 +++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/describe.go b/vendor/k8s.io/kubernetes/pkg/kubectl/describe.go index 95a653f97b1d..a7400a615cf1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/describe.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/describe.go @@ -40,6 +40,7 @@ import ( "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/storage" storageutil "k8s.io/kubernetes/pkg/apis/storage/util" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -121,6 +122,7 @@ func describerMap(c *client.Client) map[unversioned.GroupKind]Describer { certificates.Kind("CertificateSigningRequest"): &CertificateSigningRequestDescriber{c}, api.Kind("SecurityContextConstraints"): &SecurityContextConstraintsDescriber{c}, storage.Kind("StorageClass"): &StorageClassDescriber{c}, + policy.Kind("PodDisruptionBudget"): &PodDisruptionBudgetDescriber{c}, } return m @@ -2544,6 +2546,36 @@ func (s *StorageClassDescriber) Describe(namespace, name string, describerSettin }) } +type PodDisruptionBudgetDescriber struct { + client *client.Client +} + +func (p *PodDisruptionBudgetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { + pdb, err := p.client.Policy().PodDisruptionBudgets(namespace).Get(name) + if err != nil { + return "", err + } + return tabbedString(func(out io.Writer) error { + fmt.Fprintf(out, "Name:\t%s\n", pdb.Name) + fmt.Fprintf(out, "Min available:\t%s\n", pdb.Spec.MinAvailable.String()) + if pdb.Spec.Selector != nil { + fmt.Fprintf(out, "Selector:\t%s\n", unversioned.FormatLabelSelector(pdb.Spec.Selector)) + } else { + fmt.Fprintf(out, "Selector:\t\n") + } + if describerSettings.ShowEvents { + events, err := p.client.Events(namespace).Search(pdb) + if err != nil { + return err + } + if events != nil { + DescribeEvents(events, out) + } + } + return nil + }) +} + // newErrNoDescriber creates a new ErrNoDescriber with the names of the provided types. func newErrNoDescriber(types ...reflect.Type) error { names := make([]string, 0, len(types)) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource_printer.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource_printer.go index 1fa63b561543..4af94bc065da 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource_printer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource_printer.go @@ -41,6 +41,7 @@ import ( "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/storage" storageutil "k8s.io/kubernetes/pkg/apis/storage/util" @@ -455,6 +456,7 @@ func (h *HumanReadablePrinter) FinishPrint(output io.Writer, res string) error { // pkg/kubectl/cmd/get.go to reflect the new resource type. var podColumns = []string{"NAME", "READY", "STATUS", "RESTARTS", "AGE"} var podTemplateColumns = []string{"TEMPLATE", "CONTAINER(S)", "IMAGE(S)", "PODLABELS"} +var podDisruptionBudgetColumns = []string{"NAME", "MIN-AVAILABLE", "SELECTOR"} var replicationControllerColumns = []string{"NAME", "DESIRED", "CURRENT", "READY", "AGE"} var replicaSetColumns = []string{"NAME", "DESIRED", "CURRENT", "READY", "AGE"} var jobColumns = []string{"NAME", "DESIRED", "SUCCESSFUL", "AGE"} @@ -516,6 +518,8 @@ func (h *HumanReadablePrinter) addDefaultHandlers() { h.Handler(podColumns, h.printPod) h.Handler(podTemplateColumns, printPodTemplate) h.Handler(podTemplateColumns, printPodTemplateList) + h.Handler(podDisruptionBudgetColumns, printPodDisruptionBudget) + h.Handler(podDisruptionBudgetColumns, printPodDisruptionBudgetList) h.Handler(replicationControllerColumns, printReplicationController) h.Handler(replicationControllerColumns, printReplicationControllerList) h.Handler(replicaSetColumns, printReplicaSet) @@ -806,6 +810,41 @@ func printPodTemplateList(podList *api.PodTemplateList, w io.Writer, options Pri return nil } +func printPodDisruptionBudget(pdb *policy.PodDisruptionBudget, w io.Writer, options PrintOptions) error { + // name, minavailable, selector + name := formatResourceName(options.Kind, pdb.Name, options.WithKind) + namespace := pdb.Namespace + + if options.WithNamespace { + if _, err := fmt.Fprintf(w, "%s\t", namespace); err != nil { + return err + } + } + + selector := "" + if pdb.Spec.Selector != nil { + selector = unversioned.FormatLabelSelector(pdb.Spec.Selector) + } + if _, err := fmt.Fprintf(w, "%s\t%s\t%s\n", + name, + pdb.Spec.MinAvailable.String(), + selector, + ); err != nil { + return err + } + + return nil +} + +func printPodDisruptionBudgetList(pdbList *policy.PodDisruptionBudgetList, w io.Writer, options PrintOptions) error { + for _, pdb := range pdbList.Items { + if err := printPodDisruptionBudget(&pdb, w, options); err != nil { + return err + } + } + return nil +} + // TODO(AdoHe): try to put wide output in a single method func printReplicationController(controller *api.ReplicationController, w io.Writer, options PrintOptions) error { name := formatResourceName(options.Kind, controller.Name, options.WithKind) From 82418a56328f6e49c940a75d928101ec674d4df0 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Mon, 3 Oct 2016 12:37:59 +0200 Subject: [PATCH 3/4] Enable PodDistruptionbudget e2e tests in conformance --- test/extended/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/extended/setup.sh b/test/extended/setup.sh index 75e79763a99a..9add3b806f8a 100644 --- a/test/extended/setup.sh +++ b/test/extended/setup.sh @@ -77,7 +77,6 @@ function os::test::extended::setup () { os::log::system::start - if [[ -n "${SHOW_ALL:-}" ]]; then SKIP_NODE=1 fi @@ -309,4 +308,5 @@ readonly CONFORMANCE_TESTS=( "\[Feature\:SecurityContext\]" "should create a LimitRange with defaults" "Generated release_1_2 clientset" + "\[Feature\:PodDisruptionbudget\]" ) From 2b5dd3dec10b23e58b25712ee12a83b123a0e35c Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Fri, 21 Oct 2016 20:50:55 +0200 Subject: [PATCH 4/4] PodDisruptionBudget - generated changes --- contrib/completions/bash/oc | 14 ++++++++++++++ contrib/completions/bash/openshift | 28 ++++++++++++++++++++++++++++ contrib/completions/zsh/oc | 14 ++++++++++++++ contrib/completions/zsh/openshift | 28 ++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+) diff --git a/contrib/completions/bash/oc b/contrib/completions/bash/oc index ff1f9fb59826..87480a7093b1 100644 --- a/contrib/completions/bash/oc +++ b/contrib/completions/bash/oc @@ -4987,6 +4987,7 @@ _oc_annotate() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -5069,6 +5070,7 @@ _oc_annotate() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -8320,6 +8322,7 @@ _oc_delete() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -8402,6 +8405,7 @@ _oc_delete() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -8584,6 +8588,7 @@ _oc_describe() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("policy") must_have_one_noun+=("policybinding") must_have_one_noun+=("project") @@ -8631,6 +8636,7 @@ _oc_describe() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("pv") noun_aliases+=("pvc") @@ -8764,6 +8770,7 @@ _oc_edit() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -8846,6 +8853,7 @@ _oc_edit() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -9565,6 +9573,7 @@ _oc_get() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -9647,6 +9656,7 @@ _oc_get() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -10089,6 +10099,7 @@ _oc_label() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -10171,6 +10182,7 @@ _oc_label() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -10851,6 +10863,7 @@ _oc_patch() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -10933,6 +10946,7 @@ _oc_patch() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") diff --git a/contrib/completions/bash/openshift b/contrib/completions/bash/openshift index fa40481234cb..854de1781fab 100644 --- a/contrib/completions/bash/openshift +++ b/contrib/completions/bash/openshift @@ -9544,6 +9544,7 @@ _openshift_cli_annotate() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -9626,6 +9627,7 @@ _openshift_cli_annotate() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -12927,6 +12929,7 @@ _openshift_cli_delete() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -13009,6 +13012,7 @@ _openshift_cli_delete() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -13193,6 +13197,7 @@ _openshift_cli_describe() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("policy") must_have_one_noun+=("policybinding") must_have_one_noun+=("project") @@ -13240,6 +13245,7 @@ _openshift_cli_describe() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("pv") noun_aliases+=("pvc") @@ -13374,6 +13380,7 @@ _openshift_cli_edit() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -13456,6 +13463,7 @@ _openshift_cli_edit() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -14184,6 +14192,7 @@ _openshift_cli_get() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -14266,6 +14275,7 @@ _openshift_cli_get() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -14714,6 +14724,7 @@ _openshift_cli_label() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -14796,6 +14807,7 @@ _openshift_cli_label() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -15485,6 +15497,7 @@ _openshift_cli_patch() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -15567,6 +15580,7 @@ _openshift_cli_patch() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -20338,6 +20352,7 @@ _openshift_kube_annotate() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -20420,6 +20435,7 @@ _openshift_kube_annotate() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -24294,6 +24310,7 @@ _openshift_kube_delete() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -24376,6 +24393,7 @@ _openshift_kube_delete() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -24528,6 +24546,7 @@ _openshift_kube_describe() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("replicaset") must_have_one_noun+=("replicationcontroller") must_have_one_noun+=("resourcequota") @@ -24566,6 +24585,7 @@ _openshift_kube_describe() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("pv") noun_aliases+=("pvc") @@ -24832,6 +24852,7 @@ _openshift_kube_edit() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -24914,6 +24935,7 @@ _openshift_kube_edit() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -25467,6 +25489,7 @@ _openshift_kube_get() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -25549,6 +25572,7 @@ _openshift_kube_get() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -25752,6 +25776,7 @@ _openshift_kube_label() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -25834,6 +25859,7 @@ _openshift_kube_label() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -26392,6 +26418,7 @@ _openshift_kube_patch() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -26474,6 +26501,7 @@ _openshift_kube_patch() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") diff --git a/contrib/completions/zsh/oc b/contrib/completions/zsh/oc index 5c4edd3e2aaa..caab16e26ffa 100644 --- a/contrib/completions/zsh/oc +++ b/contrib/completions/zsh/oc @@ -5148,6 +5148,7 @@ _oc_annotate() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -5230,6 +5231,7 @@ _oc_annotate() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -8481,6 +8483,7 @@ _oc_delete() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -8563,6 +8566,7 @@ _oc_delete() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -8745,6 +8749,7 @@ _oc_describe() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("policy") must_have_one_noun+=("policybinding") must_have_one_noun+=("project") @@ -8792,6 +8797,7 @@ _oc_describe() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("pv") noun_aliases+=("pvc") @@ -8925,6 +8931,7 @@ _oc_edit() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -9007,6 +9014,7 @@ _oc_edit() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -9726,6 +9734,7 @@ _oc_get() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -9808,6 +9817,7 @@ _oc_get() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -10250,6 +10260,7 @@ _oc_label() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -10332,6 +10343,7 @@ _oc_label() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -11012,6 +11024,7 @@ _oc_patch() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -11094,6 +11107,7 @@ _oc_patch() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") diff --git a/contrib/completions/zsh/openshift b/contrib/completions/zsh/openshift index e27aaab03bb3..d52b0c81cfd9 100644 --- a/contrib/completions/zsh/openshift +++ b/contrib/completions/zsh/openshift @@ -9705,6 +9705,7 @@ _openshift_cli_annotate() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -9787,6 +9788,7 @@ _openshift_cli_annotate() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -13088,6 +13090,7 @@ _openshift_cli_delete() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -13170,6 +13173,7 @@ _openshift_cli_delete() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -13354,6 +13358,7 @@ _openshift_cli_describe() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("policy") must_have_one_noun+=("policybinding") must_have_one_noun+=("project") @@ -13401,6 +13406,7 @@ _openshift_cli_describe() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("pv") noun_aliases+=("pvc") @@ -13535,6 +13541,7 @@ _openshift_cli_edit() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -13617,6 +13624,7 @@ _openshift_cli_edit() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -14345,6 +14353,7 @@ _openshift_cli_get() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -14427,6 +14436,7 @@ _openshift_cli_get() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -14875,6 +14885,7 @@ _openshift_cli_label() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -14957,6 +14968,7 @@ _openshift_cli_label() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -15646,6 +15658,7 @@ _openshift_cli_patch() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -15728,6 +15741,7 @@ _openshift_cli_patch() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -20499,6 +20513,7 @@ _openshift_kube_annotate() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -20581,6 +20596,7 @@ _openshift_kube_annotate() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -24455,6 +24471,7 @@ _openshift_kube_delete() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -24537,6 +24554,7 @@ _openshift_kube_delete() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -24689,6 +24707,7 @@ _openshift_kube_describe() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("replicaset") must_have_one_noun+=("replicationcontroller") must_have_one_noun+=("resourcequota") @@ -24727,6 +24746,7 @@ _openshift_kube_describe() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("pv") noun_aliases+=("pvc") @@ -24993,6 +25013,7 @@ _openshift_kube_edit() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -25075,6 +25096,7 @@ _openshift_kube_edit() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -25628,6 +25650,7 @@ _openshift_kube_get() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -25710,6 +25733,7 @@ _openshift_kube_get() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -25913,6 +25937,7 @@ _openshift_kube_label() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -25995,6 +26020,7 @@ _openshift_kube_label() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates") @@ -26553,6 +26579,7 @@ _openshift_kube_patch() must_have_one_noun+=("persistentvolumeclaim") must_have_one_noun+=("petset") must_have_one_noun+=("pod") + must_have_one_noun+=("poddisruptionbudget") must_have_one_noun+=("podsecuritypolicy") must_have_one_noun+=("podtemplate") must_have_one_noun+=("policy") @@ -26635,6 +26662,7 @@ _openshift_kube_patch() noun_aliases+=("persistentvolumes") noun_aliases+=("petsets") noun_aliases+=("po") + noun_aliases+=("poddisruptionbudgets") noun_aliases+=("pods") noun_aliases+=("podsecuritypolicies") noun_aliases+=("podtemplates")