diff --git a/docs/man/man1/kubectl-api-versions.1 b/docs/man/man1/kubectl-api-versions.1 index a0c08afe9d..a0a070e87e 100644 --- a/docs/man/man1/kubectl-api-versions.1 +++ b/docs/man/man1/kubectl-api-versions.1 @@ -3,7 +3,7 @@ .SH NAME .PP -kubectl api\-versions \- Print available API versions. +kubectl api\-versions \- Print the supported API versions on the server, in the form of "group/version". .SH SYNOPSIS @@ -13,7 +13,7 @@ kubectl api\-versions \- Print available API versions. .SH DESCRIPTION .PP -Print available API versions. +Print the supported API versions on the server, in the form of "group/version". .SH OPTIONS INHERITED FROM PARENT COMMANDS diff --git a/docs/user-guide/kubectl/kubectl.md b/docs/user-guide/kubectl/kubectl.md index 119c7950bb..e58285a360 100644 --- a/docs/user-guide/kubectl/kubectl.md +++ b/docs/user-guide/kubectl/kubectl.md @@ -77,7 +77,7 @@ kubectl ### SEE ALSO * [kubectl annotate](kubectl_annotate.md) - Update the annotations on a resource -* [kubectl api-versions](kubectl_api-versions.md) - Print available API versions. +* [kubectl api-versions](kubectl_api-versions.md) - Print the supported API versions on the server, in the form of "group/version". * [kubectl apply](kubectl_apply.md) - Apply a configuration to a resource by filename or stdin * [kubectl attach](kubectl_attach.md) - Attach to a running container. * [kubectl autoscale](kubectl_autoscale.md) - Auto-scale a replication controller @@ -105,7 +105,7 @@ kubectl * [kubectl stop](kubectl_stop.md) - Deprecated: Gracefully shut down a resource by name or filename. * [kubectl version](kubectl_version.md) - Print the client and server version information. -###### Auto generated by spf13/cobra on 16-Oct-2015 +###### Auto generated by spf13/cobra on 21-Oct-2015 [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/user-guide/kubectl/kubectl.md?pixel)]() diff --git a/docs/user-guide/kubectl/kubectl_api-versions.md b/docs/user-guide/kubectl/kubectl_api-versions.md index 73f48d1b5f..5b6327efe1 100644 --- a/docs/user-guide/kubectl/kubectl_api-versions.md +++ b/docs/user-guide/kubectl/kubectl_api-versions.md @@ -33,12 +33,12 @@ Documentation for other releases can be found at ## kubectl api-versions -Print available API versions. +Print the supported API versions on the server, in the form of "group/version". ### Synopsis -Print available API versions. +Print the supported API versions on the server, in the form of "group/version". ``` kubectl api-versions @@ -76,7 +76,7 @@ kubectl api-versions * [kubectl](kubectl.md) - kubectl controls the Kubernetes cluster manager -###### Auto generated by spf13/cobra at 2015-09-22 12:53:42.294634813 +0000 UTC +###### Auto generated by spf13/cobra on 20-Oct-2015 [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/user-guide/kubectl/kubectl_api-versions.md?pixel)]() diff --git a/pkg/client/unversioned/client.go b/pkg/client/unversioned/client.go index 2333672ebf..b24b9fa331 100644 --- a/pkg/client/unversioned/client.go +++ b/pkg/client/unversioned/client.go @@ -196,7 +196,7 @@ func (c *Client) SwaggerSchema(groupVersion string) (*swagger.ApiDeclaration, er if err != nil { return nil, err } - groupVersions := extractGroupVersions(groupList) + groupVersions := ExtractGroupVersions(groupList) // This check also takes care the case that kubectl is newer than the running endpoint if stringDoesntExistIn(groupVersion, groupVersions) { return nil, fmt.Errorf("API version: %s is not supported by the server. Use one of: %v", groupVersion, groupVersions) diff --git a/pkg/client/unversioned/discovery_client.go b/pkg/client/unversioned/discovery_client.go index 273a20dac8..362e6e63e2 100644 --- a/pkg/client/unversioned/discovery_client.go +++ b/pkg/client/unversioned/discovery_client.go @@ -140,7 +140,7 @@ func (d *DiscoveryClient) ServerResources() (map[string]*unversioned.APIResource if err != nil { return nil, err } - groupVersions := extractGroupVersions(apiGroups) + groupVersions := ExtractGroupVersions(apiGroups) result := map[string]*unversioned.APIResourceList{} for _, groupVersion := range groupVersions { resources, err := d.ServerResourcesForGroupVersion(groupVersion) diff --git a/pkg/client/unversioned/helper.go b/pkg/client/unversioned/helper.go index b217ae07fd..bc593e2e89 100644 --- a/pkg/client/unversioned/helper.go +++ b/pkg/client/unversioned/helper.go @@ -187,7 +187,7 @@ func MatchesServerVersion(client *Client, c *Config) error { return nil } -func extractGroupVersions(l *unversioned.APIGroupList) []string { +func ExtractGroupVersions(l *unversioned.APIGroupList) []string { var groupVersions []string for _, g := range l.Groups { for _, gv := range g.Versions { @@ -241,7 +241,7 @@ func ServerAPIVersions(c *Config) (groupVersions []string, err error) { if err != nil { return nil, fmt.Errorf("unexpected error: %v", err) } - groupVersions = append(groupVersions, extractGroupVersions(&apiGroupList)...) + groupVersions = append(groupVersions, ExtractGroupVersions(&apiGroupList)...) return groupVersions, nil } diff --git a/pkg/kubectl/cmd/apiversions.go b/pkg/kubectl/cmd/apiversions.go index fd5a4faa73..bc04d3eb5b 100644 --- a/pkg/kubectl/cmd/apiversions.go +++ b/pkg/kubectl/cmd/apiversions.go @@ -20,10 +20,11 @@ import ( "fmt" "io" "os" + "sort" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/unversioned" + unversioned_client "k8s.io/kubernetes/pkg/client/unversioned" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) @@ -32,7 +33,7 @@ func NewCmdApiVersions(f *cmdutil.Factory, out io.Writer) *cobra.Command { Use: "api-versions", // apiversions is deprecated. Aliases: []string{"apiversions"}, - Short: "Print available API versions.", + Short: "Print the supported API versions on the server, in the form of \"group/version\".", Run: func(cmd *cobra.Command, args []string) { err := RunApiVersions(f, out) cmdutil.CheckErr(err) @@ -51,19 +52,14 @@ func RunApiVersions(f *cmdutil.Factory, w io.Writer) error { return err } - apiVersions, err := client.ServerAPIVersions() + groupList, err := client.Discovery().ServerGroups() if err != nil { - fmt.Printf("Couldn't get available api versions from server: %v\n", err) - os.Exit(1) + return fmt.Errorf("Couldn't get available api versions from server: %v\n", err) } - - var expAPIVersions *unversioned.APIVersions - expAPIVersions, err = client.Extensions().ServerAPIVersions() - - fmt.Fprintf(w, "Available Server Api Versions: %#v\n", *apiVersions) - if err == nil { - fmt.Fprintf(w, "Available Server Experimental Api Versions: %#v\n", *expAPIVersions) + apiVersions := unversioned_client.ExtractGroupVersions(groupList) + sort.Strings(apiVersions) + for _, v := range apiVersions { + fmt.Fprintln(w, v) } - return nil } diff --git a/test/e2e/kubectl.go b/test/e2e/kubectl.go index 2f3dce7feb..89d66cdd67 100644 --- a/test/e2e/kubectl.go +++ b/test/e2e/kubectl.go @@ -427,9 +427,6 @@ var _ = Describe("Kubectl client", func() { It("should check if v1 is in available api versions [Conformance]", func() { By("validating api verions") output := runKubectl("api-versions") - if !strings.Contains(output, "Available Server Api Versions:") { - Failf("Missing caption in kubectl api-versions") - } if !strings.Contains(output, "v1") { Failf("No v1 in kubectl api-versions") }