From f69bdb905f8736d86900ca16c6414747543234c0 Mon Sep 17 00:00:00 2001 From: Avesh Agarwal Date: Fri, 11 Aug 2017 17:44:18 -0400 Subject: [PATCH] Implement sorting of nodes by usage. --- .../strategies/lownodeutilization.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkg/rescheduler/strategies/lownodeutilization.go b/pkg/rescheduler/strategies/lownodeutilization.go index 3c8ec5235..eb2e24b41 100644 --- a/pkg/rescheduler/strategies/lownodeutilization.go +++ b/pkg/rescheduler/strategies/lownodeutilization.go @@ -18,6 +18,7 @@ package strategies import ( "fmt" + "sort" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/kubernetes/pkg/api/v1" @@ -81,6 +82,22 @@ func LowNodeUtilization(client clientset.Interface, strategy api.ReschedulerStra return } + SortNodesByUsage(targetNodes) + +} + +func SortNodesByUsage(nodes []NodeUsageMap) { + sort.Slice(nodes, func(i, j int) bool { + var ti, tj api.Percentage + for _, vi := range nodes[i].usage { + ti += vi + } + for _, vj := range nodes[j].usage { + tj += vj + } + // To return sorted in descending order + return ti > tj + }) } func CreateNodePodsMap(client clientset.Interface, nodes []*v1.Node) NodePodsMap {