What the title says. We need to identify a subset of Toolforge tools that we understand to be representative of the total set of tools that we can test migrating to the POC. This will hopefully help de-risk a potential mass migration of tools if Toolforge was to be fully moved into the production infrastructure.
Description
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | None | T407296 Toolforge on bare metal POC | |||
| Open | None | T407502 Identify candidate tools to test migrating to the Toolforge on bare metal POC |
Event Timeline
I agree with @Andrew's assessment in T407296#11274680 that we won't benefit from simply selecting the "simplest" tools or the ones we think will be "easiest" to migrate. That would result in backloading all of the risk and potentially signaling that this whole effort will be easier than it really is. That said, we also want to avoid trying to make a POC so comprehensive that is actually just ends up being the entire end-product. It would be helpful to start by defining what constitutes a tool's "complexity" (i.e. is it compute needs? storage? build & deploy setup?). Maybe there is a dimension of complexity we can intentionally leave out of the POC if we know it won't be trivial but can be cleanly sliced out without affecting a majority of tools.
I maintain/co-maintain a number of tools that could be offered up for tribute here if desired:
- https://www.mediawiki.org/wiki/Wikibugs - webservice, irc bouncer, irc bot, ssh to gerrit, SSE to https://gitlab-webhooks.toolforge.org/, phabricator API polling
- https://wikitech.wikimedia.org/wiki/Tool:Stashbot - legacy python irc bot with Elasticsearch storage backend, custom k8s Deployment
- https://wikitech.wikimedia.org/wiki/Tool:SAL - legacy php webservice exposing Elasticsearch storage backend maintained by Stashbot
- https://wikitech.wikimedia.org/wiki/Tool:Bash - legacy php webservice exposing Elasticsearch storage backend maintained by Stashbot, Elasticsearch writes
- https://wikitech.wikimedia.org/wiki/Tool:Bridgebot - irc bouncer + https://github.com/42wim/matterbridge
- https://wikitech.wikimedia.org/wiki/Tool:Versions - legacy php webservice reading data from noc
- https://wikitech.wikimedia.org/wiki/Tool:Gitlab-account-approval - bot using data from gerrit, gitlab, ldap, and phabricator
- https://meta.wikimedia.org/wiki/IRC/Bots/ircservserv - irc bot
- https://wikitech.wikimedia.org/wiki/Tool:Jouncebot - legacy python irc bot
- https://wikitech.wikimedia.org/wiki/Tool:Phab-ban - legacy python webservice using OAuth to talk to Phabricator
- https://wikitech.wikimedia.org/wiki/Tool:Schedule-deployment - webservice
- https://mwdemo.toolforge.org/wiki/Main_Page - legacy webservice, MediaWiki using ToolsDB, continuous job for jobrunner, periodic job to update NFS data
"Legacy" tools use shared Docker images and NFS storage. Many (most? all?) of them could be updated to use build service containers. I have been holding off on moving things to components due to the lack of webservice support, but some could likely move without that.