Page MenuHomePhabricator

Goal: Allow using k8s instead of GridEngine as a backend for webservices
Closed, ResolvedPublic

Description

Part of the plan to kill Gridengine is to switch webservices to kubernetes. This goal is to allow a commandline switch that allows this to happen!

Related Objects

StatusSubtypeAssignedTask
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedbd808
DuplicateNone
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
DeclinedNone
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedbd808
OpenNone
DeclinedNone
DeclinedNone
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda
Resolvedyuvipanda

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

So I think the basic work structure of this goal is essentially two 'streams' that can kind of proceed independently:

  1. Solidfiy and improve our k8s infrastructure
  2. Roll out the newer webservice code (which is mostly already written)

When both are completed, then there's the work of tying them together, by writing a kubernetes spawner for webservice.

Tentatively, I'd like us to have rolled out the new webservice code before end of April, and our kubernetes install pretty solid by end of May.

Ok, so the new webservice code has been fully rolled out!

Next steps:

  • Whitelist only our registry
  • Provide k8s credentials for all tools
  • Build a php5.6 + lighttpd debian based container
  • Figure out API client to use for k8s (maybe write a small one)
  • Write a k8s backend for webservice!
  • Move one php webservice to k8s! nagf is a good choice here, since it's already on k8s.
Danny_B renamed this task from Goal: Allow using k8s instead of GridEngine as a backend for webservices (Tracking) to Goal: Allow using k8s instead of GridEngine as a backend for webservices (tracking).May 23 2016, 12:17 PM
Danny_B added a project: Tracking-Neverending.

tools.wmflabs.org/nagf is now running using the desired deployment process. I did it by hand, so that needs to be rolled onto the webservice package, and that's it.

Next steps:

  • Refactor toollabs-webservice so it can have multiple backends
  • Implement k8s backend for toollabs-webservice that starts/stops/restarts services
  • Provide .kube/config credentials for everyone (needs us to write a generator)

When done, to move to k8s, a tool author would need to simply do:

webservice --backend=gridengine stop
webservice --backend=k8s --environment=[php|java|python|precise|trusty|...] start

The --environment variable will provide new options with images based on debian jessie, as well as backwards compatibility options (precise/trusty, with our current set of packages). All those would need to be built and registered. Right now there's a php and java one.

Phabricator_maintenance renamed this task from Goal: Allow using k8s instead of GridEngine as a backend for webservices (tracking) to Goal: Allow using k8s instead of GridEngine as a backend for webservices.Aug 13 2016, 9:51 PM
yuvipanda claimed this task.