From a77c8a1ecda8af9639fdf13707ea817d954ea1f6 Mon Sep 17 00:00:00 2001 From: Di Xu Date: Sat, 7 Oct 2017 22:58:34 +0800 Subject: [PATCH] sort top pod and top node output by namespace/name --- pkg/kubectl/metricsutil/metrics_printer.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/kubectl/metricsutil/metrics_printer.go b/pkg/kubectl/metricsutil/metrics_printer.go index 71c80b7370f..67833076669 100644 --- a/pkg/kubectl/metricsutil/metrics_printer.go +++ b/pkg/kubectl/metricsutil/metrics_printer.go @@ -19,6 +19,7 @@ package metricsutil import ( "fmt" "io" + "sort" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/kubernetes/pkg/api" @@ -58,6 +59,10 @@ func (printer *TopCmdPrinter) PrintNodeMetrics(metrics []metricsapi.NodeMetrics, w := printers.GetNewTabWriter(printer.out) defer w.Flush() + sort.Slice(metrics, func(i, j int) bool { + return metrics[i].Name < metrics[j].Name + }) + printColumnNames(w, NodeColumns) var usage api.ResourceList for _, m := range metrics { @@ -87,6 +92,14 @@ func (printer *TopCmdPrinter) PrintPodMetrics(metrics []metricsapi.PodMetrics, p if printContainers { printValue(w, PodColumn) } + + sort.Slice(metrics, func(i, j int) bool { + if withNamespace && metrics[i].Namespace != metrics[j].Namespace { + return metrics[i].Namespace < metrics[j].Namespace + } + return metrics[i].Name < metrics[j].Name + }) + printColumnNames(w, PodColumns) for _, m := range metrics { err := printSinglePodMetrics(w, &m, printContainers, withNamespace)