For the upcoming migration of Gerrit behind the CDN (T365259), the suggested approach is to first separate the hostnames for HTTPS traffic and SSH/Git traffic (see T365259#10820392). The proposal is to use gerrit.wikimedia.org for HTTPS and a new hostname like gerrit-git.wikimedia.org (tbd) for SSH/Git.
Implementing this change would require a lot of refactoring across various tools and automation in CI, Puppet, and local repository git configurations. It might be possible to drop the 29418 port and use the default port 22 for gerrit-git.wikimedia.org, which would keep the user experience at least consistently awkward. However this would make the grace period more complicated because the service has to listen on both ports.
A grace period could be established where both endpoints remain functional to allow users sufficient time to switch to the new hostname. After this period, SSH on the old hostname support could be removed. Testing could begin with the replica to test any unexpected behavior before proceeding to the production host.
The rough outline could look like that:
- Discuss with RelEng if a change of hostname is reasonable (for volunteers, staff and tooling)
- Add new hostnames
-
gerrit-git.wikimedia.orggerrit-ssh.wikimedia.org (tbd) -
gerrit-replica-git.wikimedia.orggerrit-replica-ssh.wikimedia.org (tbd)
-
- Enable SSH/GIT on replica
- Enable SSH/GIT on production host
- Inform users about upcoming change and announce date for action required
- write tutorial for users how to change git config
- update all tooling to use new hostname
- Remove support for SSH/GIT on old hostname on replica
- Remove support for SSH/GIT on old hostname on production host
- Repeat for GitLab :)