feat(conductor): add raft config to allow no shutdown on remove #18699
+27
−0
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 adds a new flag
--raft.no-shutdown-on-removetoop-conductorthat prevents Raft from shutting down when the node is removed from the cluster.Problem
When a node is removed from the cluster via
conductor_removeServer, HashiCorp Raft's default behavior (ShutdownOnRemove=true) causes the Raft instance to completely shut down. This means:Solution
Add a configurable flag that sets
ShutdownOnRemove=falsein Raft configuration. When enabled:conductor_addServerAsVoterorconductor_addServerAsNonvoterChanges
--raft.no-shutdown-on-removeflag (default:false, backward compatible)NoShutdownOnRemovefield toRaftConsensusConfigShutdownOnRemovebased on the flag valueTests
Manual testing was performed:
--raft.no-shutdown-on-removeenabledconductor_removeServerconductor_addServerAsVoterconductor_clusterMembershipof this node)Additional context
This feature is opt-in and disabled by default to maintain backward compatibility with existing deployments. The default Raft behavior (shutdown on remove) is preserved unless explicitly configured otherwise.
Use cases for this flag:
Metadata