Skip to content

Deprecate Praefect's failover_election_strategy config option

Sami Hiltunen requested to merge smh-deprecate-electors into master

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:

  1. sql and local strategies should be changed to the per_repository strategy following the migration steps in 13.12 to ensure smooth upgrade to 14.0.
  2. 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

gitaly#3574 (closed)

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

Merge request reports