Skip to content

HDDS-15196. Split HDDS upgrade actions into specific SCM and Datanode actions.#10206

Open
errose28 wants to merge 6 commits intoapache:HDDS-14496-zdufrom
errose28:split-upgrade-actions
Open

HDDS-15196. Split HDDS upgrade actions into specific SCM and Datanode actions.#10206
errose28 wants to merge 6 commits intoapache:HDDS-14496-zdufrom
errose28:split-upgrade-actions

Conversation

@errose28
Copy link
Copy Markdown
Contributor

@errose28 errose28 commented May 6, 2026

What changes were proposed in this pull request?

The new versioning framework decouples the versions, version manager, and upgrade actions for each component. Because of this, we should give SCM and Datanodes their own specific upgrade action types instead of using typing on the generic HDDSUpgradeAction which we currently have.

This change also adds Datanode and SCM specific upgrade action provider classes, similar to what was already added to OM in HDDS-14826. These have been connected to HDDSLayoutVersionManager using a somewhat hacky change for now. HDDSLayoutVersionManager will be deleted when HDDS-15129 and HDDS-15195 are complete, so I did not put much effort into cleaner handling. HDDSLayoutFeature.add{Scm,Datanode}Action will also be deleted in the new framework because the version manager will contain the binding of upgrade actions to versions (see existing OMVersionManager). Therefore the existing generic action workaround in HDDSLayoutFeature is only temporary.

LayoutFeature and UpgradeAction related classes have been moved out of hdds-common (a client side dependency) and into hdds-server-framework (server side only dependency). This means that LayoutFeatures should not be referenced in client facing classes like DatanodeDetails. This PR just removes the LayoutFeature referenced from DatanodeDetails, but #10205 makes a change to handle this properly.

What is the link to the Apache JIRA

HDDS-15196

How was this patch tested?

All existing tests should pass to validate the refactoring. The new SCM and Datanode action providers will be tested in
HDDS-15129 and HDDS-15195 respectively when they are used in the new SCM and Datanode version managers. This matches the current testing pattern with OM, where action loading is tested in TestOMVersionManager.

errose28 added 5 commits May 6, 2026 13:44
Still some action/version items in common modules
Still need alternative handling for port changes in DN details
@errose28 errose28 added the zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496 label May 6, 2026
@errose28 errose28 requested review from dombizita and sodonnel May 6, 2026 23:01
* HDDS-14496-zdu:
  HDDS-15197. Remove unnecessary BelongsToLayoutVersion annotations. (apache#10205)
@errose28 errose28 marked this pull request as ready for review May 8, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant