v0.1.9
Patch release with a single operator-reported fix. Versions v0.1.6–v0.1.8 are skipped: those tags pre-exist in the repository from an inherited lineage and do not correspond to blockstor releases.
Fixed
- Resource flaps forever after
vd d(Bug 399, #92) — deleting a volume definition removed the volume from the RD and the DRBD kernel, but two add-only projections never forgot it: the controller's RD →Resource.spec.volumesprojection kept a stale entry, and the satellite observer's volume cache only evicted on the events2destroy deviceframe — which a DISKLESS/tiebreaker replica never receives (it has no local disk to destroy) — so the observer re-emitted a phantomstatus.volumes[n]=Disklessevery kernel tick, oscillating the resource status and PATCH-storming the apiserver ~1/s indefinitely. The controller now prunesspec.volumesentries absent from the RD, and the observer converges its volume cache against the live RD volume set (theblockstor.io/volume-numbersannotation), so both diskful and diskless replicas settle to exactly the remaining volumes. The e2evolumes_settledflap gate was also made kine-safe (volume-set stability across polls instead of resourceVersion equality, which k3s/kine inflates with the global store revision).