From 7a768c8244a0c9124a9c25746d4efc474ea39bae Mon Sep 17 00:00:00 2001 From: Kasturi Narra Date: Thu, 12 Mar 2026 17:10:56 +0530 Subject: [PATCH] Verify etc pod should start with oom_score_adj as system-node-critical --- test/extended/two_node/tnf_topology.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/extended/two_node/tnf_topology.go b/test/extended/two_node/tnf_topology.go index dc1b684c8484..96bc0bdde8b4 100644 --- a/test/extended/two_node/tnf_topology.go +++ b/test/extended/two_node/tnf_topology.go @@ -16,6 +16,9 @@ import ( ) const ensurePodmanEtcdContainerIsRunning = "podman inspect --format '{{.State.Running}}' etcd" +const getEtcdOOMScoreAdj = "GETPID=$(podman inspect etcd --format '{{.State.Pid}}') && cat /proc/$GETPID/oom_score_adj" +const getPcsEtcdOOMDefault = "pcs resource describe ocf:heartbeat:podman-etcd" +const expectedOOMScoreAdj = "-997" var _ = g.Describe("[sig-node][apigroup:config.openshift.io][OCPFeatureGate:DualReplica] Two Node with Fencing topology", func() { defer g.GinkgoRecover() @@ -133,4 +136,25 @@ var _ = g.Describe("[sig-etcd][apigroup:config.openshift.io][OCPFeatureGate:Dual o.Expect(got).To(o.Equal("'true'"), fmt.Sprintf("expected a podman etcd container running on Node %s: got running %s", node.Name, got)) } }) + + g.It("should have etcd OOM score adjustment set to -997 on each node", func() { + nodes, err := utils.GetNodes(oc, utils.LabelNodeRoleControlPlane) + o.Expect(err).To(o.BeNil(), "Expected to retrieve control plane nodes without error") + o.Expect(nodes.Items).To(o.HaveLen(2), "Expected to retrieve two control plane nodes for DualReplica topology") + + g.By("Verifying pcs resource describes etcd with OOM default of -997") + firstNode := nodes.Items[0] + pcsOutput, err := exutil.DebugNodeRetryWithOptionsAndChroot(oc, firstNode.Name, "openshift-etcd", "bash", "-c", getPcsEtcdOOMDefault) + o.Expect(err).To(o.BeNil(), fmt.Sprintf("expected pcs resource describe to succeed on Node %s: error %v", firstNode.Name, err)) + o.Expect(pcsOutput).To(o.ContainSubstring("Default: -997"), + fmt.Sprintf("expected pcs resource describe to show OOM default of -997 on Node %s, got: %s", firstNode.Name, pcsOutput)) + + g.By("Ensuring etcd process OOM score adjustment is -997 on each node") + for _, node := range nodes.Items { + got, err := exutil.DebugNodeRetryWithOptionsAndChroot(oc, node.Name, "openshift-etcd", "bash", "-c", getEtcdOOMScoreAdj) + o.Expect(err).To(o.BeNil(), fmt.Sprintf("expected to read oom_score_adj without errors on Node %s: error %v", node.Name, err)) + o.Expect(strings.TrimSpace(got)).To(o.Equal(expectedOOMScoreAdj), + fmt.Sprintf("expected etcd oom_score_adj to be %s on Node %s, got: %s", expectedOOMScoreAdj, node.Name, got)) + } + }) })