Deprecate support for duplicate storages in Gitaly Configuration
For guidance on the overall deprecations, removals and breaking changes workflow, please visit Breaking changes, deprecations, and removing features
Deprecation Summary
Engineering Issue: Stop supporting duplicate storages in Gitaly's ... (gitaly#5598 - closed)
At present, our documentation recommends naming multiple storages in Gitaly with different names, but pointing them at the same storage path. While this generally works, it may cause the following issues currently:
- The Gitaly background maintenance routine doesn't seemingly differentiate between the duplicate storages, and therefore schedules maintenance multiple times on the same data
- It can cause some confusion around debugging issues with Gitaly
Moving forward, this will become a larger issue as the planned updates to Gitaly with Raft will not work due to the following:
- Gitaly with Raft will use all configured storages, assigning each to a unique ID, and will advertise to the other nodes in the cluster. Having multiple storages pointing at the same directory will cause conflicts.
Breaking Change
This will introduce a breaking change in %17.0 that will require that users update their configurations to eliminate duplicate storage entries. This is a config only change.
Affected Topology
This will impact only self-managed users.
Affected Tier
This will impact all self-managed tiers.
Checklists
Labels
-
This issue is labeled deprecation, and with the relevant ~devops::
,~group::
, and~Category:
labels. -
This issue is labeled breaking change if the removal of the deprecated item will be a breaking change.
Timeline
Please add links to the relevant merge requests.
- As soon as possible, but no later than the third milestone preceding the major release (for example, given the following release schedule:
14.8, 14.9, 14.10, 15.0
–14.8
is the third milestone preceding the major release):-
A deprecation announcement entry has been created so the deprecation will appear in release posts and on the general deprecation page. -
Documentation has been updated to mark the feature as deprecated.
-
-
On or before the major milestone: A removal entry has been created so the removal will appear on the removals by milestones page and be announced in the release post. - On the major milestone:
-
The deprecated item has been removed. -
If the removal of the deprecated item is a breaking change, the merge request is labeled breaking change.
-
Mentions
-
Your stage's stable counterparts have been @mentioned
on this issue. For example, Customer Support, Customer Success (Technical Account Manager), Product Marketing Manager.- To see who the stable counterparts are for a product team visit product categories
- If there is no stable counterpart listed for Sales/CS please mention
@timtams
- If there is no stable counterpart listed for Support please mention
@gitlab-com/support/managers
- If there is no stable counterpart listed for Marketing please mention
@cfoster3
- If there is no stable counterpart listed for Sales/CS please mention
- To see who the stable counterparts are for a product team visit product categories
-
Your GPM has been @mentioned
so that they are aware of planned deprecations. The goal is to have reviews happen at least two releases before the final removal of the feature or introduction of a breaking change.
Deprecation Milestone
We are planning on announcing this in %16.10
Planned Removal Milestone
We are planning on raising an error for the deprecated configuration structure in %17.0