Conversation: Internal Mirroring
-
~"Client Preparation": #586 (closed) #587 (closed) https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14772 #739 (closed) #816 (closed) -
~"Client Implementation": #852 (closed) -
~"Acceptance Testing": #858 (closed)
Blocked On:
- #585 (closed)
- Server implementation of #665 (closed)
Move 'gitlab-projects mv-storage' into Gitlab::Git and stop using rsync
Moving projects between 'storages' (read: Gitaly servers) is an EE-only feature. https://gitlab.com/gitlab-org/gitlab-ee/blob/master/app/services/projects/update_repository_storage_service.rb
One part of this process is to run rsync from the old location to the new location. The rsync command is wrapped by a gitlab-shell command: gitlab-projects mv-storage
.
How do we migrate this? Options.
git fetch
1. Rewrite mv-storage to use Pro
- we already have the RPC's to do
git fetch
via gRPC (our mock SSH transport)
Con
- means rewriting the current rsync code
2. Create an RPC to support rsync remote execution
Pro
- We can use the same rsync command we already have and which we know to work
Con
- We need to create a new RPC for rsync, similar to our SSH RPC's