Page MenuHomePhabricator

Deprecate git-ssh service on phabricator.wikimedia.org
Closed, ResolvedPublic

Description

We now have 3 git hosting systems. Phabricator is not the authoritative place to host most repositories.

The git-ssh service on phabricator is barely used and because it uses pybal, it's a significant amount of extra maintenance burden for serviceops every time there is a server or datacenter migration or hardware upgrade.

We should consider deprecating this service. We would still have git over https for projects that still use phabricator.

Before doing this, we should evaluate actual usage and identify any repos / users who are using git-ssh so that we can give notice and help users to migrate before we shut it down.

  • Find users who are still dependent on this service
  • Migrate affected users to https or to gitlab.
    • deactivate active but empty repos
    • deactivate obviously abandoned / test repos with minimal commits
    • migrate iltools repo to gitlab
    • migrate WikiSP: MediaWiki Config to gitlab (T296108)
    • striker repos are migrated or have no more ssh:// cloning
    • mediawiki extension repos, same as above

Details

SubjectRepoBranchLines +/-
operations/puppetproduction+2 -1
operations/puppetproduction+0 -48
operations/puppetproduction+0 -15
operations/puppetproduction+0 -1
operations/puppetproduction+1 -1
operations/puppetproduction+0 -14
operations/dnsmaster+0 -3
operations/puppetproduction+0 -28
operations/puppetproduction+0 -4
operations/puppetproduction+2 -2
operations/puppetproduction+5 -6
operations/puppetproduction+20 -19
operations/puppetproduction+8 -5
operations/puppetproduction+8 -2
operations/puppetproduction+9 -2
operations/puppetproduction+17 -5
operations/puppetproduction+16 -6
Show related patches Customize query in gerrit

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Thank you @awight :) Gotcha! So for now, even without migrating, it will still be possible to push to the repo, just not via ssh. It's still possible to push via https. That's the only change I will make here for now. Greetings and all the best, Daniel

Change 778366 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: allow disabling ssh-phab service except on one host

https://gerrit.wikimedia.org/r/778366

Change 778366 merged by Dzahn:

[operations/puppet@production] phabricator: allow disabling ssh-phab service except on one host

https://gerrit.wikimedia.org/r/778366

Change 823755 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: move lvs::realserver inclusion to profile, depend on vcs_enabled

https://gerrit.wikimedia.org/r/823755

Change 823755 merged by Dzahn:

[operations/puppet@production] phabricator: move lvs::realserver inclusion to profile, create use_lvs parameter

https://gerrit.wikimedia.org/r/823755

Change 824319 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: fix location of hosts files, ensure services stopped on new

https://gerrit.wikimedia.org/r/824319

Change 824319 merged by Dzahn:

[operations/puppet@production] phabricator: fix location of hosts files, ensure services stopped on new

https://gerrit.wikimedia.org/r/824319

Change 824798 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: move vcs and LVS settings from common to phab2001

https://gerrit.wikimedia.org/r/824798

Change 824798 merged by Dzahn:

[operations/puppet@production] phabricator: move vcs and LVS settings from common to phab2001

https://gerrit.wikimedia.org/r/824798

Change 826360 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: move LVS IPs for git-ssh service from role/eqiad to phab1001

https://gerrit.wikimedia.org/r/826360

Change 826360 merged by Dzahn:

[operations/puppet@production] phabricator: move LVS IPs for git-ssh service from role/eqiad to phab1001

https://gerrit.wikimedia.org/r/826360

Change 831627 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/dns@master] disable git-ssh.wikimedia.org

https://gerrit.wikimedia.org/r/831627

Dzahn updated the task description. (Show Details)
Dzahn added a subscriber: bd808.

striker repos have been migrated:) (Thanks @bd808!)

Hmm. now..I still notice the "mediawiki extension repos" check box.

Mentioned in SAL (#wikimedia-operations) [2022-09-12T22:23:11Z] <mutante> phabricator - disabling repositories: tool-xh-bot, tool-editor-contribution-dashboard, tool-ranker, tool-editor-contribution, tool-mikasa-bot-1, tool-maintun, tool-add-text, tool-wikibookassamese-book.php (none of them had commits) T296022 - T315706

Mentioned in SAL (#wikimedia-operations) [2022-09-12T22:53:29Z] <mutante> phabricator - disabling MediaWiki extension repositories in Diffusion that have 0 commits - T296022 - T315706

Something has gone wrong. My attempt to do a git push results in fatal: unable to access 'http://phabricator.wikimedia.org/source/tool-milhistbot.git/': The requested URL returned error: 403.

No prompt is issued for a userid/.password

Something has gone wrong. My attempt to do a git push results in fatal: unable to access 'http://phabricator.wikimedia.org/source/tool-milhistbot.git/': The requested URL returned error: 403.

No prompt is issued for a userid/.password

That is unrelated to this task. tool-milhistbot is now hosted on GitLab, and Diffusion just has a mirror. See T315706: Migrate existing Striker created Diffusion repos to GitLab and the announcment.

Yep, what you can expect to happen soon _for this task_ would be for git-ssh.wikimedia.org to disappear from DNS and simply not exist.

But that would only affect pushing via ssh, not via https.

tool-* repos have moved to Gitlab as JJMC89 said. Your repo is now here: https://gitlab.wikimedia.org/rmallett/tool-milhistbot

Yes, it has moved to Gitlab so now I cannot upload to it. :(

@Hawkeye7: Again, this is unrelated. It's off-topic for this task. See T320216 instead. Thanks.

Does the move to gitlab mean that we can use ssh again instead of https?

You can use either ssh or https with either Gerrit or Gitlab. What's going away is repos hosted on Phabricator.

Mentioned in SAL (#wikimedia-operations) [2022-10-11T20:27:23Z] <mutante> depooling git-ssh service backends with confctl - T296022

Mentioned in SAL (#wikimedia-operations) [2022-10-11T21:36:53Z] <mutante> phab1001 / phab2001 - temp. disabled puppet; stopped ssh-phab service; scheduled icinga downtimes for ssh-phab pybal backend alerts - effectively "soft shutting down" the service - T296022

Change 841587 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: stop ssh-phab service

https://gerrit.wikimedia.org/r/841587

Change 841587 merged by Dzahn:

[operations/puppet@production] phabricator: stop ssh-phab service

https://gerrit.wikimedia.org/r/841587

Change 843522 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] remove git-ssh from common/service.yaml

https://gerrit.wikimedia.org/r/843522

shutdown was announced in today's SRE meeting

Change 843567 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] conftool-data: remove phabricator / git-ssh

https://gerrit.wikimedia.org/r/843567

Change 843567 merged by Dzahn:

[operations/puppet@production] conftool-data: remove phabricator / git-ssh

https://gerrit.wikimedia.org/r/843567

Change 843522 merged by Dzahn:

[operations/puppet@production] remove git-ssh from common/service.yaml

https://gerrit.wikimedia.org/r/843522

Mentioned in SAL (#wikimedia-operations) [2022-10-19T20:38:24Z] <mutante> puppetmaster1001/puppetmaster2001 - delete .git-*.err files in /var/run/confd-template T296022

Mentioned in SAL (#wikimedia-operations) [2022-10-19T20:44:55Z] <mutante> lvs1020, lvs1018 - systemctl restart pybal.service ; ipvsadm -Dt '208.80.154.250:22' ; ipvsadm -Dt '[2620:0:861:ed1a::3:16]:22' - T296022

Mentioned in SAL (#wikimedia-operations) [2022-10-19T20:49:35Z] <mutante> lvs2010, lvs2008 - systemctl restart pybal.service ; ipvsadm -Dt '208.80.153.250:22' ; ipvsadm -Dt '[2620:0:860:ed1a::3:fa]:22' - T296022

service has actually been removed from LVS/pybal/conftool now. (thanks bblack for help!)

pending DNS removal, then completed

Change 831627 merged by Dzahn:

[operations/dns@master] remove git-ssh.wikimedia.org

https://gerrit.wikimedia.org/r/831627

Mentioned in SAL (#wikimedia-operations) [2022-10-20T16:20:56Z] <mutante> phab1001 (phabricator) - remove LVS IP from loopback - ip addr del 208.80.154.250 dev lo - T296022

Mentioned in SAL (#wikimedia-operations) [2022-10-20T17:46:13Z] <mutante> phabricator - disabling git-ssh URIs for repo 'phabricator-translations' https://phabricator.wikimedia.org/source/phabricator-translation - T296022

Mentioned in SAL (#wikimedia-operations) [2022-11-10T19:54:44Z] <mutante> netbox - deleting special case phab2001-vcs.codfw.wmnet IPv4 (10.192.32.149) and IPv6 (2620:0:860:103:10:192:32:149) - T296022 - T322250

Mentioned in SAL (#wikimedia-operations) [2022-12-05T21:59:32Z] <mutante> deleting special DNS entries for "phab10010-vcs.eqiad.wmnet", IPv4 and IPv6 (Role: VIP), from netbox and syncing netbox data - T296022

Change 875450 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: remove vcs_addresses parameter and warnings

https://gerrit.wikimedia.org/r/875450

Change 875450 merged by Dzahn:

[operations/puppet@production] phabricator: remove vcs_addresses parameter and warnings

https://gerrit.wikimedia.org/r/875450

Change 875987 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator::vcs: comment out warning about empty listen address

https://gerrit.wikimedia.org/r/875987

Change 875987 merged by Dzahn:

[operations/puppet@production] phabricator::vcs: comment out warning about empty listen address

https://gerrit.wikimedia.org/r/875987

The operations/puppet repo still has

./modules/profile/manifests/phabricator/main.pp:         { 'default_value' => 'git-ssh.wikimedia.org' }),
./modules/profile/manifests/phabricator/main.pp:    # This exists to offer git services at git-ssh.wikimedia.org.
./hieradata/cloud/eqiad1/devtools/hosts/phabricator-prod-1001.yaml:# all other IPs are used by phabricator::vcs (aka git-ssh.wikimedia.org)

@Dzahn: If you know, should these entries be removed?

@Aklapper Yea, weak "yes". The cloud one, sure, just a comment and not relevant anymore. The other one, we can, but then we need to remove the entire "$enable_vcs" parameter and support. so also:

modules/phabricator/manifests/init.pp:    Boolean                 $enable_vcs         = undef,
modules/phabricator/manifests/init.pp:    if $enable_vcs {

..and then there is more..like $vcs_ip_v4 and $vcs_ip_v6 and $use_lvs...

..and after that you find deployment vars like "vcs" database name and user.. and then need a deployment...

also the entire "phabricator::vcs" class is useless if we do that

it never ends:

data/fixed_settings.yaml:diffusion.ssh-user: 'vcs'
files/phab_deploy_config_deploy.sh:sudo chgrp phd "$SCAP_REV_PATH"/phabricator/conf/local/vcs.json
templates/vcs/phabricator-ssh-hook.sh.erb:VCSUSER=<%= @vcs_user %>
templates/vcs/sshd_config.phabricator.erb:AuthorizedKeysCommandUser <%= @vcs_user %>
templates/vcs/sshd_config.phabricator.erb:AllowUsers <%= @vcs_user %>

Change 983871 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] devtools/phabricator: remove comment about git-ssh vcs service

https://gerrit.wikimedia.org/r/983871

Change 983871 merged by Dzahn:

[operations/puppet@production] devtools/phabricator: remove comment about git-ssh vcs service

https://gerrit.wikimedia.org/r/983871

@Dzahn: Eh, sorry if I opened a can of worms. Feel free to leave as-is then?

@Aklapper Well... let me take a look, something in between. We don't have to delete the entire class, but we should clean this thing up:

hieradata/role/eqiad/phabricator.yaml:phabricator::vcs::enable: true

because it makes no sense to have that set only if in eqiad.

And I want to check now if there is any change when removing that.

Change 983955 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: remove enable_vcs parameter set in eqiad-only

https://gerrit.wikimedia.org/r/983955

Change 983957 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: remove support for separate git-ssh IP behind LVS

https://gerrit.wikimedia.org/r/983957

Change 983958 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] phabricator: remove sshd config for git-ssh service

https://gerrit.wikimedia.org/r/983958

Change 983957 merged by Dzahn:

[operations/puppet@production] phabricator: remove support for separate git-ssh IP behind LVS

https://gerrit.wikimedia.org/r/983957

Change 983958 merged by Dzahn:

[operations/puppet@production] phabricator: remove sshd config for git-ssh service

https://gerrit.wikimedia.org/r/983958

The operations/puppet repo still has

./modules/profile/manifests/phabricator/main.pp:         { 'default_value' => 'git-ssh.wikimedia.org' }),
./modules/profile/manifests/phabricator/main.pp:    # This exists to offer git services at git-ssh.wikimedia.org.
./hieradata/cloud/eqiad1/devtools/hosts/phabricator-prod-1001.yaml:# all other IPs are used by phabricator::vcs (aka git-ssh.wikimedia.org)

@Dzahn: If you know, should these entries be removed?

@Aklapper Amended to patches, talked to Brennen about it, merged.. complete noop confirmed. The stuff you asked about is gone now.done

Change 983955 merged by Dzahn:

[operations/puppet@production] phabricator: move enable_vcs parameter from eqiad-only to role

https://gerrit.wikimedia.org/r/983955