Page MenuHomePhabricator

Refresh integration/zuul/deploy to work on Debian Bullseye
Closed, ResolvedPublic

Description

Zuul is deployed by scap from integration/zuul/deploy which hold all the python dependencies in a tarball. Refreshing the dependencies is done via a Makefile and a docker image. As part of upgrading the underlying OS from Buster โ†’ Bullseye (T334517) we need to make sure the system still works properly and adjust it for Bullseye.

There are a few steps:

  • We need a python2.7 build image based on Bullseye
  • Build artifacts for Bullseye
  • The python2.7 provided by Bullseye is a minimal one, we might be missing modules?
  • Test it on a WMCS instance! In the end we tested the generated Python wheels using containers. We managed to install and start a basic Zuul server/merger pair on bullseye containers

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
operations/puppetproduction+1 -1
integration/zuul/deploymaster+71 -0
integration/zuul/deploymaster+107 -11
integration/configmaster+7 -26
operations/docker-images/production-imagesmaster+9 -4
integration/configmaster+24 -59
operations/docker-images/production-imagesmaster+21 -1
operations/docker-images/production-imagesmaster+7 -1
operations/docker-images/production-imagesmaster+5 -5
operations/docker-images/production-imagesmaster+20 -0
operations/puppetproduction+3 -0
operations/docker-images/production-imagesmaster+32 -0
integration/zuul/deploymaster+2 -2
operations/docker-images/production-imagesmaster+45 -0
integration/zuul/deploymaster+6 -0
integration/zuul/deploymaster+4 -0
integration/zuul/deploymaster+1 -1
integration/zuul/deploymaster+7 -0
integration/configmaster+99 -0
Show related patches Customize query in gerrit

Event Timeline

Restricted Application added a subscriber: Aklapper. ยท View Herald TranscriptJul 20 2023, 1:30 PM
Jdforrester-WMF renamed this task from Refresh integration/zuul/deploy makefile to Refresh integration/zuul/deploy makefile to work on Debian Bullseye.Jul 20 2023, 2:11 PM
hashar renamed this task from Refresh integration/zuul/deploy makefile to work on Debian Bullseye to Refresh integration/zuul/deploy to work on Debian Bullseye.Jul 20 2023, 2:17 PM

Change 940157 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/docker-images/production-images@master] python-build: set date of source files in the wheel

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

Change 940161 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/docker-images/production-images@master] python-build: provide a python2 Bullseye image

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

Change 940167 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/zuul/deploy@master] Add missing frozen requirements

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

Change 940168 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/zuul/deploy@master] Add support to build with podman

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

Change 940169 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/zuul/deploy@master] Output diff of the list of wheels held in artifacts

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

Change 940170 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/zuul/deploy@master] Add frozen-requirements.txt as a target

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

Change 940950 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] Add job for integration/zuul/deploy

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

Change 940950 merged by jenkins-bot:

[integration/config@master] Add job for integration/zuul/deploy

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

Change 940168 merged by jenkins-bot:

[integration/zuul/deploy@master] Add support to build with podman

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

Change 940170 merged by jenkins-bot:

[integration/zuul/deploy@master] Add frozen-requirements.txt as a make target

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

Change 940167 merged by jenkins-bot:

[integration/zuul/deploy@master] Add missing frozen requirements

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

Change 940169 merged by jenkins-bot:

[integration/zuul/deploy@master] Output diff of the list of wheels held in artifacts

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

Change 941443 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/docker-images/production-images@master] python-build: ensure frozen-requirements is exhaustive

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

Change 941444 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/docker-images/production-images@master] python-build: rebuild images for recent changes

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

https://gerrit.wikimedia.org/r/c/operations/docker-images/production-images/+/940161 creates a Python 2 Docker image based on Bullseye. Since Debian Bullseye no more endorses Python 2.7, pip is no more packaged there. That makes it impossible to ship the python modules Zuul depends on:

apt install python-pip
2023-07-26 10:59:32 [docker-pkg-build] INFO - Package python-pip is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  python3-pip (drivers.py:106)

There is at least one dependency (pycrypto, dependency of Paramiko) which requires compilation against system libs.

Change 941904 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/zuul/deploy@master] Add wheels for Debian Bullseye

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

thcipriani changed the task status from Open to In Progress.Aug 16 2023, 3:34 PM
thcipriani triaged this task as Medium priority.

Change 940161 merged by EoghanGaffney:

[operations/docker-images/production-images@master] python-build: provide a python2 Bullseye image

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

Change 940157 abandoned by Hashar:

[operations/docker-images/production-images@master] python-build: set date of source files in the wheels

Reason:

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

Change 941443 abandoned by Hashar:

[operations/docker-images/production-images@master] python-build: ensure frozen-requirements is exhaustive

Reason:

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

Change 941444 abandoned by Hashar:

[operations/docker-images/production-images@master] python-build: rebuild images for recent changes

Reason:

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

Change 941904 abandoned by Hashar:

[integration/zuul/deploy@master] Add wheels for Debian Bullseye

Reason:

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

Change 941904 restored by Hashar:

[integration/zuul/deploy@master] Add wheels for Debian Bullseye

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

Change 941904 abandoned by Hashar:

[integration/zuul/deploy@master] Add wheels for Debian Bullseye

Reason:

In favor of https://gerrit.wikimedia.org/r/c/integration/zuul/deploy/+/1002466

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

Change 940157 restored by Hashar:

[operations/docker-images/production-images@master] python-build: set date of source files in the wheels

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

Change 941443 restored by Hashar:

[operations/docker-images/production-images@master] python-build: ensure frozen-requirements is exhaustive

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

Change 941444 restored by Hashar:

[operations/docker-images/production-images@master] python-build: rebuild images for recent changes

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

Change 941444 abandoned by Hashar:

[operations/docker-images/production-images@master] python-build: rebuild images for recent changes

Reason:

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

Change 1002997 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/docker-images/production-images@master] python-build: default to run as nobody from /deploy

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

Change 1003002 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/docker-images/production-images@master] python-build: add make and virtualenv

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

Change 1002461 had a related patch set uploaded (by Jaime Nuche; author: Jaime Nuche):

[operations/puppet@production] support Zuul v2 on bullseye contint hosts

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

Change 1002461 merged by Muehlenhoff:

[operations/puppet@production] support Zuul v2 on bullseye contint hosts

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

Change 1003437 had a related patch set uploaded (by Jaime Nuche; author: Jaime Nuche):

[integration/config@master] jjb: overhaul Zuul deploy jobs

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

Change 1002466 had a related patch set uploaded (by Jaime Nuche; author: Jaime Nuche):

[integration/zuul/deploy@master] generate Python2 wheels for bullseye targets

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

Change 1002997 merged by Clรฉment Goubert:

[operations/docker-images/production-images@master] python-build: default to run as nobody from /deploy

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

Change 1003002 merged by Clรฉment Goubert:

[operations/docker-images/production-images@master] python-build: add lsb-release, make and virtualenv

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

Change 940157 merged by Clรฉment Goubert:

[operations/docker-images/production-images@master] python-build: set date of source files in the wheels

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

Change 941443 merged by Clรฉment Goubert:

[operations/docker-images/production-images@master] python-build: ensure frozen-requirements is exhaustive

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

Change 1003437 merged by jenkins-bot:

[integration/config@master] jjb: overhaul Zuul deploy jobs

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

Change 1004754 had a related patch set uploaded (by Jaime Nuche; author: Jaime Nuche):

[operations/docker-images/production-images@master] match `pip2` path used by common `run.sh`

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

Change 1004754 merged by Clรฉment Goubert:

[operations/docker-images/production-images@master] use `pip` of current Python installation in common `run.sh`

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

Mentioned in SAL (#wikimedia-operations) [2024-02-20T14:21:46Z] <claime> launching build-production-images - T342346

Change 1005116 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/zuul/deploy@master] Dockerfile to "run" Zuul with bullseye

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

Change 1005499 had a related patch set uploaded (by Jaime Nuche; author: Jaime Nuche):

[integration/config@master] jjb: simplify Zuul deploy jobs

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

Change 1005499 merged by jenkins-bot:

[integration/config@master] jjb: simplify Zuul deploy jobs

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

Change 1002466 merged by jenkins-bot:

[integration/zuul/deploy@master] generate Python2 wheels for bullseye targets

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

jnuche updated the task description. (Show Details)

Change 1005116 abandoned by Hashar:

[integration/zuul/deploy@master] Dockerfile to "run" Zuul with bullseye

Reason:

This was a local hack to quickly check whether the Zuul scripts at least started.

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

Change #1020329 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/puppet@production] zuul: require python2.7

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

Change #1020329 abandoned by Hashar:

[operations/puppet@production] zuul: require python2.7

Reason:

The issue lies in modules/base/manifests/standard_packages.pp which removes the python package but never reinstall them when the feature `remove_python2_on_bullseye` is flipped to `true`.

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

Change #1020329 restored by Hashar:

[operations/puppet@production] zuul: require python2.7

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

Change #1020329 merged by Dzahn:

[operations/puppet@production] zuul: require python2.7

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