Skip to content

OCPNODE-3932: Add automated tests for non-CNV swap configuration#30807

Open
BhargaviGudi wants to merge 1 commit intoopenshift:mainfrom
BhargaviGudi:bgudi-swap-noncnv
Open

OCPNODE-3932: Add automated tests for non-CNV swap configuration#30807
BhargaviGudi wants to merge 1 commit intoopenshift:mainfrom
BhargaviGudi:bgudi-swap-noncnv

Conversation

@BhargaviGudi
Copy link
Contributor

@BhargaviGudi BhargaviGudi commented Feb 24, 2026

Summary
Adds automated tests for non-CNV swap configuration on OpenShift nodes.

Jira story: https://issues.redhat.com/browse/OCPNODE-3932

Validates:

  • Default kubelet swap settings on worker and control plane nodes
  • Rejection of user-defined swap overrides via KubeletConfig API

Files Added

  • test/extended/node/node_swap.go - Test cases
  • test/extended/node/node_utils.go - Helper functions for node and kubelet config operations

Topology Support

  • Hypershift: Skips control plane validation (external control plane), worker validation still runs.
  • SNO: Nodes with both worker and control-plane roles are validated as control plane (failSwapOn=true), not as workers. Added getPureWorkerNodes() helper to filter dual-role nodes.
  • MicroShift: Tests skipped entirely.

Test cases:
OCP-86394
OCP-86395

    [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [Jira:Node] [OCP-86394]
  github.com/openshift/origin/test/extended/node/node_swap.go:46
    STEP: Creating a kubernetes client @ 01/12/26 13:53:15.953
  I0112 13:53:15.954150   54173 discovery.go:214] Invalidating discovery information
  I0112 13:53:19.087172 54173 client.go:293] configPath is now "/tmp/configfile1332138601"
  I0112 13:53:19.087205 54173 client.go:368] The user is now "e2e-test-node-swap-btg8f-user"
  I0112 13:53:19.087220 54173 client.go:370] Creating project "e2e-test-node-swap-btg8f"
  I0112 13:53:19.509151 54173 client.go:378] Waiting on permissions in project "e2e-test-node-swap-btg8f" ...
  I0112 13:53:20.757654 54173 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0112 13:53:21.030854 54173 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0112 13:53:21.780319 54173 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0112 13:53:22.497353 54173 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0112 13:53:23.214772 54173 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0112 13:53:23.828307 54173 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0112 13:53:24.362820 54173 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0112 13:53:25.572055 54173 client.go:465] Project "e2e-test-node-swap-btg8f" has been fully provisioned.
  I0112 13:53:25.876964 54173 framework.go:2334] microshift-version configmap not found
    STEP: Getting worker nodes @ 01/12/26 13:53:25.877
    STEP: Validating kubelet configuration on each worker node @ 01/12/26 13:53:26.184
    STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
  I0112 13:53:26.491051 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-a-ks7zw: failSwapOn=false ✓
    STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
  I0112 13:53:26.491076 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-a-ks7zw: swapBehavior=NoSwap ✓
    STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
  I0112 13:53:26.799069 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-b-hnkhq: failSwapOn=false ✓
    STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
  I0112 13:53:26.799116 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-b-hnkhq: swapBehavior=NoSwap ✓
    STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
  I0112 13:53:27.105627 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-c-xbbkd: failSwapOn=false ✓
    STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
  I0112 13:53:27.105664 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-c-xbbkd: swapBehavior=NoSwap ✓
    STEP: Getting control plane nodes @ 01/12/26 13:53:27.105
    STEP: Validating kubelet configuration on each control plane node @ 01/12/26 13:53:27.404
    STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
  I0112 13:53:27.695585 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: failSwapOn=true ✓
    STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
  I0112 13:53:27.695623 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: swapBehavior=NoSwap ✓
    STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.006
  I0112 13:53:28.007013 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: failSwapOn=true ✓
    STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.007
  I0112 13:53:28.007073 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: swapBehavior=NoSwap ✓
    STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
  I0112 13:53:28.295523 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: failSwapOn=true ✓
    STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
  I0112 13:53:28.295549 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: swapBehavior=NoSwap ✓
  I0112 13:53:28.295564 54173 node_swap.go:88] Test PASSED: All nodes have correct default swap settings
  I0112 13:53:28.641012 54173 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-btg8f-user}, err: 
  I0112 13:53:28.920122 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-btg8f}, err: 
  I0112 13:53:29.205068 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~B0he02YdA3rQmivC_6pxgH1W-Fq8OxWRhXi4bkQlJnk}, err: 
    STEP: Destroying namespace "e2e-test-node-swap-btg8f" for this suite. @ 01/12/26 13:53:29.205
  • [13.618 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 13.618 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
  Will run 1 of 1 specs
  ------------------------------
  [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395]
  github.com/openshift/origin/test/extended/node/node_swap.go:91
    STEP: Creating a kubernetes client @ 01/12/26 15:25:28.344
  I0112 15:25:28.345790   88048 discovery.go:214] Invalidating discovery information
  I0112 15:25:33.846094 88048 client.go:293] configPath is now "/tmp/configfile1714018848"
  I0112 15:25:33.846149 88048 client.go:368] The user is now "e2e-test-node-swap-9tzrc-user"
  I0112 15:25:33.846161 88048 client.go:370] Creating project "e2e-test-node-swap-9tzrc"
  I0112 15:25:34.199847 88048 client.go:378] Waiting on permissions in project "e2e-test-node-swap-9tzrc" ...
  I0112 15:25:35.381516 88048 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0112 15:25:35.640898 88048 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0112 15:25:36.300768 88048 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0112 15:25:37.016542 88048 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0112 15:25:37.731628 88048 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0112 15:25:38.398078 88048 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0112 15:25:39.013079 88048 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0112 15:25:40.139612 88048 client.go:465] Project "e2e-test-node-swap-9tzrc" has been fully provisioned.
  I0112 15:25:40.446533 88048 framework.go:2334] microshift-version configmap not found
    STEP: Creating machine config client @ 01/12/26 15:25:40.446
    STEP: Getting initial machine config resourceVersion @ 01/12/26 15:25:40.446
    STEP: Creating a KubeletConfig with swap settings @ 01/12/26 15:25:40.704
    STEP: Attempting to apply the KubeletConfig @ 01/12/26 15:25:40.704
  I0112 15:25:40.704259 88048 node_swap.go:126] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
    STEP: Checking KubeletConfig status for expected error message @ 01/12/26 15:25:40.963
  I0112 15:25:43.234048 88048 node_swap.go:152] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
    STEP: Verifying machine config was not created or updated @ 01/12/26 15:25:43.234
    STEP: Verifying worker nodes still have correct swap settings @ 01/12/26 15:25:48.508
    STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
  I0112 15:25:49.458183 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: failSwapOn=false (unchanged) ✓
    STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
  I0112 15:25:49.458219 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: swapBehavior=NoSwap (unchanged) ✓
    STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
  I0112 15:25:49.754444 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: failSwapOn=false (unchanged) ✓
    STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
  I0112 15:25:49.754525 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: swapBehavior=NoSwap (unchanged) ✓
    STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
  I0112 15:25:50.073677 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: failSwapOn=false (unchanged) ✓
    STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
  I0112 15:25:50.073813 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: swapBehavior=NoSwap (unchanged) ✓
  I0112 15:25:50.073838 88048 node_swap.go:193] Test PASSED: KubeletConfig with failSwapOn was properly rejected
  I0112 15:25:50.687721 88048 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-9tzrc-user}, err: 
  I0112 15:25:50.993412 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-9tzrc}, err: 
  I0112 15:25:51.258458 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~urJPAAwYTdNinFhNqG-lZ1UzWd8-qHq8FcVca9OcY-s}, err: 
    STEP: Destroying namespace "e2e-test-node-swap-9tzrc" for this suite. @ 01/12/26 15:25:51.258
  • [23.184 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 23.185 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

SNO cluster:

bgudi@bgudi-thinkpadp16vgen1:~/work/src/github.com/openshift/origin$ ./openshift-tests run-test "[Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [OCP-86394] [Suite:openshift/conformance/parallel]"

  Will run 1 of 1 specs
  ------------------------------
  [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [OCP-86394] [Lifecycle:informing]
  github.com/openshift/origin/test/extended/node/node_swap.go:50
    STEP: Creating a kubernetes client @ 03/04/26 15:33:03.101
  I0304 15:33:03.103518  299959 discovery.go:214] Invalidating discovery information
  I0304 15:33:07.633203 299959 client.go:293] configPath is now "/tmp/configfile2782002196"
  I0304 15:33:07.633241 299959 client.go:368] The user is now "e2e-test-node-swap-qctd4-user"
  I0304 15:33:07.633252 299959 client.go:370] Creating project "e2e-test-node-swap-qctd4"
  I0304 15:33:08.112626 299959 client.go:378] Waiting on permissions in project "e2e-test-node-swap-qctd4" ...
  I0304 15:33:09.458249 299959 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0304 15:33:09.846675 299959 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0304 15:33:11.076018 299959 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0304 15:33:11.690096 299959 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0304 15:33:12.396775 299959 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0304 15:33:12.924954 299959 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0304 15:33:13.790514 299959 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0304 15:33:15.982522 299959 client.go:469] Project "e2e-test-node-swap-qctd4" has been fully provisioned.
  I0304 15:33:15.984454 299959 framework.go:2324] [precondition-check] checking if cluster is MicroShift
  I0304 15:33:17.638344 299959 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
    STEP: Getting worker nodes @ 03/04/26 15:33:17.638
  I0304 15:33:18.536409 299959 node_utils.go:77] Skipping worker validation for node ip-10-0-22-126.us-east-2.compute.internal (also has control-plane role, e.g. SNO)
    STEP: Validating kubelet configuration on each worker node @ 03/04/26 15:33:18.536
    STEP: Getting control plane nodes @ 03/04/26 15:33:18.824
    STEP: Validating kubelet configuration on each control plane node @ 03/04/26 15:33:19.623
    STEP: Checking failSwapOn=true on control plane node ip-10-0-22-126.us-east-2.compute.internal @ 03/04/26 15:33:20.063
  I0304 15:33:20.063821 299959 node_swap.go:93] Control plane node ip-10-0-22-126.us-east-2.compute.internal: failSwapOn=true ✓
    STEP: Checking swapBehavior=NoSwap on control plane node ip-10-0-22-126.us-east-2.compute.internal @ 03/04/26 15:33:20.063
  I0304 15:33:20.063885 299959 node_swap.go:98] Control plane node ip-10-0-22-126.us-east-2.compute.internal: swapBehavior=NoSwap ✓
  I0304 15:33:20.063899 299959 node_swap.go:103] Test PASSED: All nodes have correct default swap settings
  I0304 15:33:20.304255 299959 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-qctd4-user}, err: 
  I0304 15:33:20.734253 299959 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-qctd4}, err: 
  I0304 15:33:20.976042 299959 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~XRn1FBV-s1HY8U02dO2hmkUjxtvC5BMIZ5FQyDCnRno}, err: 
    STEP: Destroying namespace "e2e-test-node-swap-qctd4" for this suite. @ 03/04/26 15:33:20.976
  • [18.282 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 18.282 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
$./openshift-tests run-test "[Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395] [Suite:openshift/conformance/parallel]"

  Will run 1 of 1 specs
  ------------------------------
  [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395] [Lifecycle:informing]
  github.com/openshift/origin/test/extended/node/node_swap.go:106
    STEP: Creating a kubernetes client @ 03/04/26 15:34:25.551
  I0304 15:34:25.552959  300456 discovery.go:214] Invalidating discovery information
  I0304 15:34:29.034099 300456 client.go:293] configPath is now "/tmp/configfile1358489074"
  I0304 15:34:29.034152 300456 client.go:368] The user is now "e2e-test-node-swap-964qb-user"
  I0304 15:34:29.034164 300456 client.go:370] Creating project "e2e-test-node-swap-964qb"
  I0304 15:34:29.321334 300456 client.go:378] Waiting on permissions in project "e2e-test-node-swap-964qb" ...
  I0304 15:34:30.817231 300456 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0304 15:34:31.109080 300456 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0304 15:34:32.142195 300456 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0304 15:34:32.891317 300456 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0304 15:34:33.616554 300456 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0304 15:34:34.084013 300456 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0304 15:34:35.203581 300456 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0304 15:34:37.109754 300456 client.go:469] Project "e2e-test-node-swap-964qb" has been fully provisioned.
  I0304 15:34:37.111343 300456 framework.go:2324] [precondition-check] checking if cluster is MicroShift
  I0304 15:34:37.501096 300456 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
    STEP: Creating machine config client @ 03/04/26 15:34:37.501
    STEP: Getting initial machine config resourceVersion @ 03/04/26 15:34:37.501
    STEP: Creating a KubeletConfig with swap settings @ 03/04/26 15:34:37.75
    STEP: Attempting to apply the KubeletConfig @ 03/04/26 15:34:37.75
  I0304 15:34:37.750241 300456 node_swap.go:144] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
    STEP: Checking KubeletConfig status for expected error message @ 03/04/26 15:34:38.101
  I0304 15:34:40.370776 300456 node_swap.go:170] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
    STEP: Verifying machine config was not created or updated @ 03/04/26 15:34:40.37
    STEP: Verifying worker nodes still have correct swap settings @ 03/04/26 15:34:45.618
  I0304 15:34:46.307006 300456 node_utils.go:77] Skipping worker validation for node ip-10-0-22-126.us-east-2.compute.internal (also has control-plane role, e.g. SNO)
  I0304 15:34:46.307057 300456 node_swap.go:214] Test PASSED: KubeletConfig with failSwapOn was properly rejected
  I0304 15:34:46.918385 300456 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-964qb-user}, err: 
  I0304 15:34:47.156147 300456 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-964qb}, err: 
  I0304 15:34:47.538464 300456 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~1Mn0aC-AWC_7Muifjcz-c-r5DS6DAJ6CK6tyDlkC9Fw}, err: 
    STEP: Destroying namespace "e2e-test-node-swap-964qb" for this suite. @ 03/04/26 15:34:47.538
  • [22.406 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 22.406 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Summary by CodeRabbit

  • Tests

    • Added an extended test suite validating kubelet swap settings on workers and control-plane nodes, and verifying user attempts to override forbidden kubelet settings are rejected.
    • Added utilities to discover nodes and retrieve kubelet configuration for those tests.
  • Chores

    • Updated the module dependency declaration for the kubelet package.

@openshift-ci-robot
Copy link

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 24, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 24, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 24, 2026

@BhargaviGudi: This pull request references OCPNODE-3932 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary
Adds automated tests for non-CNV swap configuration on OpenShift nodes.

Jira story: https://issues.redhat.com/browse/OCPNODE-3932

Validates:

  • Default kubelet swap settings on worker and control plane nodes
  • Rejection of user-defined swap overrides via KubeletConfig API

Files Added

  • test/extended/node/node_swap.go - Test cases
  • test/extended/node/node_utils.go - Helper functions for node and kubelet config operations

Test cases:
OCP-86394
OCP-86395

   [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [Jira:Node] [OCP-86394]
 github.com/openshift/origin/test/extended/node/node_swap.go:46
   STEP: Creating a kubernetes client @ 01/12/26 13:53:15.953
 I0112 13:53:15.954150   54173 discovery.go:214] Invalidating discovery information
 I0112 13:53:19.087172 54173 client.go:293] configPath is now "/tmp/configfile1332138601"
 I0112 13:53:19.087205 54173 client.go:368] The user is now "e2e-test-node-swap-btg8f-user"
 I0112 13:53:19.087220 54173 client.go:370] Creating project "e2e-test-node-swap-btg8f"
 I0112 13:53:19.509151 54173 client.go:378] Waiting on permissions in project "e2e-test-node-swap-btg8f" ...
 I0112 13:53:20.757654 54173 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 13:53:21.030854 54173 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 13:53:21.780319 54173 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 13:53:22.497353 54173 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 13:53:23.214772 54173 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 13:53:23.828307 54173 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 13:53:24.362820 54173 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 13:53:25.572055 54173 client.go:465] Project "e2e-test-node-swap-btg8f" has been fully provisioned.
 I0112 13:53:25.876964 54173 framework.go:2334] microshift-version configmap not found
   STEP: Getting worker nodes @ 01/12/26 13:53:25.877
   STEP: Validating kubelet configuration on each worker node @ 01/12/26 13:53:26.184
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491051 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-a-ks7zw: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491076 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-a-ks7zw: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799069 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-b-hnkhq: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799116 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-b-hnkhq: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105627 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-c-xbbkd: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105664 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-c-xbbkd: swapBehavior=NoSwap ✓
   STEP: Getting control plane nodes @ 01/12/26 13:53:27.105
   STEP: Validating kubelet configuration on each control plane node @ 01/12/26 13:53:27.404
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695585 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695623 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.006
 I0112 13:53:28.007013 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.007
 I0112 13:53:28.007073 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295523 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295549 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: swapBehavior=NoSwap ✓
 I0112 13:53:28.295564 54173 node_swap.go:88] Test PASSED: All nodes have correct default swap settings
 I0112 13:53:28.641012 54173 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-btg8f-user}, err: 
 I0112 13:53:28.920122 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-btg8f}, err: 
 I0112 13:53:29.205068 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~B0he02YdA3rQmivC_6pxgH1W-Fq8OxWRhXi4bkQlJnk}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-btg8f" for this suite. @ 01/12/26 13:53:29.205
 • [13.618 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 13.618 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395]
 github.com/openshift/origin/test/extended/node/node_swap.go:91
   STEP: Creating a kubernetes client @ 01/12/26 15:25:28.344
 I0112 15:25:28.345790   88048 discovery.go:214] Invalidating discovery information
 I0112 15:25:33.846094 88048 client.go:293] configPath is now "/tmp/configfile1714018848"
 I0112 15:25:33.846149 88048 client.go:368] The user is now "e2e-test-node-swap-9tzrc-user"
 I0112 15:25:33.846161 88048 client.go:370] Creating project "e2e-test-node-swap-9tzrc"
 I0112 15:25:34.199847 88048 client.go:378] Waiting on permissions in project "e2e-test-node-swap-9tzrc" ...
 I0112 15:25:35.381516 88048 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 15:25:35.640898 88048 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 15:25:36.300768 88048 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 15:25:37.016542 88048 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 15:25:37.731628 88048 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 15:25:38.398078 88048 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 15:25:39.013079 88048 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 15:25:40.139612 88048 client.go:465] Project "e2e-test-node-swap-9tzrc" has been fully provisioned.
 I0112 15:25:40.446533 88048 framework.go:2334] microshift-version configmap not found
   STEP: Creating machine config client @ 01/12/26 15:25:40.446
   STEP: Getting initial machine config resourceVersion @ 01/12/26 15:25:40.446
   STEP: Creating a KubeletConfig with swap settings @ 01/12/26 15:25:40.704
   STEP: Attempting to apply the KubeletConfig @ 01/12/26 15:25:40.704
 I0112 15:25:40.704259 88048 node_swap.go:126] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
   STEP: Checking KubeletConfig status for expected error message @ 01/12/26 15:25:40.963
 I0112 15:25:43.234048 88048 node_swap.go:152] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
   STEP: Verifying machine config was not created or updated @ 01/12/26 15:25:43.234
   STEP: Verifying worker nodes still have correct swap settings @ 01/12/26 15:25:48.508
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458183 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458219 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754444 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754525 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073677 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073813 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: swapBehavior=NoSwap (unchanged) ✓
 I0112 15:25:50.073838 88048 node_swap.go:193] Test PASSED: KubeletConfig with failSwapOn was properly rejected
 I0112 15:25:50.687721 88048 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-9tzrc-user}, err: 
 I0112 15:25:50.993412 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-9tzrc}, err: 
 I0112 15:25:51.258458 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~urJPAAwYTdNinFhNqG-lZ1UzWd8-qHq8FcVca9OcY-s}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-9tzrc" for this suite. @ 01/12/26 15:25:51.258
 • [23.184 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 23.185 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@BhargaviGudi
Copy link
Contributor Author

/label acknowledge-critical-fixes-only

@openshift-ci openshift-ci bot added the acknowledge-critical-fixes-only Indicates if the issuer of the label is OK with the policy. label Feb 24, 2026
@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 24, 2026

@BhargaviGudi: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/371272f0-115e-11f1-870d-84023c2ce795-0

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 24, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: BhargaviGudi
Once this PR has been reviewed and has the lgtm label, please assign neisw for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot
Copy link

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 24, 2026

@BhargaviGudi: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/531edb50-1190-11f1-8b42-574034db1f18-0

@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-release-master-nightly-4.22-e2e-metal-ipi-ovn-ipv6

@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-release-master-ci-4.22-e2e-aws-upgrade-ovn-single-node

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 24, 2026

@BhargaviGudi: trigger 0 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

1 similar comment
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 24, 2026

@BhargaviGudi: trigger 0 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 24, 2026

@BhargaviGudi: This pull request references OCPNODE-3932 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary
Adds automated tests for non-CNV swap configuration on OpenShift nodes.
Skips the tests for Hypershift and SNO clusters.

Jira story: https://issues.redhat.com/browse/OCPNODE-3932

Validates:

  • Default kubelet swap settings on worker and control plane nodes
  • Rejection of user-defined swap overrides via KubeletConfig API

Files Added

  • test/extended/node/node_swap.go - Test cases
  • test/extended/node/node_utils.go - Helper functions for node and kubelet config operations

Test cases:
OCP-86394
OCP-86395

   [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [Jira:Node] [OCP-86394]
 github.com/openshift/origin/test/extended/node/node_swap.go:46
   STEP: Creating a kubernetes client @ 01/12/26 13:53:15.953
 I0112 13:53:15.954150   54173 discovery.go:214] Invalidating discovery information
 I0112 13:53:19.087172 54173 client.go:293] configPath is now "/tmp/configfile1332138601"
 I0112 13:53:19.087205 54173 client.go:368] The user is now "e2e-test-node-swap-btg8f-user"
 I0112 13:53:19.087220 54173 client.go:370] Creating project "e2e-test-node-swap-btg8f"
 I0112 13:53:19.509151 54173 client.go:378] Waiting on permissions in project "e2e-test-node-swap-btg8f" ...
 I0112 13:53:20.757654 54173 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 13:53:21.030854 54173 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 13:53:21.780319 54173 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 13:53:22.497353 54173 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 13:53:23.214772 54173 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 13:53:23.828307 54173 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 13:53:24.362820 54173 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 13:53:25.572055 54173 client.go:465] Project "e2e-test-node-swap-btg8f" has been fully provisioned.
 I0112 13:53:25.876964 54173 framework.go:2334] microshift-version configmap not found
   STEP: Getting worker nodes @ 01/12/26 13:53:25.877
   STEP: Validating kubelet configuration on each worker node @ 01/12/26 13:53:26.184
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491051 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-a-ks7zw: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491076 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-a-ks7zw: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799069 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-b-hnkhq: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799116 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-b-hnkhq: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105627 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-c-xbbkd: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105664 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-c-xbbkd: swapBehavior=NoSwap ✓
   STEP: Getting control plane nodes @ 01/12/26 13:53:27.105
   STEP: Validating kubelet configuration on each control plane node @ 01/12/26 13:53:27.404
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695585 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695623 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.006
 I0112 13:53:28.007013 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.007
 I0112 13:53:28.007073 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295523 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295549 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: swapBehavior=NoSwap ✓
 I0112 13:53:28.295564 54173 node_swap.go:88] Test PASSED: All nodes have correct default swap settings
 I0112 13:53:28.641012 54173 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-btg8f-user}, err: 
 I0112 13:53:28.920122 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-btg8f}, err: 
 I0112 13:53:29.205068 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~B0he02YdA3rQmivC_6pxgH1W-Fq8OxWRhXi4bkQlJnk}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-btg8f" for this suite. @ 01/12/26 13:53:29.205
 • [13.618 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 13.618 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395]
 github.com/openshift/origin/test/extended/node/node_swap.go:91
   STEP: Creating a kubernetes client @ 01/12/26 15:25:28.344
 I0112 15:25:28.345790   88048 discovery.go:214] Invalidating discovery information
 I0112 15:25:33.846094 88048 client.go:293] configPath is now "/tmp/configfile1714018848"
 I0112 15:25:33.846149 88048 client.go:368] The user is now "e2e-test-node-swap-9tzrc-user"
 I0112 15:25:33.846161 88048 client.go:370] Creating project "e2e-test-node-swap-9tzrc"
 I0112 15:25:34.199847 88048 client.go:378] Waiting on permissions in project "e2e-test-node-swap-9tzrc" ...
 I0112 15:25:35.381516 88048 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 15:25:35.640898 88048 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 15:25:36.300768 88048 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 15:25:37.016542 88048 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 15:25:37.731628 88048 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 15:25:38.398078 88048 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 15:25:39.013079 88048 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 15:25:40.139612 88048 client.go:465] Project "e2e-test-node-swap-9tzrc" has been fully provisioned.
 I0112 15:25:40.446533 88048 framework.go:2334] microshift-version configmap not found
   STEP: Creating machine config client @ 01/12/26 15:25:40.446
   STEP: Getting initial machine config resourceVersion @ 01/12/26 15:25:40.446
   STEP: Creating a KubeletConfig with swap settings @ 01/12/26 15:25:40.704
   STEP: Attempting to apply the KubeletConfig @ 01/12/26 15:25:40.704
 I0112 15:25:40.704259 88048 node_swap.go:126] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
   STEP: Checking KubeletConfig status for expected error message @ 01/12/26 15:25:40.963
 I0112 15:25:43.234048 88048 node_swap.go:152] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
   STEP: Verifying machine config was not created or updated @ 01/12/26 15:25:43.234
   STEP: Verifying worker nodes still have correct swap settings @ 01/12/26 15:25:48.508
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458183 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458219 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754444 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754525 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073677 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073813 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: swapBehavior=NoSwap (unchanged) ✓
 I0112 15:25:50.073838 88048 node_swap.go:193] Test PASSED: KubeletConfig with failSwapOn was properly rejected
 I0112 15:25:50.687721 88048 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-9tzrc-user}, err: 
 I0112 15:25:50.993412 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-9tzrc}, err: 
 I0112 15:25:51.258458 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~urJPAAwYTdNinFhNqG-lZ1UzWd8-qHq8FcVca9OcY-s}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-9tzrc" for this suite. @ 01/12/26 15:25:51.258
 • [23.184 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 23.185 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@BhargaviGudi
Copy link
Contributor Author

/test e2e-vsphere-ovn
/test e2e-metal-ipi-ovn-ipv6

@BhargaviGudi
Copy link
Contributor Author

/verified by @BhargaviGudi

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Feb 25, 2026
@openshift-ci-robot
Copy link

@BhargaviGudi: This PR has been marked as verified by @BhargaviGudi.

Details

In response to this:

/verified by @BhargaviGudi

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@BhargaviGudi
Copy link
Contributor Author

/retest

@BhargaviGudi
Copy link
Contributor Author

Note: e2e-metal-ipi-ovn-ipv6 and e2e-vsphere-ovn are failing due to cluster installation failure.

@BhargaviGudi BhargaviGudi changed the title WIP OCPNODE-3932: Add automated tests for non-CNV swap configuration OCPNODE-3932: Add automated tests for non-CNV swap configuration Feb 25, 2026
@BhargaviGudi
Copy link
Contributor Author

Updated Topology Support

  • Hypershift: Skips control plane validation (external control plane), worker validation still runs.
  • SNO: Nodes with both worker and control-plane roles are validated as control plane (failSwapOn=true), not as workers. Added getPureWorkerNodes() helper to filter dual-role nodes.
  • MicroShift: Tests skipped entirely.

@BhargaviGudi
Copy link
Contributor Author

/verified by @BhargaviGudi

@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Mar 4, 2026
@openshift-ci-robot
Copy link

@BhargaviGudi: This PR has been marked as verified by @BhargaviGudi.

Details

In response to this:

/verified by @BhargaviGudi

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 4, 2026

@BhargaviGudi: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/62478d70-17b2-11f1-8a44-03c89f414b91-0

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
test/extended/node/node_swap.go (2)

35-42: ⚠️ Potential issue | 🟠 Major

Add explicit SNO and Hypershift skips in BeforeEach.

Line 35 only gates MicroShift. This test suite is intended to skip SNO and Hypershift too, and missing guards can make these flows invalid/flaky.

Suggested fix
 g.BeforeEach(func(ctx context.Context) {
 	// Skip all tests on MicroShift clusters
 	isMicroShift, err := exutil.IsMicroShiftCluster(oc.AdminKubeClient())
 	o.Expect(err).NotTo(o.HaveOccurred())
 	if isMicroShift {
 		g.Skip("Skipping test on MicroShift cluster")
 	}
+
+	isSingleNode, err := exutil.IsSingleNode(ctx, oc.AdminConfigClient())
+	o.Expect(err).NotTo(o.HaveOccurred())
+	if isSingleNode {
+		g.Skip("Skipping test on SingleNode cluster")
+	}
+
+	isHypershift, err := exutil.IsHypershift(ctx, oc.AdminConfigClient())
+	o.Expect(err).NotTo(o.HaveOccurred())
+	if isHypershift {
+		g.Skip("Skipping test on Hypershift cluster")
+	}
 })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/node/node_swap.go` around lines 35 - 42, The BeforeEach
currently only checks exutil.IsMicroShiftCluster and skips MicroShift; extend it
to also detect and skip SNO and Hypershift flows by calling the corresponding
helpers (e.g., exutil.IsSNOCluster(...) and exutil.IsHypershiftCluster(...) or
the project’s equivalent helper functions) using oc.AdminKubeClient(), check and
o.Expect(errors) as done for MicroShift, and call g.Skip with clear messages
like "Skipping test on SNO cluster" and "Skipping test on Hypershift cluster"
when those helpers return true; keep the same error handling pattern used for
IsMicroShiftCluster to maintain consistency.

113-118: ⚠️ Potential issue | 🟠 Major

Do not make MachineConfig invariance checks conditional on read success.

Lines 115 and 186 silently bypass the key assertion when MachineConfigs().Get(...) fails, so the test can pass without proving no update occurred.

Suggested fix
 		workerMC, err := mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx, workerGeneratedKubeletMC, metav1.GetOptions{})
-		initialResourceVersion := ""
-		if err == nil {
-			initialResourceVersion = workerMC.ResourceVersion
-			framework.Logf("Initial %s resourceVersion: %s", workerGeneratedKubeletMC, initialResourceVersion)
-		}
+		o.Expect(err).NotTo(o.HaveOccurred(), "Failed to get initial machine config %s", workerGeneratedKubeletMC)
+		initialResourceVersion := workerMC.ResourceVersion
+		framework.Logf("Initial %s resourceVersion: %s", workerGeneratedKubeletMC, initialResourceVersion)
@@
 		workerMC, err = mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx, workerGeneratedKubeletMC, metav1.GetOptions{})
-		if err == nil {
-			o.Expect(workerMC.ResourceVersion).To(o.Equal(initialResourceVersion), "Machine config %s should not be updated when failSwapOn is rejected", workerGeneratedKubeletMC)
-			framework.Logf("Verified: %s was not updated (resourceVersion: %s)", workerGeneratedKubeletMC, workerMC.ResourceVersion)
-		}
+		o.Expect(err).NotTo(o.HaveOccurred(), "Failed to get machine config %s after KubeletConfig rejection", workerGeneratedKubeletMC)
+		o.Expect(workerMC.ResourceVersion).To(o.Equal(initialResourceVersion), "Machine config %s should not be updated when failSwapOn is rejected", workerGeneratedKubeletMC)
+		framework.Logf("Verified: %s was not updated (resourceVersion: %s)", workerGeneratedKubeletMC, workerMC.ResourceVersion)

Also applies to: 185-189

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/node/node_swap.go` around lines 113 - 118, The test currently
skips the invariance assertion when MachineConfigs().Get(...) fails; instead
ensure a hard failure on read error so the test cannot pass silently: when
calling mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx,
workerGeneratedKubeletMC, metav1.GetOptions{}) (variable workerMC, err) check
err and fail the test (e.g. t.Fatalf or framework.Fail/ExpectNoError) if
non-nil, otherwise set initialResourceVersion = workerMC.ResourceVersion and
log; do the same for the later Get before the invariance assertion so the
assertion always runs only after successful reads.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@test/extended/node/node_swap.go`:
- Around line 35-42: The BeforeEach currently only checks
exutil.IsMicroShiftCluster and skips MicroShift; extend it to also detect and
skip SNO and Hypershift flows by calling the corresponding helpers (e.g.,
exutil.IsSNOCluster(...) and exutil.IsHypershiftCluster(...) or the project’s
equivalent helper functions) using oc.AdminKubeClient(), check and
o.Expect(errors) as done for MicroShift, and call g.Skip with clear messages
like "Skipping test on SNO cluster" and "Skipping test on Hypershift cluster"
when those helpers return true; keep the same error handling pattern used for
IsMicroShiftCluster to maintain consistency.
- Around line 113-118: The test currently skips the invariance assertion when
MachineConfigs().Get(...) fails; instead ensure a hard failure on read error so
the test cannot pass silently: when calling
mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx,
workerGeneratedKubeletMC, metav1.GetOptions{}) (variable workerMC, err) check
err and fail the test (e.g. t.Fatalf or framework.Fail/ExpectNoError) if
non-nil, otherwise set initialResourceVersion = workerMC.ResourceVersion and
log; do the same for the later Get before the invariance assertion so the
assertion always runs only after successful reads.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 37e6bab2-15c7-492d-ba43-a4af08e8773b

📥 Commits

Reviewing files that changed from the base of the PR and between de63926 and edee808.

📒 Files selected for processing (3)
  • go.mod
  • test/extended/node/node_swap.go
  • test/extended/node/node_utils.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/extended/node/node_utils.go

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 4, 2026

@BhargaviGudi: This pull request references OCPNODE-3932 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary
Adds automated tests for non-CNV swap configuration on OpenShift nodes.

Jira story: https://issues.redhat.com/browse/OCPNODE-3932

Validates:

  • Default kubelet swap settings on worker and control plane nodes
  • Rejection of user-defined swap overrides via KubeletConfig API

Files Added

  • test/extended/node/node_swap.go - Test cases
  • test/extended/node/node_utils.go - Helper functions for node and kubelet config operations

Topology Support

  • Hypershift: Skips control plane validation (external control plane), worker validation still runs.
  • SNO: Nodes with both worker and control-plane roles are validated as control plane (failSwapOn=true), not as workers. Added getPureWorkerNodes() helper to filter dual-role nodes.
  • MicroShift: Tests skipped entirely.

Test cases:
OCP-86394
OCP-86395

   [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [Jira:Node] [OCP-86394]
 github.com/openshift/origin/test/extended/node/node_swap.go:46
   STEP: Creating a kubernetes client @ 01/12/26 13:53:15.953
 I0112 13:53:15.954150   54173 discovery.go:214] Invalidating discovery information
 I0112 13:53:19.087172 54173 client.go:293] configPath is now "/tmp/configfile1332138601"
 I0112 13:53:19.087205 54173 client.go:368] The user is now "e2e-test-node-swap-btg8f-user"
 I0112 13:53:19.087220 54173 client.go:370] Creating project "e2e-test-node-swap-btg8f"
 I0112 13:53:19.509151 54173 client.go:378] Waiting on permissions in project "e2e-test-node-swap-btg8f" ...
 I0112 13:53:20.757654 54173 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 13:53:21.030854 54173 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 13:53:21.780319 54173 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 13:53:22.497353 54173 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 13:53:23.214772 54173 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 13:53:23.828307 54173 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 13:53:24.362820 54173 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 13:53:25.572055 54173 client.go:465] Project "e2e-test-node-swap-btg8f" has been fully provisioned.
 I0112 13:53:25.876964 54173 framework.go:2334] microshift-version configmap not found
   STEP: Getting worker nodes @ 01/12/26 13:53:25.877
   STEP: Validating kubelet configuration on each worker node @ 01/12/26 13:53:26.184
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491051 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-a-ks7zw: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491076 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-a-ks7zw: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799069 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-b-hnkhq: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799116 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-b-hnkhq: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105627 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-c-xbbkd: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105664 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-c-xbbkd: swapBehavior=NoSwap ✓
   STEP: Getting control plane nodes @ 01/12/26 13:53:27.105
   STEP: Validating kubelet configuration on each control plane node @ 01/12/26 13:53:27.404
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695585 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695623 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.006
 I0112 13:53:28.007013 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.007
 I0112 13:53:28.007073 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295523 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295549 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: swapBehavior=NoSwap ✓
 I0112 13:53:28.295564 54173 node_swap.go:88] Test PASSED: All nodes have correct default swap settings
 I0112 13:53:28.641012 54173 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-btg8f-user}, err: 
 I0112 13:53:28.920122 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-btg8f}, err: 
 I0112 13:53:29.205068 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~B0he02YdA3rQmivC_6pxgH1W-Fq8OxWRhXi4bkQlJnk}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-btg8f" for this suite. @ 01/12/26 13:53:29.205
 • [13.618 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 13.618 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395]
 github.com/openshift/origin/test/extended/node/node_swap.go:91
   STEP: Creating a kubernetes client @ 01/12/26 15:25:28.344
 I0112 15:25:28.345790   88048 discovery.go:214] Invalidating discovery information
 I0112 15:25:33.846094 88048 client.go:293] configPath is now "/tmp/configfile1714018848"
 I0112 15:25:33.846149 88048 client.go:368] The user is now "e2e-test-node-swap-9tzrc-user"
 I0112 15:25:33.846161 88048 client.go:370] Creating project "e2e-test-node-swap-9tzrc"
 I0112 15:25:34.199847 88048 client.go:378] Waiting on permissions in project "e2e-test-node-swap-9tzrc" ...
 I0112 15:25:35.381516 88048 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 15:25:35.640898 88048 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 15:25:36.300768 88048 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 15:25:37.016542 88048 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 15:25:37.731628 88048 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 15:25:38.398078 88048 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 15:25:39.013079 88048 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 15:25:40.139612 88048 client.go:465] Project "e2e-test-node-swap-9tzrc" has been fully provisioned.
 I0112 15:25:40.446533 88048 framework.go:2334] microshift-version configmap not found
   STEP: Creating machine config client @ 01/12/26 15:25:40.446
   STEP: Getting initial machine config resourceVersion @ 01/12/26 15:25:40.446
   STEP: Creating a KubeletConfig with swap settings @ 01/12/26 15:25:40.704
   STEP: Attempting to apply the KubeletConfig @ 01/12/26 15:25:40.704
 I0112 15:25:40.704259 88048 node_swap.go:126] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
   STEP: Checking KubeletConfig status for expected error message @ 01/12/26 15:25:40.963
 I0112 15:25:43.234048 88048 node_swap.go:152] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
   STEP: Verifying machine config was not created or updated @ 01/12/26 15:25:43.234
   STEP: Verifying worker nodes still have correct swap settings @ 01/12/26 15:25:48.508
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458183 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458219 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754444 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754525 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073677 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073813 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: swapBehavior=NoSwap (unchanged) ✓
 I0112 15:25:50.073838 88048 node_swap.go:193] Test PASSED: KubeletConfig with failSwapOn was properly rejected
 I0112 15:25:50.687721 88048 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-9tzrc-user}, err: 
 I0112 15:25:50.993412 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-9tzrc}, err: 
 I0112 15:25:51.258458 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~urJPAAwYTdNinFhNqG-lZ1UzWd8-qHq8FcVca9OcY-s}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-9tzrc" for this suite. @ 01/12/26 15:25:51.258
 • [23.184 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 23.185 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

SNO cluster:

bgudi@bgudi-thinkpadp16vgen1:~/work/src/github.com/openshift/origin$ ./openshift-tests run-test "[Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [OCP-86394] [Suite:openshift/conformance/parallel]"

 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [OCP-86394] [Lifecycle:informing]
 github.com/openshift/origin/test/extended/node/node_swap.go:50
   STEP: Creating a kubernetes client @ 03/04/26 15:33:03.101
 I0304 15:33:03.103518  299959 discovery.go:214] Invalidating discovery information
 I0304 15:33:07.633203 299959 client.go:293] configPath is now "/tmp/configfile2782002196"
 I0304 15:33:07.633241 299959 client.go:368] The user is now "e2e-test-node-swap-qctd4-user"
 I0304 15:33:07.633252 299959 client.go:370] Creating project "e2e-test-node-swap-qctd4"
 I0304 15:33:08.112626 299959 client.go:378] Waiting on permissions in project "e2e-test-node-swap-qctd4" ...
 I0304 15:33:09.458249 299959 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 15:33:09.846675 299959 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 15:33:11.076018 299959 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 15:33:11.690096 299959 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 15:33:12.396775 299959 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 15:33:12.924954 299959 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 15:33:13.790514 299959 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 15:33:15.982522 299959 client.go:469] Project "e2e-test-node-swap-qctd4" has been fully provisioned.
 I0304 15:33:15.984454 299959 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 15:33:17.638344 299959 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
   STEP: Getting worker nodes @ 03/04/26 15:33:17.638
 I0304 15:33:18.536409 299959 node_utils.go:77] Skipping worker validation for node ip-10-0-22-126.us-east-2.compute.internal (also has control-plane role, e.g. SNO)
   STEP: Validating kubelet configuration on each worker node @ 03/04/26 15:33:18.536
   STEP: Getting control plane nodes @ 03/04/26 15:33:18.824
   STEP: Validating kubelet configuration on each control plane node @ 03/04/26 15:33:19.623
   STEP: Checking failSwapOn=true on control plane node ip-10-0-22-126.us-east-2.compute.internal @ 03/04/26 15:33:20.063
 I0304 15:33:20.063821 299959 node_swap.go:93] Control plane node ip-10-0-22-126.us-east-2.compute.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node ip-10-0-22-126.us-east-2.compute.internal @ 03/04/26 15:33:20.063
 I0304 15:33:20.063885 299959 node_swap.go:98] Control plane node ip-10-0-22-126.us-east-2.compute.internal: swapBehavior=NoSwap ✓
 I0304 15:33:20.063899 299959 node_swap.go:103] Test PASSED: All nodes have correct default swap settings
 I0304 15:33:20.304255 299959 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-qctd4-user}, err: 
 I0304 15:33:20.734253 299959 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-qctd4}, err: 
 I0304 15:33:20.976042 299959 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~XRn1FBV-s1HY8U02dO2hmkUjxtvC5BMIZ5FQyDCnRno}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-qctd4" for this suite. @ 03/04/26 15:33:20.976
 • [18.282 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 18.282 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
$./openshift-tests run-test "[Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395] [Suite:openshift/conformance/parallel]"

 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395] [Lifecycle:informing]
 github.com/openshift/origin/test/extended/node/node_swap.go:106
   STEP: Creating a kubernetes client @ 03/04/26 15:34:25.551
 I0304 15:34:25.552959  300456 discovery.go:214] Invalidating discovery information
 I0304 15:34:29.034099 300456 client.go:293] configPath is now "/tmp/configfile1358489074"
 I0304 15:34:29.034152 300456 client.go:368] The user is now "e2e-test-node-swap-964qb-user"
 I0304 15:34:29.034164 300456 client.go:370] Creating project "e2e-test-node-swap-964qb"
 I0304 15:34:29.321334 300456 client.go:378] Waiting on permissions in project "e2e-test-node-swap-964qb" ...
 I0304 15:34:30.817231 300456 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 15:34:31.109080 300456 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 15:34:32.142195 300456 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 15:34:32.891317 300456 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 15:34:33.616554 300456 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 15:34:34.084013 300456 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 15:34:35.203581 300456 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 15:34:37.109754 300456 client.go:469] Project "e2e-test-node-swap-964qb" has been fully provisioned.
 I0304 15:34:37.111343 300456 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 15:34:37.501096 300456 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
   STEP: Creating machine config client @ 03/04/26 15:34:37.501
   STEP: Getting initial machine config resourceVersion @ 03/04/26 15:34:37.501
   STEP: Creating a KubeletConfig with swap settings @ 03/04/26 15:34:37.75
   STEP: Attempting to apply the KubeletConfig @ 03/04/26 15:34:37.75
 I0304 15:34:37.750241 300456 node_swap.go:144] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
   STEP: Checking KubeletConfig status for expected error message @ 03/04/26 15:34:38.101
 I0304 15:34:40.370776 300456 node_swap.go:170] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
   STEP: Verifying machine config was not created or updated @ 03/04/26 15:34:40.37
   STEP: Verifying worker nodes still have correct swap settings @ 03/04/26 15:34:45.618
 I0304 15:34:46.307006 300456 node_utils.go:77] Skipping worker validation for node ip-10-0-22-126.us-east-2.compute.internal (also has control-plane role, e.g. SNO)
 I0304 15:34:46.307057 300456 node_swap.go:214] Test PASSED: KubeletConfig with failSwapOn was properly rejected
 I0304 15:34:46.918385 300456 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-964qb-user}, err: 
 I0304 15:34:47.156147 300456 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-964qb}, err: 
 I0304 15:34:47.538464 300456 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~1Mn0aC-AWC_7Muifjcz-c-r5DS6DAJ6CK6tyDlkC9Fw}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-964qb" for this suite. @ 03/04/26 15:34:47.538
 • [22.406 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 22.406 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Summary by CodeRabbit

  • Tests

  • Added an extended test suite validating kubelet swap settings on worker and control-plane nodes, including checks that forbidden kubelet configuration changes are rejected.

  • Added helper utilities for node discovery and kubelet configuration retrieval used by the tests.

  • Chores

  • Adjusted kubelet dependency declaration in module configuration.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

Ran make verify-deps

Skip for hypershift cluster

Skip for SNO clusters

OCPNODE-3932: Fix swap test for Hypershift and improve robustness

OCPNODE-3932: Add SNO support for node swap tests by filtering dual-role nodes

OCPNODE-3932: Skip OCP-86395 on hypershift cluster
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Mar 4, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 4, 2026

@BhargaviGudi: This pull request references OCPNODE-3932 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary
Adds automated tests for non-CNV swap configuration on OpenShift nodes.

Jira story: https://issues.redhat.com/browse/OCPNODE-3932

Validates:

  • Default kubelet swap settings on worker and control plane nodes
  • Rejection of user-defined swap overrides via KubeletConfig API

Files Added

  • test/extended/node/node_swap.go - Test cases
  • test/extended/node/node_utils.go - Helper functions for node and kubelet config operations

Topology Support

  • Hypershift: Skips control plane validation (external control plane), worker validation still runs.
  • SNO: Nodes with both worker and control-plane roles are validated as control plane (failSwapOn=true), not as workers. Added getPureWorkerNodes() helper to filter dual-role nodes.
  • MicroShift: Tests skipped entirely.

Test cases:
OCP-86394
OCP-86395

   [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [Jira:Node] [OCP-86394]
 github.com/openshift/origin/test/extended/node/node_swap.go:46
   STEP: Creating a kubernetes client @ 01/12/26 13:53:15.953
 I0112 13:53:15.954150   54173 discovery.go:214] Invalidating discovery information
 I0112 13:53:19.087172 54173 client.go:293] configPath is now "/tmp/configfile1332138601"
 I0112 13:53:19.087205 54173 client.go:368] The user is now "e2e-test-node-swap-btg8f-user"
 I0112 13:53:19.087220 54173 client.go:370] Creating project "e2e-test-node-swap-btg8f"
 I0112 13:53:19.509151 54173 client.go:378] Waiting on permissions in project "e2e-test-node-swap-btg8f" ...
 I0112 13:53:20.757654 54173 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 13:53:21.030854 54173 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 13:53:21.780319 54173 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 13:53:22.497353 54173 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 13:53:23.214772 54173 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 13:53:23.828307 54173 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 13:53:24.362820 54173 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 13:53:25.572055 54173 client.go:465] Project "e2e-test-node-swap-btg8f" has been fully provisioned.
 I0112 13:53:25.876964 54173 framework.go:2334] microshift-version configmap not found
   STEP: Getting worker nodes @ 01/12/26 13:53:25.877
   STEP: Validating kubelet configuration on each worker node @ 01/12/26 13:53:26.184
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491051 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-a-ks7zw: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-a-ks7zw @ 01/12/26 13:53:26.491
 I0112 13:53:26.491076 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-a-ks7zw: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799069 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-b-hnkhq: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-b-hnkhq @ 01/12/26 13:53:26.799
 I0112 13:53:26.799116 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-b-hnkhq: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=false on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105627 54173 node_swap.go:60] Worker node bgudi-j12-kgf87-worker-c-xbbkd: failSwapOn=false ✓
   STEP: Checking swapBehavior=NoSwap on worker node bgudi-j12-kgf87-worker-c-xbbkd @ 01/12/26 13:53:27.105
 I0112 13:53:27.105664 54173 node_swap.go:65] Worker node bgudi-j12-kgf87-worker-c-xbbkd: swapBehavior=NoSwap ✓
   STEP: Getting control plane nodes @ 01/12/26 13:53:27.105
   STEP: Validating kubelet configuration on each control plane node @ 01/12/26 13:53:27.404
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695585 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal @ 01/12/26 13:53:27.695
 I0112 13:53:27.695623 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-0.us-central1-a.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.006
 I0112 13:53:28.007013 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal @ 01/12/26 13:53:28.007
 I0112 13:53:28.007073 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-1.us-central1-b.c.openshift-qe.internal: swapBehavior=NoSwap ✓
   STEP: Checking failSwapOn=true on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295523 54173 node_swap.go:81] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal @ 01/12/26 13:53:28.295
 I0112 13:53:28.295549 54173 node_swap.go:86] Control plane node bgudi-j12-kgf87-master-2.us-central1-c.c.openshift-qe.internal: swapBehavior=NoSwap ✓
 I0112 13:53:28.295564 54173 node_swap.go:88] Test PASSED: All nodes have correct default swap settings
 I0112 13:53:28.641012 54173 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-btg8f-user}, err: 
 I0112 13:53:28.920122 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-btg8f}, err: 
 I0112 13:53:29.205068 54173 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~B0he02YdA3rQmivC_6pxgH1W-Fq8OxWRhXi4bkQlJnk}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-btg8f" for this suite. @ 01/12/26 13:53:29.205
 • [13.618 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 13.618 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395]
 github.com/openshift/origin/test/extended/node/node_swap.go:91
   STEP: Creating a kubernetes client @ 01/12/26 15:25:28.344
 I0112 15:25:28.345790   88048 discovery.go:214] Invalidating discovery information
 I0112 15:25:33.846094 88048 client.go:293] configPath is now "/tmp/configfile1714018848"
 I0112 15:25:33.846149 88048 client.go:368] The user is now "e2e-test-node-swap-9tzrc-user"
 I0112 15:25:33.846161 88048 client.go:370] Creating project "e2e-test-node-swap-9tzrc"
 I0112 15:25:34.199847 88048 client.go:378] Waiting on permissions in project "e2e-test-node-swap-9tzrc" ...
 I0112 15:25:35.381516 88048 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0112 15:25:35.640898 88048 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0112 15:25:36.300768 88048 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0112 15:25:37.016542 88048 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0112 15:25:37.731628 88048 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0112 15:25:38.398078 88048 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0112 15:25:39.013079 88048 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0112 15:25:40.139612 88048 client.go:465] Project "e2e-test-node-swap-9tzrc" has been fully provisioned.
 I0112 15:25:40.446533 88048 framework.go:2334] microshift-version configmap not found
   STEP: Creating machine config client @ 01/12/26 15:25:40.446
   STEP: Getting initial machine config resourceVersion @ 01/12/26 15:25:40.446
   STEP: Creating a KubeletConfig with swap settings @ 01/12/26 15:25:40.704
   STEP: Attempting to apply the KubeletConfig @ 01/12/26 15:25:40.704
 I0112 15:25:40.704259 88048 node_swap.go:126] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
   STEP: Checking KubeletConfig status for expected error message @ 01/12/26 15:25:40.963
 I0112 15:25:43.234048 88048 node_swap.go:152] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
   STEP: Verifying machine config was not created or updated @ 01/12/26 15:25:43.234
   STEP: Verifying worker nodes still have correct swap settings @ 01/12/26 15:25:48.508
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458183 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n @ 01/12/26 15:25:49.458
 I0112 15:25:49.458219 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus1-9dz4n: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754444 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t @ 01/12/26 15:25:49.754
 I0112 15:25:49.754525 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus2-75l7t: swapBehavior=NoSwap (unchanged) ✓
   STEP: Verifying failSwapOn=false remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073677 88048 node_swap.go:185] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: failSwapOn=false (unchanged) ✓
   STEP: Verifying swapBehavior=NoSwap remains unchanged on worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz @ 01/12/26 15:25:50.073
 I0112 15:25:50.073813 88048 node_swap.go:190] Worker node ci-op-5v1xq5wl-10999-jrj4s-worker-centralus3-9lnrz: swapBehavior=NoSwap (unchanged) ✓
 I0112 15:25:50.073838 88048 node_swap.go:193] Test PASSED: KubeletConfig with failSwapOn was properly rejected
 I0112 15:25:50.687721 88048 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-9tzrc-user}, err: 
 I0112 15:25:50.993412 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-9tzrc}, err: 
 I0112 15:25:51.258458 88048 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~urJPAAwYTdNinFhNqG-lZ1UzWd8-qHq8FcVca9OcY-s}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-9tzrc" for this suite. @ 01/12/26 15:25:51.258
 • [23.184 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 23.185 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

SNO cluster:

bgudi@bgudi-thinkpadp16vgen1:~/work/src/github.com/openshift/origin$ ./openshift-tests run-test "[Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [OCP-86394] [Suite:openshift/conformance/parallel]"

 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should have correct default kubelet swap settings with worker nodes failSwapOn=false, control plane nodes failSwapOn=true, and both swapBehavior=NoSwap [OCP-86394] [Lifecycle:informing]
 github.com/openshift/origin/test/extended/node/node_swap.go:50
   STEP: Creating a kubernetes client @ 03/04/26 15:33:03.101
 I0304 15:33:03.103518  299959 discovery.go:214] Invalidating discovery information
 I0304 15:33:07.633203 299959 client.go:293] configPath is now "/tmp/configfile2782002196"
 I0304 15:33:07.633241 299959 client.go:368] The user is now "e2e-test-node-swap-qctd4-user"
 I0304 15:33:07.633252 299959 client.go:370] Creating project "e2e-test-node-swap-qctd4"
 I0304 15:33:08.112626 299959 client.go:378] Waiting on permissions in project "e2e-test-node-swap-qctd4" ...
 I0304 15:33:09.458249 299959 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 15:33:09.846675 299959 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 15:33:11.076018 299959 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 15:33:11.690096 299959 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 15:33:12.396775 299959 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 15:33:12.924954 299959 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 15:33:13.790514 299959 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 15:33:15.982522 299959 client.go:469] Project "e2e-test-node-swap-qctd4" has been fully provisioned.
 I0304 15:33:15.984454 299959 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 15:33:17.638344 299959 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
   STEP: Getting worker nodes @ 03/04/26 15:33:17.638
 I0304 15:33:18.536409 299959 node_utils.go:77] Skipping worker validation for node ip-10-0-22-126.us-east-2.compute.internal (also has control-plane role, e.g. SNO)
   STEP: Validating kubelet configuration on each worker node @ 03/04/26 15:33:18.536
   STEP: Getting control plane nodes @ 03/04/26 15:33:18.824
   STEP: Validating kubelet configuration on each control plane node @ 03/04/26 15:33:19.623
   STEP: Checking failSwapOn=true on control plane node ip-10-0-22-126.us-east-2.compute.internal @ 03/04/26 15:33:20.063
 I0304 15:33:20.063821 299959 node_swap.go:93] Control plane node ip-10-0-22-126.us-east-2.compute.internal: failSwapOn=true ✓
   STEP: Checking swapBehavior=NoSwap on control plane node ip-10-0-22-126.us-east-2.compute.internal @ 03/04/26 15:33:20.063
 I0304 15:33:20.063885 299959 node_swap.go:98] Control plane node ip-10-0-22-126.us-east-2.compute.internal: swapBehavior=NoSwap ✓
 I0304 15:33:20.063899 299959 node_swap.go:103] Test PASSED: All nodes have correct default swap settings
 I0304 15:33:20.304255 299959 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-qctd4-user}, err: 
 I0304 15:33:20.734253 299959 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-qctd4}, err: 
 I0304 15:33:20.976042 299959 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~XRn1FBV-s1HY8U02dO2hmkUjxtvC5BMIZ5FQyDCnRno}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-qctd4" for this suite. @ 03/04/26 15:33:20.976
 • [18.282 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 18.282 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
$./openshift-tests run-test "[Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395] [Suite:openshift/conformance/parallel]"

 Will run 1 of 1 specs
 ------------------------------
 [Jira:Node][sig-node] Node non-cnv swap configuration should reject user override of swap settings via KubeletConfig API [OCP-86395] [Lifecycle:informing]
 github.com/openshift/origin/test/extended/node/node_swap.go:106
   STEP: Creating a kubernetes client @ 03/04/26 15:34:25.551
 I0304 15:34:25.552959  300456 discovery.go:214] Invalidating discovery information
 I0304 15:34:29.034099 300456 client.go:293] configPath is now "/tmp/configfile1358489074"
 I0304 15:34:29.034152 300456 client.go:368] The user is now "e2e-test-node-swap-964qb-user"
 I0304 15:34:29.034164 300456 client.go:370] Creating project "e2e-test-node-swap-964qb"
 I0304 15:34:29.321334 300456 client.go:378] Waiting on permissions in project "e2e-test-node-swap-964qb" ...
 I0304 15:34:30.817231 300456 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 15:34:31.109080 300456 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 15:34:32.142195 300456 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 15:34:32.891317 300456 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 15:34:33.616554 300456 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 15:34:34.084013 300456 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 15:34:35.203581 300456 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 15:34:37.109754 300456 client.go:469] Project "e2e-test-node-swap-964qb" has been fully provisioned.
 I0304 15:34:37.111343 300456 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 15:34:37.501096 300456 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
   STEP: Creating machine config client @ 03/04/26 15:34:37.501
   STEP: Getting initial machine config resourceVersion @ 03/04/26 15:34:37.501
   STEP: Creating a KubeletConfig with swap settings @ 03/04/26 15:34:37.75
   STEP: Attempting to apply the KubeletConfig @ 03/04/26 15:34:37.75
 I0304 15:34:37.750241 300456 node_swap.go:144] Creating KubeletConfig with failSwapOn=true and swapBehavior=LimitedSwap
   STEP: Checking KubeletConfig status for expected error message @ 03/04/26 15:34:38.101
 I0304 15:34:40.370776 300456 node_swap.go:170] Found Failure condition: Error: KubeletConfiguration: failSwapOn is not allowed to be set, but contains: true
   STEP: Verifying machine config was not created or updated @ 03/04/26 15:34:40.37
   STEP: Verifying worker nodes still have correct swap settings @ 03/04/26 15:34:45.618
 I0304 15:34:46.307006 300456 node_utils.go:77] Skipping worker validation for node ip-10-0-22-126.us-east-2.compute.internal (also has control-plane role, e.g. SNO)
 I0304 15:34:46.307057 300456 node_swap.go:214] Test PASSED: KubeletConfig with failSwapOn was properly rejected
 I0304 15:34:46.918385 300456 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-swap-964qb-user}, err: 
 I0304 15:34:47.156147 300456 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-swap-964qb}, err: 
 I0304 15:34:47.538464 300456 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~1Mn0aC-AWC_7Muifjcz-c-r5DS6DAJ6CK6tyDlkC9Fw}, err: 
   STEP: Destroying namespace "e2e-test-node-swap-964qb" for this suite. @ 03/04/26 15:34:47.538
 • [22.406 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 22.406 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

Summary by CodeRabbit

  • Tests

  • Added an extended test suite validating kubelet swap settings on workers and control-plane nodes, and verifying user attempts to override forbidden kubelet settings are rejected.

  • Added utilities to discover nodes and retrieve kubelet configuration for those tests.

  • Chores

  • Updated the module dependency declaration for the kubelet package.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 4, 2026

@BhargaviGudi: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/f73e6d20-17e1-11f1-9a8c-ae50b3c2f1d4-0

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
test/extended/node/node_swap.go (1)

118-126: ⚠️ Potential issue | 🟠 Major

Fail test when MachineConfig reads fail (don’t silently skip invariance checks).

At Line 122 and Line 193, guarding with if err == nil allows a pass without proving 99-worker-generated-kubelet stayed unchanged. This should be a hard assertion (or an explicit topology-guarded branch), not silent continuation.

Suggested fix
 		g.By("Getting initial machine config resourceVersion")
 		// Get the initial resourceVersion of the worker machine config before creating KubeletConfig
 		workerMC, err := mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx, workerGeneratedKubeletMC, metav1.GetOptions{})
-		initialResourceVersion := ""
-		if err == nil {
-			initialResourceVersion = workerMC.ResourceVersion
-			framework.Logf("Initial %s resourceVersion: %s", workerGeneratedKubeletMC, initialResourceVersion)
-		}
+		o.Expect(err).NotTo(o.HaveOccurred(), "Failed to get initial machine config %s", workerGeneratedKubeletMC)
+		initialResourceVersion := workerMC.ResourceVersion
+		framework.Logf("Initial %s resourceVersion: %s", workerGeneratedKubeletMC, initialResourceVersion)
@@
 		// Check if the machine config was created or updated (compare to initial resourceVersion captured earlier)
 		workerMC, err = mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx, workerGeneratedKubeletMC, metav1.GetOptions{})
-		if err == nil {
-			o.Expect(workerMC.ResourceVersion).To(o.Equal(initialResourceVersion), "Machine config %s should not be updated when failSwapOn is rejected", workerGeneratedKubeletMC)
-			framework.Logf("Verified: %s was not updated (resourceVersion: %s)", workerGeneratedKubeletMC, workerMC.ResourceVersion)
-		}
+		o.Expect(err).NotTo(o.HaveOccurred(), "Failed to get machine config %s after rejection", workerGeneratedKubeletMC)
+		o.Expect(workerMC.ResourceVersion).To(o.Equal(initialResourceVersion), "Machine config %s should not be updated when failSwapOn is rejected", workerGeneratedKubeletMC)
+		framework.Logf("Verified: %s was not updated (resourceVersion: %s)", workerGeneratedKubeletMC, workerMC.ResourceVersion)

Also applies to: 191-196

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/node/node_swap.go` around lines 118 - 126, The code silently
skips the invariance check when reading the MachineConfig fails; change the
guarded reads into hard test failures by asserting the Get calls succeed: for
the initial read (mcClient.MachineconfigurationV1().MachineConfigs().Get and
variable workerMC/initialResourceVersion) and the later final read (the
corresponding Get that compares resource versions), replace the `if err == nil`
guard with a test assertion that the error is nil (e.g.,
Expect(err).NotTo(HaveOccurred()) or require.NoError(err)) so the test fails
immediately if the MachineConfig reads fail, and only then set/compare the
ResourceVersion values.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@test/extended/node/node_swap.go`:
- Around line 118-126: The code silently skips the invariance check when reading
the MachineConfig fails; change the guarded reads into hard test failures by
asserting the Get calls succeed: for the initial read
(mcClient.MachineconfigurationV1().MachineConfigs().Get and variable
workerMC/initialResourceVersion) and the later final read (the corresponding Get
that compares resource versions), replace the `if err == nil` guard with a test
assertion that the error is nil (e.g., Expect(err).NotTo(HaveOccurred()) or
require.NoError(err)) so the test fails immediately if the MachineConfig reads
fail, and only then set/compare the ResourceVersion values.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7512064c-b8e0-459b-8122-054820782027

📥 Commits

Reviewing files that changed from the base of the PR and between edee808 and b749d6b.

📒 Files selected for processing (3)
  • go.mod
  • test/extended/node/node_swap.go
  • test/extended/node/node_utils.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • go.mod

@openshift-ci-robot
Copy link

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@BhargaviGudi
Copy link
Contributor Author

/test e2e-vsphere-ovn-upi
/test e2e-vsphere-ovn

@BhargaviGudi
Copy link
Contributor Author

/payload-job periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 5, 2026

@BhargaviGudi: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/8612cd00-1852-11f1-82b9-294a16837c8e-0

@openshift-trt
Copy link

openshift-trt bot commented Mar 5, 2026

Job Failure Risk Analysis for sha: b749d6b

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-vsphere-ovn-upi IncompleteTests
Tests for this run (19) are below the historical average (3654): IncompleteTests (not enough tests ran to make a reasonable risk analysis; this could be due to infra, installation, or upgrade problems)

1 similar comment
@openshift-trt
Copy link

openshift-trt bot commented Mar 5, 2026

Job Failure Risk Analysis for sha: b749d6b

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-vsphere-ovn-upi IncompleteTests
Tests for this run (19) are below the historical average (3654): IncompleteTests (not enough tests ran to make a reasonable risk analysis; this could be due to infra, installation, or upgrade problems)

@BhargaviGudi
Copy link
Contributor Author

/verified by @BhargaviGudi

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Mar 5, 2026
@openshift-ci-robot
Copy link

@BhargaviGudi: This PR has been marked as verified by @BhargaviGudi.

Details

In response to this:

/verified by @BhargaviGudi

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@BhargaviGudi
Copy link
Contributor Author

/retest-required

@openshift-trt
Copy link

openshift-trt bot commented Mar 5, 2026

Job Failure Risk Analysis for sha: b749d6b

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-vsphere-ovn IncompleteTests
Tests for this run (21) are below the historical average (3515): IncompleteTests (not enough tests ran to make a reasonable risk analysis; this could be due to infra, installation, or upgrade problems)

@openshift-trt
Copy link

openshift-trt bot commented Mar 5, 2026

Job Failure Risk Analysis for sha: b749d6b

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-vsphere-ovn IncompleteTests
Tests for this run (21) are below the historical average (3521): IncompleteTests (not enough tests ran to make a reasonable risk analysis; this could be due to infra, installation, or upgrade problems)

@BhargaviGudi
Copy link
Contributor Author

/retest-required

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 6, 2026

@BhargaviGudi: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

acknowledge-critical-fixes-only Indicates if the issuer of the label is OK with the policy. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants