From b3f14f662295ea25735a0f3d6ea72bf3f5bcef82 Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 09:12:32 +0530 Subject: [PATCH 1/8] add node ready cases Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node_test.go | 62 +++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/pkg/utils/kubeclient/node_test.go b/pkg/utils/kubeclient/node_test.go index 2f2a0d4b894..1c433afbc27 100644 --- a/pkg/utils/kubeclient/node_test.go +++ b/pkg/utils/kubeclient/node_test.go @@ -124,4 +124,66 @@ var _ = Describe("IsReady", func() { Expect(result).To(BeFalse()) }) }) + + Context("when node has no NodeReady condition", func() { + It("should return true", func() { + node := corev1.Node{ + ObjectMeta: metav1.ObjectMeta{Name: "test3"}, + Status: corev1.NodeStatus{ + Conditions: []corev1.NodeCondition{ + { + Type: corev1.NodeMemoryPressure, + Status: corev1.ConditionFalse, + }, + }, + }, + } + result := IsReady(node) + Expect(result).To(BeTrue()) + }) + }) + + Context("when node ready condition is unknown", func() { + It("should return false", func() { + node := corev1.Node{ + ObjectMeta: metav1.ObjectMeta{Name: "test4"}, + Status: corev1.NodeStatus{ + Conditions: []corev1.NodeCondition{ + { + Type: corev1.NodeReady, + Status: corev1.ConditionUnknown, + }, + }, + }, + } + result := IsReady(node) + Expect(result).To(BeFalse()) + }) + }) + + Context("when one NodeReady condition is false among other conditions", func() { + It("should return false", func() { + node := corev1.Node{ + ObjectMeta: metav1.ObjectMeta{Name: "test5"}, + Status: corev1.NodeStatus{ + Conditions: []corev1.NodeCondition{ + { + Type: corev1.NodeDiskPressure, + Status: corev1.ConditionFalse, + }, + { + Type: corev1.NodeReady, + Status: corev1.ConditionFalse, + }, + { + Type: corev1.NodePIDPressure, + Status: corev1.ConditionFalse, + }, + }, + }, + } + result := IsReady(node) + Expect(result).To(BeFalse()) + }) + }) }) From 722bfc5b34d0caf56534240796bfccbd57d0714c Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 09:23:38 +0530 Subject: [PATCH 2/8] align node readiness behavior Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node.go | 7 +++---- pkg/utils/kubeclient/node_test.go | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pkg/utils/kubeclient/node.go b/pkg/utils/kubeclient/node.go index 2d594ba2554..1034971f1f9 100644 --- a/pkg/utils/kubeclient/node.go +++ b/pkg/utils/kubeclient/node.go @@ -42,11 +42,10 @@ func GetNode(client client.Reader, name string) (node *corev1.Node, err error) { // IsReady checks if the node is ready // If the node is ready,it returns True.Otherwise,it returns False. func IsReady(node corev1.Node) (ready bool) { - ready = true + ready = false for _, condition := range node.Status.Conditions { - if condition.Type == corev1.NodeReady && condition.Status != corev1.ConditionTrue { - ready = false - break + if condition.Type == corev1.NodeReady { + return condition.Status == corev1.ConditionTrue } } return ready diff --git a/pkg/utils/kubeclient/node_test.go b/pkg/utils/kubeclient/node_test.go index 1c433afbc27..a6daa3c1829 100644 --- a/pkg/utils/kubeclient/node_test.go +++ b/pkg/utils/kubeclient/node_test.go @@ -126,7 +126,7 @@ var _ = Describe("IsReady", func() { }) Context("when node has no NodeReady condition", func() { - It("should return true", func() { + It("should return false", func() { node := corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "test3"}, Status: corev1.NodeStatus{ @@ -139,7 +139,7 @@ var _ = Describe("IsReady", func() { }, } result := IsReady(node) - Expect(result).To(BeTrue()) + Expect(result).To(BeFalse()) }) }) From efc279e97be9e491bc78bb66453cfa9433e26145 Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 09:56:40 +0530 Subject: [PATCH 3/8] remove redundant init Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/utils/kubeclient/node.go b/pkg/utils/kubeclient/node.go index 1034971f1f9..fe437718e3c 100644 --- a/pkg/utils/kubeclient/node.go +++ b/pkg/utils/kubeclient/node.go @@ -42,7 +42,6 @@ func GetNode(client client.Reader, name string) (node *corev1.Node, err error) { // IsReady checks if the node is ready // If the node is ready,it returns True.Otherwise,it returns False. func IsReady(node corev1.Node) (ready bool) { - ready = false for _, condition := range node.Status.Conditions { if condition.Type == corev1.NodeReady { return condition.Status == corev1.ConditionTrue From 19fdb7980d007642674fff33d73ddf209967a675 Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 16:25:47 +0530 Subject: [PATCH 4/8] clarify explicit false return Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/utils/kubeclient/node.go b/pkg/utils/kubeclient/node.go index fe437718e3c..65954de38d9 100644 --- a/pkg/utils/kubeclient/node.go +++ b/pkg/utils/kubeclient/node.go @@ -41,11 +41,11 @@ func GetNode(client client.Reader, name string) (node *corev1.Node, err error) { // IsReady checks if the node is ready // If the node is ready,it returns True.Otherwise,it returns False. -func IsReady(node corev1.Node) (ready bool) { +func IsReady(node corev1.Node) bool { for _, condition := range node.Status.Conditions { if condition.Type == corev1.NodeReady { return condition.Status == corev1.ConditionTrue } } - return ready + return false } From 67e419beb871780b32e7bfdea0b4f0f022869364 Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 17:08:06 +0530 Subject: [PATCH 5/8] cover empty conditions case Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/utils/kubeclient/node_test.go b/pkg/utils/kubeclient/node_test.go index a6daa3c1829..cf77bf81e25 100644 --- a/pkg/utils/kubeclient/node_test.go +++ b/pkg/utils/kubeclient/node_test.go @@ -126,6 +126,17 @@ var _ = Describe("IsReady", func() { }) Context("when node has no NodeReady condition", func() { + It("should return false when conditions are empty", func() { + node := corev1.Node{ + ObjectMeta: metav1.ObjectMeta{Name: "test-empty"}, + Status: corev1.NodeStatus{ + Conditions: []corev1.NodeCondition{}, + }, + } + result := IsReady(node) + Expect(result).To(BeFalse()) + }) + It("should return false", func() { node := corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "test3"}, From c5dd535320deb663dc956d5f8deb1714a5aaef4e Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 17:15:26 +0530 Subject: [PATCH 6/8] Update pkg/utils/kubeclient/node_test.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/utils/kubeclient/node_test.go b/pkg/utils/kubeclient/node_test.go index cf77bf81e25..f422f8b58f6 100644 --- a/pkg/utils/kubeclient/node_test.go +++ b/pkg/utils/kubeclient/node_test.go @@ -137,7 +137,7 @@ var _ = Describe("IsReady", func() { Expect(result).To(BeFalse()) }) - It("should return false", func() { + It("should return false when other conditions are present but NodeReady is missing", func() { node := corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "test3"}, Status: corev1.NodeStatus{ From 33568168fff81207454b78ad89b93f2ea9a1966a Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 17:15:41 +0530 Subject: [PATCH 7/8] Update pkg/utils/kubeclient/node_test.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/utils/kubeclient/node_test.go b/pkg/utils/kubeclient/node_test.go index f422f8b58f6..674c5ce9e06 100644 --- a/pkg/utils/kubeclient/node_test.go +++ b/pkg/utils/kubeclient/node_test.go @@ -155,7 +155,7 @@ var _ = Describe("IsReady", func() { }) Context("when node ready condition is unknown", func() { - It("should return false", func() { + It("should return false when NodeReady condition status is Unknown", func() { node := corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "test4"}, Status: corev1.NodeStatus{ From a416c2c5b52462242f10457e669039dfc9c27449 Mon Sep 17 00:00:00 2001 From: r0hansaxena Date: Tue, 7 Apr 2026 17:15:52 +0530 Subject: [PATCH 8/8] Update pkg/utils/kubeclient/node_test.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: r0hansaxena --- pkg/utils/kubeclient/node_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/utils/kubeclient/node_test.go b/pkg/utils/kubeclient/node_test.go index 674c5ce9e06..82a757e3fe2 100644 --- a/pkg/utils/kubeclient/node_test.go +++ b/pkg/utils/kubeclient/node_test.go @@ -173,7 +173,7 @@ var _ = Describe("IsReady", func() { }) Context("when one NodeReady condition is false among other conditions", func() { - It("should return false", func() { + It("should return false when NodeReady is False among other conditions", func() { node := corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "test5"}, Status: corev1.NodeStatus{