diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index cf54cb04e2..1b76ebd880 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -1491,6 +1491,33 @@ __EOF__ # Command kubectl get pods --sort-by="{metadata.name}" + ############################ + # Kubectl --all-namespaces # + ############################ + + # Pre-condition: the "default" namespace exists + kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:' + + ### Create POD + # Pre-condition: no POD exists + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + # Command + kubectl create "${kube_flags[@]}" -f docs/admin/limitrange/valid-pod.yaml + # Post-condition: valid-pod is created + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + + ### Verify a specific namespace is ignored when all-namespaces is provided + # Command + kubectl get pods --all-namespaces --namespace=default + + ### Clean up + # Pre-condition: valid-pod exists + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + # Command + kubectl delete "${kube_flags[@]}" pod valid-pod --grace-period=0 + # Post-condition: valid-pod doesn't exist + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + kube::test::clear_all } diff --git a/pkg/kubectl/cmd/get.go b/pkg/kubectl/cmd/get.go index c8123c9ff5..86fd731304 100644 --- a/pkg/kubectl/cmd/get.go +++ b/pkg/kubectl/cmd/get.go @@ -119,6 +119,10 @@ func RunGet(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []string return err } + if allNamespaces { + enforceNamespace = false + } + if len(args) == 0 && len(options.Filenames) == 0 { fmt.Fprint(out, "You must specify the type of resource to get. ", valid_resources) return cmdutil.UsageError(cmd, "Required resource not specified.")