Geo: Make hashed storage a hard requirement in 12.0
Problem to solve
GitLab provides two classes of storage:
- Legacy storage prior to 10.0
- Hashed storage starting with 10.0
Using Geo in conjunction with legacy storage can lead to race conditions, which are eliminated by using hashed storage. Hashed storage uses the projectID to create a hash resulting in an immutable folder structure. Using hashed storage has been a soft requirement since 11.6. With 12.0 we propose making hashed storage a hard requirement in order to prevent new installations of Geo from using legacy storage.
Intended users
- Devon(DevOps Engineer)
Further details
- Legacy storage for Geo has been deprecated since 11.6 https://gitlab.com/gitlab-org/gitlab-ee/issues/8289
- Upgrade path for legacy + Geo is unclear
Proposal
-
Prevent enabling Geo without hashed storage starting with 12.0 -
Consider upgraders who missed/ignored the deprecation notice. What is the experience for them? -
Everything should continue to work for Geo + legacy storage installation -
Warnings should continue to make sense for Geo + legacy storage installation
-
-
Add deprecation notice on the release post: "With 12.0, hashed storage is now required to enable Geo."