Provide multiple git mount points
TODOS:
Phase 1:
Gitlab CE
- Implement new configuration keys on gitlab.yml
- Add new db attribute to projects to point to their shard (default: null shard)
- Add new repo path lookup helpers and point exsting code to use it
-
Monkey patch
Gitlab.config.gitlab_shell.repos_path
to throw an exception - Update gitlab-shell calls to account for the shards
- Setup api/v3/internals for gitlab-shell to get the shard paths for a project
Gitlab Shell
- Remove repos paths from config.yml (?)
-
Update gitlab-shell bins (
check
,create_hooks
,install
) (ask /api/v3/internal for the paths?) - Refactor GitlabProjects to account for the shards
- Get shards from api/v3/internals (when gitlab-shell gets called from git over ssh, for example in hooks and when verifying keys)
Gitlab Omnibus
- Update templates and cookbooks
Phase 2:
Gitlab EE
- Add tooling to move projects between shards
edit: cc/ @ayufan @jnijhof @northrup @jacobvosmaer-gitlab @DouweM @pcarranza @pacoguzman