Provide multiple git mount points
TODOS:
Phase 1:
Gitlab CE
MRs: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4657/builds https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4578
-
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
MR: gitlab-org/gitlab-shell!61 (merged)
-
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 (see gitlab-org/omnibus-gitlab#1362 (closed))
Phase 2:
Gitlab EE
-
Add tooling to move projects between shards
cc/ @ayufan @jnijhof @northrup @jacobvosmaer-gitlab @DouweM @pcarranza @pacoguzman