Page MenuHomePhabricator

Figure out future for newly created deployment-prep jessie instances
Closed, ResolvedPublic

Description

So (per post to cloud-announce) jessie instance creation is disabled (see T218119: Disable jessie VM creation in VPS). However, deployment-sessionstore01 and deployment-eventgate-analytics-1 were recently created, using jessie. That can only be a short-term solution as jessie is scheduled for deprecation next year.
For the purposes of this task I assume older jessie instances were just created long enough ago that stretch was not an option, so just need a more trivial migration. These ones seem to have been done deliberately with jessie so may need more thought.

Event Timeline

<Krenair> ottomata, hi, I was wondering if you made deployment-eventgate-analytics-1 be jessie for any particular reason
<Krenair> is this mirroring a prod jessie setup?
<Krenair> just looking at the recent jessie instance creations in deployment-prep
<ottomata> Krenair:  it uses the docker_service stuff
<ottomata> so it runs docker machine
<ottomata> which iiuc is not avialable in stretch
<Krenair> ok
<Krenair> are you likely to need to make another in the future?
<ottomata> its possible ya, 
<Krenair> well
<ottomata> urandom just made one too
<ottomata> for another service
<Krenair> I saw, hadn't got to that yet
<Krenair> the thing is they're about to disable (may have already disabled?) jessie instance creation
<Krenair> so new things should be stretch
<Krenair> and existing things will need to be ported in order to have a future
<ottomata> https://github.com/wikimedia/puppet/blob/73aabd204810f1ba9212431cf84b220dfedb7340/modules/profile/manifests/docker/engine.pp
<ottomata> it look slike there is some stretch special casing in there
<ottomata> i don't remember exactly, but it didn't work
<ottomata> need to ping _joe_ on that one I think
<Krenair> ok
<ottomata> Krenair:  ah i have a message from urandom a few days ago
<ottomata> "for point of reference, the reason a docker_services using VM must be jessie is because it relies on the docker-engine package in jessie"

Jessie creation is now disabled in most projects (including deployment-prep). I'd prefer to leave it that way in order to provide some mild resistance to new Jessie VMs showing up in the cloud.

That said, enabling it for creation of select special VMs is easy -- just ping me and remind me that I documented how to do it in T218119.

Jessie creation is now disabled in most projects (including deployment-prep). I'd prefer to leave it that way in order to provide some mild resistance to new Jessie VMs showing up in the cloud.

That said, enabling it for creation of select special VMs is easy -- just ping me and remind me that I documented how to do it in T218119.

I'd ask that that not be permitted within deployment-prep unless the intent is to specifically mirror an existing production setup that is using jessie. In such a case it could be enabled for just long enough to make the approved instance and then removed again. This is so we'd avoid people accidentally creating jessie instances where the implications involved are unknown, and to prevent someone who's tried stretch and had problems making something work simply switching to jessie and kicking the migration can down the road/over to someone else.
https://wikitech.wikimedia.org/wiki/Operating_system_upgrade_policy#Policy_proposal - while still technically a proposal, I expect it will get approved largely as-is - lists jessie as deprecated since a year ago.

I don't really know why stretch won't work, are we sure that's the case?

I can't remember exactly, but it didn't when I tried months ago. We should try again.

Ok so I can now confirm:

this all works on stretch. I've successfully installed deployment-docker-mathoid01 with stretch and managed to make mathoid run there:

deployment-docker-mathoid01:~$ curl -s localhost:10044/_info | jq .
{
  "name": "mathoid",
  "version": "0.7.1",
  "description": "Render TeX to SVG and MathML using MathJax. Based on svgtex.",
  "home": "https://github.com/wikimedia/mathoid"
}

The only caveat is that apparently you need to rrun puppet once, run apt-get update, run puppet again to make it work.

GREAT I just made a stretch instance deployment-eventgate-1, and will move eventgate-analytics there. I will also run eventgate-main there in a different container, but I need to use the same image for both!

https://gerrit.wikimedia.org/r/c/operations/puppet/+/509141

I verified that this works. I had to run puppet, apt-get update, run puppet, and then run puppet again before it worked, but it did! :)

@Eevans as creator of deployment-sessionstore01 please can you take care of that one per the above?

I made deployment-sessionstore02 for it but couldn't get cassandra to work yet.

I pressed some buttons and it started. Success?

@Eevans: It has been 6 months, please respond.

I've just found https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/546731/1 which made a new service in the MW config called echostore and pointed it at the new instance. Is there any reason we can't point the sessionstore service at it and shut down the old instance? Is there some data migration that needs doing?

Change 559279 had a related patch set uploaded (by Eevans; owner: Eevans):
[operations/mediawiki-config@master] deployment-prep: Create new test instances of Kask

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

@Eevans: It has been 6 months, please respond.

Sorry, I never noticed this ticket (I'm not sure why). I think I re-used deployment-sessionstore02 for echo seen-time storage thinking it had been mistakenly created.

I just created two new VMs (one to replace the Jessie instance, and the other so that the echo instance isn't so confusingly named). Once https://gerrit.wikimedia.org/r/559279 is deployed I'll shut down deployment-sessionstore0[1-2].

Change 559279 merged by jenkins-bot:
[operations/mediawiki-config@master] deployment-prep: Create new test instances of Kask

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

This is now done. Sorry for the long delay.