From c7efab40b603cc6a39fbd3ecefac5f36b81599e4 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Wed, 24 Jan 2018 17:22:38 +0100 Subject: [PATCH] Fix kubectl explain for cronjobs --- hack/make-rules/test-cmd-util.sh | 2 ++ pkg/kubectl/cmd/explain.go | 23 +++++++---------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/hack/make-rules/test-cmd-util.sh b/hack/make-rules/test-cmd-util.sh index 0120083319d..c1bec892b3f 100755 --- a/hack/make-rules/test-cmd-util.sh +++ b/hack/make-rules/test-cmd-util.sh @@ -4120,6 +4120,8 @@ run_kubectl_explain_tests() { # shortcuts work kubectl explain po kubectl explain po.status.message + # cronjob work + kubectl explain cronjob set +o nounset set +o errexit diff --git a/pkg/kubectl/cmd/explain.go b/pkg/kubectl/cmd/explain.go index 47472c3c466..15463a9451d 100644 --- a/pkg/kubectl/cmd/explain.go +++ b/pkg/kubectl/cmd/explain.go @@ -26,19 +26,18 @@ import ( "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/explain" - "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/i18n" ) var ( explainLong = templates.LongDesc(` List the fields for supported resources - + This command describes the fields associated with each supported API resource. - Fields are identified via a simple JSONPath identifier: - + Fields are identified via a simple JSONPath identifier: + .[.] - + Add the --recursive flag to display all of the fields at once without descriptions. Information about each field is retrieved from the server in OpenAPI format.`) @@ -81,7 +80,6 @@ func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, ar recursive := cmdutil.GetFlagBool(cmd, "recursive") apiVersionString := cmdutil.GetFlagString(cmd, "api-version") - apiVersion := schema.GroupVersion{} mapper, _ := f.Object() // TODO: After we figured out the new syntax to separate group and resource, allow @@ -105,20 +103,13 @@ func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, ar } } - if len(apiVersionString) == 0 { - groupMeta, err := scheme.Registry.Group(gvk.Group) - if err != nil { - return err - } - apiVersion = groupMeta.GroupVersion - - } else { - apiVersion, err = schema.ParseGroupVersion(apiVersionString) + if len(apiVersionString) != 0 { + apiVersion, err := schema.ParseGroupVersion(apiVersionString) if err != nil { return err } + gvk = apiVersion.WithKind(gvk.Kind) } - gvk = apiVersion.WithKind(gvk.Kind) resources, err := f.OpenAPISchema() if err != nil {