Page MenuHomePhabricator

Request creation of deployment-prep-k8s VPS project
Closed, InvalidPublic

Description

Project Name: deployment-prep-k8s

Wikitech Usernames of requestors: jforrester, <others to come>

Purpose: Provision of a limited k8s cluster for the Beta Cluster staging system, initially for Abstract Wikipedia and later for all Beta Cluster users.

Brief description: The Beta Cluster ('deployment-prep') project currently doesn't provide a k8s cluster; individual services are either not replicated or use ad hoc systems directly on the VPS project's scb host. This means that Beta Cluster isn't as good a replica of production as we need. For the Wikifunctions project, for which most of the compute needs are done by critical back-end services, this makes it entirely useless.

I propose to create and maintain a k8s cluster, initially of the Wikifunctions services, which automatically update to the current image as they are produced in the docker registry. A big part of the work will be tuning the k8s config to severely limit the load that users can add to the system (which is also a need for production). If this system works, we can expand it to cover all the services currently mocked or ignored for the Beta Cluster; if it doesn't, we can kill it off.

Ideally we'd do this just inside the deployment-prep project, but as this is an experiment and will be a bit more automated I thought we should do it differently. This is a VPS request rather than a Toolforge project because of rule 6, per T289315#7486337, and because rather than the bespoke toolforge-limited ones we need to use our Wikimedia-level docker-registry images, which are banned there.

How soon you are hoping this can be fulfilled: Soon please; this blocks Beta Cluster deployment of Wikifunctions.

Event Timeline

In my understanding "beta cluster" refers to deployment-prep and not integration. The first hosts vms related to https://meta.wikimedia.beta.wmflabs.org/wiki/Main_Page and friends and the second hosts vms for use by the Jenkins CI system.

I'm not sure I understand how splitting out the much needed Kubernetes cluster for deployment-prep into a separate Cloud VPS project will make it safer to construct or easier to manage. Can we not just add quota to deployment-prep to support whatever size k8s cluster is being proposed for the initial integration?

In my understanding "beta cluster" refers to deployment-prep and not integration. The first hosts vms related to https://meta.wikimedia.beta.wmflabs.org/wiki/Main_Page and friends and the second hosts vms for use by the Jenkins CI system.

Bleh, sorry, yes, I meant deployment-prep.

I'm not sure I understand how splitting out the much needed Kubernetes cluster for deployment-prep into a separate Cloud VPS project will make it safer to construct or easier to manage. Can we not just add quota to deployment-prep to support whatever size k8s cluster is being proposed for the initial integration?

We could? I'd be happy to just do this within the deployment-prep auspices if that's fine with the WMCS admins, I just didn't want to boldly make a mess without it being OK.

Jdforrester-WMF renamed this task from Request creation of integration-k8s VPS project to Request creation of deployment-prep-k8s VPS project.Nov 10 2021, 3:29 PM
Jdforrester-WMF updated the task description. (Show Details)

I'm not sure I understand how splitting out the much needed Kubernetes cluster for deployment-prep into a separate Cloud VPS project will make it safer to construct or easier to manage. Can we not just add quota to deployment-prep to support whatever size k8s cluster is being proposed for the initial integration?

We could? I'd be happy to just do this within the deployment-prep auspices if that's fine with the WMCS admins, I just didn't want to boldly make a mess without it being OK.

The only involvement that the WMCS team has with deployment-prep is handling tickets to change quota and keeping the shared OpenStack services available. T215217: deployment-prep (beta cluster): Code stewardship request

Yeah, let's just do this within the existing project, if that's OK with the WMCS admins.