Geo: Make hashed storage a hard requirement in 12.0
Problem to solve
GitLab provides two classes of storage:
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.
- Devon(DevOps Engineer)
- 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
- 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."