Deprecate Praefect's failover_election_strategy config option
What does this MR do?
Praefect recently strated supporting electin a primary Gitaly node for
each repository separately. This allows for scaling storage capacity
horizontally and distributing the write load across Gitaly nodes. We
intend to require all installation to use the new per_repository
election strategy in 14.0. Doing so, we'd deprecate the existing
election strategies which are the sql
and local
strategies.
The migration requires users to shutdown Praefect's prior to changing
the election strategy, so we can't simply default to the new strategy.
Once everyone is on the new election strategy in 14.0, the
failover_election_strategy
option is no longer needed. As such, we'd
remove that configuration key in 14.0.
Given the above, the deprecation affects all installations regardless of the election strategy they are using:
-
sql
andlocal
strategies should be changed to theper_repository
strategy following the migration steps in 13.12 to ensure smooth upgrade to 14.0. -
per_repository
election strategy users should no longer use the config option starting from 14.0 onwards.
This commit adds a deprecation notice that is printed out if Praefect is enabled in the configuration. The notice prompts the users to switch to the new election strategy and to stop using the config key from 14.0 onwards.
Related issues
The migration guide link depends on gitlab!60888 (comment 567455931) being merged.
Checklist
See Definition of done.
For anything in this list which will not be completed, please provide a reason in the MR discussion
Required
-
Merge Request Title, and Description are up to date, accurate, and descriptive -
MR targeting the appropriate branch -
MR has a green pipeline on GitLab.com -
Pipeline is green on dev.gitlab.org if the change is touching anything besides documentation or internal cookbooks -
trigger-package
has a green pipeline running against latest commit
Expected (please provide an explanation if not completing)
-
Test plan indicating conditions for success has been posted and passes -
Documentation created/updated -
Tests added -
Integration tests added to GitLab QA -
Equivalent MR/issue for the GitLab Chart opened