News/Toolforge Grid Engine deprecation

From Wikitech
Jump to navigation Jump to search

This page contains information about the deprecation and removal of the Toolforge Grid Engine platform.

What is changing?

While no specific date has been set, the Grid Engine cluster will be decommissioned once all tools have been migrated off the Grid.

The Toolforge admins are working with maintainers, collecting blocking issues, and assisting in moving tools off the Grid.

This work is being tracked on the Phabricator workboard

Timeline

This is a rough timeline and could be taken as simple date placeholders. We hope that future edits to this section may introduce more precision.

  • FY21/22 Q2 (Oct-Dec 2021): finish work & release the Toolforge Jobs Framework. Continue working on Toolforge buildpacks. Migrate Son of Grid Engine to Debian Buster.
  • FY22/23 Q2 (Oct-Dec 2022): Ask community to begin migrating tools. Collect blocking issues.
  • FY22/23 Q3 (Jan-Mar 2023): Add features to support identified blocking issues. Explore k8s a service as potential migration path phab:T328712 ? Tool migrations continue.
  • FY22/23 Q4 (Apr-Jun 2023): Toolforge buildpacks beta. See phab:T267374 Tool migrations continue.
  • FY23/24 Q1 (Jul-Sep 2023): Toolforge buildpacks multipack support work. See phab:T325799 . Tool migrations continue.
  • FY23/24 Q2 (Oct-Dec 2023): Most tools are able to be migrated?

What should I do?

You have a couple of options:

Use case continuity

The following table tracks use case continuity.

Moving from Toolforge GridEngine to Toolforge Kubernetes
Feature Grid Engine Kubernetes Comment
job scheduling jsub or jstart Toolforge jobs
One off jobs or continuous jobs
Example:

From GridEngine

5 * * * * jsub -once -N name-of-tool $HOME/user/bot.php >/dev/null 2>&1

To Kubernetes

$ toolforge-jobs run name-of-tool --command ./user/bot.php --image php7.4 --schedule "5 * * * *"
web services webservice specify an image and 'kubernetes' as the backend Example:

From GridEngine

$ webservice --backend=gridengine start

To Kubernetes

$ webservice stop
$ webservice --backend=kubernetes php7.4 start
Multi-language tools Native Toolforge buildpacks Some single language tools will need updated or new images (like dotnet)

Why are we doing this?

As outlined in our series of blog posts, Toolforge is powered by two different backend engines, Kubernetes and Grid Engine. These two backends have traditionally offered different features for tool developers. But as time moves forward we’ve learnt that Kubernetes is the future.

See more for a detailed explanation.

Solutions to common problems

Rebuild virtualenv for Python users / python3: not found

Python virtual environments ("venvs") are tied to the underlying system where they are running. Because of that, you will need to delete and re-create your virtual environments using these instructions.

Tools needing multiple language runtimes

Work is underway with the buildpack project.

Mono container

Using mono? See discussion on a Mono specific container phab:T311466

Requires a system library or tool to be present

If you believe this depedency makes sense to have in the base container, file a ticket. For example, mysqldump phab:T254636, resolved.

For other needs, note that buildpack project will support more nuanced and custom container setups.

Pywikibot image

Running pywikibot in the suggest setup Help:Toolforge/Pywikibot#Using_the_shared_Pywikibot_files_(recommended_setup) ?

See phab:T249787 for discussion on a dedicated image for this use case

Delete a tool

Some tools were experiments that are done, others were made obsolete by other tools, some are just things that the original maintainer is tired of caring for. Maintainers can mark their tools for deletion using the "Disable tool" button on the tool's detail page on https://toolsadmin.wikimedia.org/. Disabling a tool will immediately stop any running jobs including webservices and prevent maintainers from logging in as the tool. Disabled tools are archived and deleted after 40 days. Disabled tools can be re-enabled at any time prior to being archived and deleted.

See also

Communication and support

Support and administration of the WMCS resources is provided by the Wikimedia Foundation Cloud Services team and Wikimedia Movement volunteers. Please reach out with questions and join the conversation:

Discuss and receive general support
Receive mail announcements about critical changes
Subscribe to the cloud-announce@ mailing list (all messages are also mirrored to the cloud@ list)
Track work tasks and report bugs
Use a subproject of the #Cloud-Services Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself
Learn about major near-term plans
Read the News wiki page
Read news and stories about Wikimedia Cloud Services
Read the Cloud Services Blog (for the broader Wikimedia movement, see the Wikimedia Technical Blog)