Commit 50377e88 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #53560 from dixudx/sort_kubectl_top_metrics

Automatic merge from submit-queue (batch tested with PRs 53565, 53560). 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>. sort top pod and top node output by namespace/name **What this PR does / why we need it**: **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #53513 **Special notes for your reviewer**: /assign @smarterclayton **Release note**: ```release-note kubectl top pod and node should sort by namespace / name so that results don't jump around. ```
parents e1d403ca a77c8a1e
...@@ -19,6 +19,7 @@ package metricsutil ...@@ -19,6 +19,7 @@ package metricsutil
import ( import (
"fmt" "fmt"
"io" "io"
"sort"
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
...@@ -58,6 +59,10 @@ func (printer *TopCmdPrinter) PrintNodeMetrics(metrics []metricsapi.NodeMetrics, ...@@ -58,6 +59,10 @@ func (printer *TopCmdPrinter) PrintNodeMetrics(metrics []metricsapi.NodeMetrics,
w := printers.GetNewTabWriter(printer.out) w := printers.GetNewTabWriter(printer.out)
defer w.Flush() defer w.Flush()
sort.Slice(metrics, func(i, j int) bool {
return metrics[i].Name < metrics[j].Name
})
printColumnNames(w, NodeColumns) printColumnNames(w, NodeColumns)
var usage api.ResourceList var usage api.ResourceList
for _, m := range metrics { for _, m := range metrics {
...@@ -87,6 +92,14 @@ func (printer *TopCmdPrinter) PrintPodMetrics(metrics []metricsapi.PodMetrics, p ...@@ -87,6 +92,14 @@ func (printer *TopCmdPrinter) PrintPodMetrics(metrics []metricsapi.PodMetrics, p
if printContainers { if printContainers {
printValue(w, PodColumn) 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) printColumnNames(w, PodColumns)
for _, m := range metrics { for _, m := range metrics {
err := printSinglePodMetrics(w, &m, printContainers, withNamespace) err := printSinglePodMetrics(w, &m, printContainers, withNamespace)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment