Page MenuHomePhabricator

Migrate dvorapabot from Toolforge GridEngine to Toolforge Kubernetes
Closed, ResolvedPublic

Description

Kindly migrate your tool(https://grid-deprecation.toolforge.org/t/dvorapabot) from Toolforge GridEngine to Toolforge Kubernetes.

Toolforge GridEngine is getting deprecated.
See: https://techblog.wikimedia.org/2022/03/14/toolforge-and-grid-engine/

Please note that a volunteer may perform this migration if this has not been done after some time.
If you have already migrated this tool, kindly mark this as resolved.

If you would rather shut down this tool, kindly do so and mark this as resolved.

Useful Resources:
Migrating Jobs from GridEngine to Kubernetes
https://wikitech.wikimedia.org/wiki/Help:Toolforge/Jobs_framework#Grid_Engine_migration
Migrating Web Services from GridEngine to Kubernetes
https://wikitech.wikimedia.org/wiki/News/Toolforge_Stretch_deprecation#Move_a_grid_engine_webservice
Python
https://wikitech.wikimedia.org/wiki/News/Toolforge_Stretch_deprecation#Rebuild_virtualenv_for_python_users

Event Timeline

My apologies if this ticket comes as a surprise to you. In order to ensure WMCS can provide a stable, secure and supported platform, it’s important we migrate away from GridEngine. I want to assure you that while it is WMCS’s intention to shutdown GridEngine as outlined in the blog post https://techblog.wikimedia.org/2022/03/14/toolforge-and-grid-engine/, a shutdown date for GridEngine has not yet been set. The goal of the migration is to migrate as many tools as possible onto kubernetes and ensure as smooth a transition as possible for everyone. Once the majority of tools have migrated, discussion on a shutdown date is more appropriate. See T314664: [infra] Decommission the Grid Engine infrastructure.

As noted in https://techblog.wikimedia.org/2022/03/16/toolforge-gridengine-debian-10-buster-migration/ some use cases are already supported by kubernetes and should be migrated. If your tool can migrate, please do plan a migration. Reach out if you need help or find you are blocked by missing features. Most of all, WMCS is here to support you.

However, it’s possible your tool needs a mixed runtime environment or some other features that aren't yet present in https://techblog.wikimedia.org/2022/03/18/toolforge-jobs-framework/. We’d love to hear of this or any other blocking issues so we can work with you once a migration path is ready. Thanks for your hard work as volunteers and help in this migration!

It waits for some issues with K8s to be resolved. I check periodically every 3-6 months if the transition is possible.

If I remember correctly, last time I tried there was git not working properly in K8s, which is a blocker for DvorapaBot

Last time in May 7th. Result:

toolforge-bullseye-standalone based pod
line 6: git: command not found

toolforge-bullseye-sssd based pod
line 6: git: error: cannot run ssh: No such file or directory
line 6: git: fatal: unable to fork

Also there is python3-requests missing in Python pods (I know I can avoid that using venv, but this is https requests library, which is usually preferred to be installed locally installed due to security reasons). Would have to relocate my bot's environment to venv

Dvorapa subscribed.

If you use python, you can now build your own image by using a requirements.txt, that will generate the venv for you automatically.
You'll have to have your code in a public git repository, and place a requirements.txt at the root of the repository (see https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service, specifically https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Python).

Then you can use that with toolforge jobs (that run in k9s, https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Job), or as a webservice (https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Webservice).

You can also install extra packages like git using an Aptfile (https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Installing_Apt_packages).

Feel free to ask for help if you try and find issues/need some guidance.

No need for that, per https://wikitech.wikimedia.org/wiki/Help:Toolforge/Python#Jobs I can just create venv prior and the recreate it every time I need it using a toolforge job