Page MenuHomePhabricator

Rebuild all Jenkins agents VM to Bookworm to support Java 21
Open, Needs TriagePublic

Description

To upgrade Java to version 21 on the Jenkins controller (T418109), we need need the same Java 21 on the agents. Jenkins Java Support Policy mentions:

These requirements apply to all components of the Jenkins system, including the Jenkins controller, all types of agents, CLI clients, and other components.

Our Jenkins agents are based on Bullseye which has Java 17 and are we not backporting Java 21 to Bullseye. We thus need to rebuild the instances.

We can rebuild the agents with either Bookworm or Trixie.

  • Trixie comes with Java 21 and does not have Java 17. That would prevent to attach the rebuild image to the controller which runs Java 17.
  • Bookworm has Java 17 and we have a backport of Java 21

Bookworm would let us rebuild the image with Java 17. Attach them to the Jenkins controller running Java 17. When upgrading the controller to Java 21, we can then switch the Bookworm instance to use Java 21 from component/jdk21.

List of agents on Bullseye

Agents already on Bookworm:

  • pcc-worker1004.puppet-diffs.eqiad1.wikimedia.cloud
  • pcc-worker1005.puppet-diffs.eqiad1.wikimedia.cloud
  • pcc-worker1006.puppet-diffs.eqiad1.wikimedia.cloud

Production hosts:

  • contint1002, contint2002 (they will be replaced by the new contint1003 / contint2003)

Related Objects

Event Timeline

hashar renamed this task from Rebuild all Jenkins agents VM to support Java 21 to Rebuild all Jenkins agents VM to Bookworm to support Java 21.Wed, Mar 25, 11:20 AM

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

[operations/puppet@production] ci: use docker.io package starting with Bookworm

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

From subtask T421242 we have a new flavor g4.cores10.ram24.disk20.ephemeral100.4xiops which has:

  • 2 more CPUs (810)
  • 10 more ephemeral disk space (90G100G)

I will look at rebuilding some instances this afternoon. I am not sure I will pool them immediately though.

I have created 7 instances with the g4.cores10.ram24.disk20.ephemeral100.4xiops flavor:

integration-agent-docker-1070
integration-agent-docker-1071
integration-agent-docker-1072
integration-agent-docker-1073
integration-agent-docker-1074
integration-agent-docker-1075
integration-agent-docker-1076

I have more or less followed the guide at https://wikitech.wikimedia.org/wiki/Nova_Resource:Integration/Setup .

Mentioned in SAL (#wikimedia-operations) [2026-04-02T14:03:07Z] <hashar> Jenkins CI: reloading configuration from disk to poll new nodes # T421114

Change #1260659 merged by Dzahn:

[operations/puppet@production] ci: use docker.io package starting with Bookworm

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

I have deployed https://gerrit.wikimedia.org/r/c/operations/puppet/+/1260659

I confirmed it was noop on contint prod hosts. But it does show that on new integration-agent-docker-1070 listed above it will now install docker.io.

https://puppet-compiler.wmflabs.org/output/1260659/8372/

Change #1267173 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] jenkins: add profile::ci::docker to role

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

I have created 7 instances with the g4.cores10.ram24.disk20.ephemeral100.4xiops flavor:

integration-agent-docker-1070
integration-agent-docker-1071
integration-agent-docker-1072
integration-agent-docker-1073
integration-agent-docker-1074
integration-agent-docker-1075
integration-agent-docker-1076

I have confirmed on all the machines above that docker.io is now installed.

I have deployed https://gerrit.wikimedia.org/r/c/operations/puppet/+/1260659

I confirmed it was noop on contint prod hosts. But it does show that on new integration-agent-docker-1070 listed above it will now install docker.io.

https://puppet-compiler.wmflabs.org/output/1260659/8372/

Indeed! Note: I already had the change cherry picked on the CI Puppetmaster to unblock the Puppet run on those hosts :)

Mentioned in SAL (#wikimedia-releng) [2026-04-03T09:15:10Z] <hashar> Added Bookworm based Jenkins agents to the pool with label Docker. Hostnames are integration-agent-docker-107* # T421114

I have created 6 more instances with the g4.cores10.ram24.disk20.ephemeral100.4xiops flavor:

integration-agent-docker-1077
integration-agent-docker-1078
integration-agent-docker-1079
integration-agent-docker-1080
integration-agent-docker-1081
integration-agent-docker-1082

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

[operations/puppet@production] profile::ci::package_builder: force link of pbuilder cache

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

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

[operations/puppet@production] profile::ci::package_builder: create aptcache dir

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

Change #1267883 merged by Dzahn:

[operations/puppet@production] profile::ci::package_builder: force link of pbuilder cache

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

Change #1267887 merged by Dzahn:

[operations/puppet@production] profile::ci::package_builder: create aptcache dir

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

Change #1268262 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] ci::docker: also install docker-cli when installing docker.io

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

Change #1268262 merged by Dzahn:

[operations/puppet@production] ci::docker: also install docker-cli when installing docker.io

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

Mentioned in SAL (#wikimedia-operations) [2026-04-07T07:54:29Z] <hashar> Moved operations-puppet-tests-bullseye job from a Jenkins agent running Bullseye to one running Bookworm. The image is still on Bullseye! | T421114

Mentioned in SAL (#wikimedia-operations) [2026-04-07T08:05:01Z] <hashar> Moved Debian Glue jobs to Jenkins agents running Bookworm (integration-agent-pkgbuilder-1005 and integration-agent-pkgbuilder-1006)| T421114

Mentioned in SAL (#wikimedia-releng) [2026-04-07T10:09:49Z] <hashar> Added Bookworm based Jenkins agents to the pool Hostnames 1083 to 1089 # T421114

Mentioned in SAL (#wikimedia-releng) [2026-04-07T11:14:34Z] <hashar> Added Bookworm based Jenkins agents to the pool Hostnames 1090, 1091, 1092 and 1093 # T421114

Mentioned in SAL (#wikimedia-releng) [2026-04-07T12:17:30Z] <hashar> Migrated Castor from integration-castor05 to integration-castor06. Updated CASTOR_HOST in Jenkins and moved the Cinder volume to the new instance # T421114

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

[operations/puppet@production] cloudbackup: do not back integration-castor* instances

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

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

[integration/config@master] jjb: use $CASTOR_HOST for Quibble success cache

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

Mentioned in SAL (#wikimedia-releng) [2026-04-07T12:35:59Z] <hashar> jjb: use $CASTOR_HOST for Quibble success cache. https://gerrit.wikimedia.org/r/1268545 | This causes the Quibble jobs to use a new instance for the success cache, which is empty # T383243 T421114

Change #1268545 merged by jenkins-bot:

[integration/config@master] jjb: use $CASTOR_HOST for Quibble success cache

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

Change #1268540 merged by David Caro:

[operations/puppet@production] cloudbackup: do not back integration-castor* instances

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

Mentioned in SAL (#wikimedia-releng) [2026-04-08T06:31:37Z] <hashar> Deleted integration-agent-castor05 Bullseye instance, replaced by integration-agent-castor06 which is on Bookworm # T421114