[drbd] Split legacy and patched DRBD stacks#724
Draft
IvanOgurchenok wants to merge 6 commits into
Draft
Conversation
Keep the legacy LINSTOR path on vanilla DRBD 9.2.18 and drbd-utils 9.30.0 while the new control-plane continues to use the flant-patched stack. Add separate legacy DRBD and drbd-reactor images, route legacy consumers to them, and harden bashible DRBD version checks against empty or non-9.x loaded versions. Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
Keep the legacy drbd-reactor build layout aligned with the existing image pattern by resolving patches through ImageName. Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
Let SPAAS generate compatibility patches for both the patched DRBD stack and the vanilla legacy DRBD stack. Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
Treat malformed loaded DRBD 9.x versions as rebuild/reboot candidates before calling d8-semver, and remove inherited SVACE tooling from final reactor runtime filesystems. Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
Keep the patched new-control-plane DRBD stack on 9.2.18-flant.5 and move only the LINSTOR legacy kernel module slot to vanilla 9.2.16. Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
Define the DRBD version regex once and reuse it across all node-specific installation scripts. Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
2b13cc7 to
2b5d94c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR separates the DRBD stack used by the legacy LINSTOR control plane from the stack used by the new control plane.
The legacy LINSTOR path now uses vanilla DRBD 9.2.18 and drbd-utils 9.30.0. The new control-plane path continues to use the flant-patched DRBD 9.2.18 and drbd-utils 9.32.0 stack.
The DRBD install NodeGroupConfiguration also selects the desired DRBD version and module image according to
internal.newControlPlane, and handles empty, non-DRBD-9, or malformed loaded versions without failing the bashible run.The final
drbdReactoranddrbdReactorLegacyimages now remove/opt/svace, which is build-only static analysis tooling inherited from the builder base and is not needed at runtime.Why do we need it, and what problem does it solve?
The legacy LINSTOR control plane is more sensitive to newer drbd-utils behavior and should stay on the vanilla DRBD userspace/kernel pair. At the same time, the new control plane requires the flant-patched DRBD stack.
Keeping these paths separate avoids mixing incompatible kernel/userspace ABI variants and reduces the risk of breaking legacy LINSTOR while still allowing the new control plane to use patched DRBD features.
The bashible version-check fix prevents DRBD installation from failing when
/proc/drbdcontains an empty, old, or malformed loaded module version.Removing
/opt/svacekeeps unnecessary build tooling out of the final reactor runtime filesystem. The image still inherits the same builder base, so this is a conservative cleanup rather than a full image-layer optimization.What is the expected result?
When
internal.newControlPlaneisfalse, the module should render and install the legacy DRBD stack:drbdLegacyimage for DRBD kernel module installation;drbdReactorLegacyimage for the legacy LINSTOR node sidecar;When
internal.newControlPlaneistrue, the module should continue to render and install the patched DRBD stack:drbdimage for DRBD kernel module installation;drbdReactorimage for the new control-plane sidecar;If the currently loaded DRBD version is empty, not a DRBD 9.x semver, or lower than the desired version, bashible should request a rebuild/reboot path instead of failing on
d8-semver compare.The final
drbdReactoranddrbdReactorLegacyruntime filesystems should not contain/opt/svace.Checklist