From c923ca58272598fe8cc73a70a18fa1028a989d2b Mon Sep 17 00:00:00 2001 From: Raul Sevilla Date: Tue, 21 Nov 2023 21:31:32 +0100 Subject: [PATCH] Optimize GetCurrentPodCount() by listing pods only once Signed-off-by: Raul Sevilla --- ocp-metadata/ocp-metadata.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ocp-metadata/ocp-metadata.go b/ocp-metadata/ocp-metadata.go index 0f8254b..d19b849 100644 --- a/ocp-metadata/ocp-metadata.go +++ b/ocp-metadata/ocp-metadata.go @@ -96,12 +96,17 @@ func (meta *Metadata) GetCurrentPodCount() (int, error) { if err != nil { return podCount, err } - for _, node := range nodeList.Items { - podList, err := meta.clientSet.CoreV1().Pods(metav1.NamespaceAll).List(context.TODO(), metav1.ListOptions{FieldSelector: "status.phase=Running,spec.nodeName=" + node.Name}) - if err != nil { - return podCount, err + podList, err := meta.clientSet.CoreV1().Pods(metav1.NamespaceAll).List(context.TODO(), metav1.ListOptions{FieldSelector: "status.phase=Running"}) + if err != nil { + return podCount, err + } + for _, pod := range podList.Items { + for _, node := range nodeList.Items { + if pod.Spec.NodeName == node.Name { + podCount++ + break + } } - podCount += len(podList.Items) } return podCount, nil }