From 9f7468599e486c5f1f2a1954a0d4afb1a9862da7 Mon Sep 17 00:00:00 2001 From: Kelly Campbell Date: Sun, 4 Jun 2017 18:06:04 -0400 Subject: [PATCH] kubectl config get-contexts: sort output --- pkg/kubectl/cmd/config/get_contexts.go | 2 ++ pkg/kubectl/cmd/config/get_contexts_test.go | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/pkg/kubectl/cmd/config/get_contexts.go b/pkg/kubectl/cmd/config/get_contexts.go index 5c52014f699..74be5f3f244 100644 --- a/pkg/kubectl/cmd/config/get_contexts.go +++ b/pkg/kubectl/cmd/config/get_contexts.go @@ -19,6 +19,7 @@ package config import ( "fmt" "io" + "sort" "strings" "text/tabwriter" @@ -138,6 +139,7 @@ func (o GetContextsOptions) RunGetContexts() error { } } + sort.Strings(toPrint) for _, name := range toPrint { err = printContext(name, config.Contexts[name], out, o.nameOnly, config.CurrentContext == name) if err != nil { diff --git a/pkg/kubectl/cmd/config/get_contexts_test.go b/pkg/kubectl/cmd/config/get_contexts_test.go index 8d84b7f9a40..ef5fff060ce 100644 --- a/pkg/kubectl/cmd/config/get_contexts_test.go +++ b/pkg/kubectl/cmd/config/get_contexts_test.go @@ -66,6 +66,27 @@ func TestGetContextsAllNoHeader(t *testing.T) { test.run(t) } +func TestGetContextsAllSorted(t *testing.T) { + tconf := clientcmdapi.Config{ + CurrentContext: "shaker-context", + Contexts: map[string]*clientcmdapi.Context{ + "shaker-context": {AuthInfo: "blue-user", Cluster: "big-cluster", Namespace: "saw-ns"}, + "abc": {AuthInfo: "blue-user", Cluster: "abc-cluster", Namespace: "kube-system"}, + "xyz": {AuthInfo: "blue-user", Cluster: "xyz-cluster", Namespace: "default"}}} + test := getContextsTest{ + startingConfig: tconf, + names: []string{}, + noHeader: false, + nameOnly: false, + expectedOut: `CURRENT NAME CLUSTER AUTHINFO NAMESPACE + abc abc-cluster blue-user kube-system +* shaker-context big-cluster blue-user saw-ns + xyz xyz-cluster blue-user default +`, + } + test.run(t) +} + func TestGetContextsAllName(t *testing.T) { tconf := clientcmdapi.Config{ Contexts: map[string]*clientcmdapi.Context{