Skip to content

v0.1.2

Choose a tag to compare

@kvaps kvaps released this 28 May 22:05
· 93 commits to main since this release

Bug-fix and test-coverage release.

Fixed

  • TieBreaker remains after r d (Bug 338 re-regression) — adds the missing e2e regression catcher (tests/e2e/tiebreaker-r-d-cleanup.sh). The controller-side fix landed earlier in resourcedefinition_controller.go (shouldKeepExistingWitness), but the lack of a real-DRBD test let it silently re-regress on the dev stand. Future TieBreaker changes are now gated by an e2e scenario that exercises linstor r d one-by-one and asserts the witness invariant on the QEMU+Talos lane.

Test infrastructure

  • e2e cascade attribution — when a scenario leaves the cluster dirty, the next scenario now is no longer wrongly blamed. New strict_cleanup_on_exit helper + register_strict_cleanup trap demote a leaving-PASS to FAIL if the cluster cleanup fails, and a pre-flight check at the top of each scenario rewrites the previous scenario's verdict to FAIL with a LEFTOVER reason when satellite pods or RDs are still present from the prior run.
  • piraeus interop in CI — the CI matrix now ships an E2E (piraeus interop) job that installs the upstream piraeus-operator against the blockstor apiserver and runs the linstor-csi scenarios (rwx-ganesha, observability-three-way, observability-capacity-correlation, csi-pvc-replicated-rwo) on a dedicated stand. Main lanes 1-6 keep running bare blockstor; the interop scenarios that need linstor-csi v1.10.1 + LinstorCluster CRD are isolated to the piraeus job.
  • csi-pvc-replicated-rwo e2e — new test pins the linstor-csi DRBD path end-to-end against the user-facing replicated StorageClass shape (3 DRBD replicas, full DrbdOptions/* prop set, write→delete pod→read back on another node).

Refactor

  • FilesystemFormatted Stamper API — adds StampFilesystemObserved (Reason=FilesystemObserved) alongside the existing StampFilesystemFormatted (Reason=MkfsSucceeded), plus a byte-identity SSA-shape test that prevents the PR #32-class .status.volumes:null regression. The observe call site is intentionally not wired yet — it requires routing from the observer event path rather than the per-RD apply lane and will land in a follow-up.

Known follow-ups (deferred)

  • Storage-only PVC auto-mkfscsi-pvc-local test and the satellite runStorageOnlyMkfs hook were reverted from this release after live validation showed linstor-csi tearing down storage-only volumes mid-provisioning. Tracked as a follow-up; the user-facing local StorageClass (no DRBD) is not yet provisioned end-to-end through blockstor.

All non-deferred items were validated on a 3-worker Talos+QEMU stand (linstor-dev-1) with DRBD 9.2.14 + linstor-csi v1.10.1.