mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 10:19:50 +00:00
Merge pull request #46946 from kellycampbell/sort-contexts
Automatic merge from submit-queue (batch tested with PRs 46946, 45792). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubectl config get-contexts: sort output This sorts the output of kubectl config get-contexts because the ordering is otherwise non-stable and makes it harder to find the context you're looking for when you have more than a few. ```release-note The output of kubectl config get-contexts is now sorted alphabetically by the context name. ```
This commit is contained in:
commit
a78d6b85ce
@ -19,6 +19,7 @@ package config
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"text/tabwriter"
|
"text/tabwriter"
|
||||||
|
|
||||||
@ -138,6 +139,7 @@ func (o GetContextsOptions) RunGetContexts() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sort.Strings(toPrint)
|
||||||
for _, name := range toPrint {
|
for _, name := range toPrint {
|
||||||
err = printContext(name, config.Contexts[name], out, o.nameOnly, config.CurrentContext == name)
|
err = printContext(name, config.Contexts[name], out, o.nameOnly, config.CurrentContext == name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -66,6 +66,27 @@ func TestGetContextsAllNoHeader(t *testing.T) {
|
|||||||
test.run(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) {
|
func TestGetContextsAllName(t *testing.T) {
|
||||||
tconf := clientcmdapi.Config{
|
tconf := clientcmdapi.Config{
|
||||||
Contexts: map[string]*clientcmdapi.Context{
|
Contexts: map[string]*clientcmdapi.Context{
|
||||||
|
Loading…
Reference in New Issue
Block a user