e2e: add block device shrink and manual BlockDevice tests#215
e2e: add block device shrink and manual BlockDevice tests#215viktor-karpochev wants to merge 30 commits into
Conversation
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (BlockDevice discovery, LVMVolumeGroup). Artifacts: Test logs are available in workflow artifacts. |
Add three new e2e test scenarios for sds-node-configurator: - Block device size reduction: verifies LVMVolumeGroup degrades to NotReady when the backing device is replaced with a smaller one - Manual BlockDevice creation: verifies the agent deletes a fake BlockDevice that doesn't correspond to a real device on the node - Manual BlockDevice modification: verifies the agent reverts manually changed status.size back to the real value on the next discovery scan Also fix review findings: validate Forbidden/Invalid errors match manual management protection (not RBAC/schema), and check size reverts to the exact original value (not just != fakeSize). Made-with: Cursor Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com>
Cover the case when a disk disappears after discovery by asserting the corresponding BlockDevice is removed after detach and rescan. Also reuse a shared helper for restarting sds-node-configurator agents in e2e scenarios that need an immediate BlockDevice rescan. Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com> Made-with: Cursor Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com>
Temporarily disable one worker node in the e2e test cluster definition to reduce CI resource usage and improve cluster bootstrap stability. Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com> Made-with: Cursor Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com>
Port the e2e CI hardening from ndemchuk-common-scheduler-e2e-tests, including writable Go caches, early API SSH tunnel setup, storage-e2e bootstrap fixes, reconnect-after-add-nodes patch, and supporting e2e manifests/docs. Adapt the workflow to keep running TestSdsNodeConfigurator in this branch instead of the shared TestE2E entrypoint from the source branch. Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com> Made-with: Cursor Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com>
…-create Pull the latest main into the e2e branch so CI and tests run on top of the current product changes. Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com>
fc63188 to
8b4e3df
Compare
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Ensure the BlockDevice discovery smoke test creates its Kubernetes client before cleanup and node diagnostics so the spec does not panic on a nil client. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Retry cluster creation when storage-e2e times out waiting for VMs to reach Running so smoke runs are less sensitive to slow nested virtualization startup. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
The smoke tests now validate that manual BlockDevice changes are actually deleted or reverted without depending on an event that the agent does not emit. Signed-off-by: Viktor Karpochev <viktor.karpochev@flant.com> Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Wait for the base-cluster namespace to be fully deleted after cleanup so CreateTestCluster retries do not race with a terminating namespace. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Allow the storage-e2e smoke suite to survive a full retry of nested cluster creation instead of being killed by the global 60 minute go test timeout just before modules become ready. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Allow the Ginkgo suite to outlive repeated CreateTestCluster retries so the smoke job can use the longer go test timeout instead of failing after the default one-hour suite limit. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Let the shared nested cluster client reattempt BlockDevice REST discovery so transient API EOFs between ordered suites do not fail the smoke run after cluster creation already succeeded. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Give the shrink scenario more time for the initial LVMVolumeGroup to reach Ready on loaded CI clusters and dump its state if it still stalls in Pending. Made-with: Cursor
E2E Smoke Tests Results ❌Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
E2E Smoke Tests Results ✅Module: sds-node-configurator
Tests were executed via storage-e2e (TestSdsNodeConfigurator). Artifacts: Test logs are available in workflow artifacts. |
Add three new e2e test scenarios for sds-node-configurator:
Also fix review findings: validate Forbidden/Invalid errors match manual management protection (not RBAC/schema), and check size reverts to the exact original value (not just != fakeSize).
Made-with: Cursor
Description
Why do we need it, and what problem does it solve?
What is the expected result?
Checklist