Skip to content

Geo: Implement design management repository replication for organization migration

Problem

As part of organization migration from Legacy Cell to Protocell, Geo must replicate design Git repositories. But repository storages differ between cells, and repository storages are managed in the PG DB. Therefore PG replication requires some kind of special handling of repository storages. By chance, since design repos reuse the same storage as project repos, in this issue, the main task is testing.

Background

  • DesignManagement::Repository delegates #repository_storage to the associated Project.
  • design_management_repositories is currently already sharded by project_id
  • This issue is blocked by Geo: Implement project repository replication f... (#577735) because we will rely on projects.repository_storage being properly updated as part of replicating projects data. This issue isn't a blocker after the transition to sharding by namespace_id though.
  • On migration, assuming the delegated repository_storage is working, Geo can sync design Git repos as normal.

Tasks for Geo Team

  • Classify this table as gitlab_main_org (it is currently gitlab_main_cell)
  • design_management_repositories is transitioning to sharding by namespace_id, so we must transition at the same time
  • Ensure there are sufficient automated (unit? QA?) tests to meet GitLab's standards
  • Smoke test locally

Related

Edited by Michael Kozono