Page MenuHomePhabricator

[tbs.webservice] Modify the webservice cli to allow the deployment of custom images from harbor
Closed, ResolvedPublic5 Estimated Story Points

Description

Users need to be able to:

  • Deploy a new webservice with a buildpack based image
  • Stop it
  • Restart it

(essentially, the same current functionality that we have for any other k8s webservice)

Note that this task might include packaging and releasing a new version of the webservice command for toolsbeta.

Repository for the webservice cli: https://gerrit.wikimedia.org/r/admin/repos/operations/software/tools-webservice

Event Timeline

dcaro removed dcaro as the assignee of this task.Oct 19 2021, 1:46 PM
dcaro removed a project: User-dcaro.
dcaro moved this task from To refine to Refined on the User-dcaro board.
dcaro renamed this task from [webservice] Add a way to deploy a buildpack image based webservice to [tbs.webservice] Modify the webservice cli to allow the deployment of custom images from harbor.Aug 26 2022, 8:21 AM
dcaro removed a subscriber: Bstorm.

Change 857588 had a related patch set uploaded (by Raymond Ndibe; author: Ndibe Raymond Olisaemeka):

[operations/software/tools-webservice@master] webservice cli: allow for deployment of custom harbor images

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

Hello @dcaro , judging by the number of varying suggestions about the best way to implement this feature, it'd be beneficial if we can have a more detailed discussion about it before going forward.

From my finding, every image currently supported by the kubernetes backend have a copy of the webservice-runner.py script. can we reasonably expect the harbor images to also have a copy of the webservice-runner.py script (or some variant of that)?

Can you explain how this feature is expected to function (atleast in your mind)?

Hey, so it's simpler than it looks.

For images that are running in k8s, all you need is for them to have a port (8000 iirc), and that is it.

They don't need to run the webservice cli at all, as they don't need to self register in the proxy (that was required for the ones running in the grid).

So, in essence, you start them the same way as any other, create a port + service (same as the existing ones), but instead of passing a command to execute, just let the image run the entry point it has (that is, pass no command).

The fact that all the images currently have the copy of the webservice-runner.py script is a limitation of the current process, that we don't have for builpack-generated images.

If it's not yet clear to you, we can try to start a webservice together tomorrow.

Change 857588 merged by jenkins-bot:

[operations/software/tools-webservice@master] webservice cli: allow for deployment of custom harbor images

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