3142 Commits

Author SHA1 Message Date
Zuul
51712210d6 Merge "Drop docker-compose version specifier for Gerrit" 2025-04-24 21:00:45 +00:00
Zuul
5b664e9612 Merge "Remove review02 from the inventory" 2025-04-24 16:57:41 +00:00
Zuul
871fca51ef Merge "Publish hound container images to quay" 2025-04-21 23:17:53 +00:00
Zuul
e5649268ea Merge "Fix gerrit upgrade testing" 2025-04-21 20:24:41 +00:00
Clark Boylan
66046ccf1a Fix gerrit upgrade testing
We had been testing the gerrit upgrade from 3.9 to 3.11. Now that we are
running 3.10 we really should test the 3.10 to 3.11 upgrade. Fix that.

While we are at it catch the default test gerrit version up to 3.10 as
well (it was 3.8 but I don't think we use the default anywhere so this
is mostly a noop).

Change-Id: Idafbddf3b9af54b45e6b7e06fda1ede6aa0a995e
2025-04-21 11:23:44 -07:00
Clark Boylan
31677ae80e Drop docker-compose version specifier for Gerrit
Gerrit is running on a Noble node now which uses docker compose not
docker-compose. This newer tool warns about the version in our
docker-compose.yaml file because it is ignored by the newer tool. Drop
it to clean up the warning.

Change-Id: Idebf6bb40309e4e8a50a0ed39e23e67e37510af8
2025-04-21 11:08:15 -07:00
Clark Boylan
9d6e8ea0a0 Remove review02 from the inventory
This change removes review02 from our inventory and configuration
management. This should be landed after we're confident we're unlikely
to need to roll back to that server. That said if we do rollback before
the server is cleaned up reverting this change isn't too bad.

Change-Id: Ica14ae92c4c1ef6db76acef93d6d65977aab4def
2025-04-21 11:07:22 -07:00
Clark Boylan
49d6ea5ec9 Use sigint instead of sighup to stop gerrit
The old gerrit init script uses sighup to request a graceful shutdown
of the service which is why when we ported to docker-compose we
configured it to also use sighup. Unfortunately, on noble with podman
the podman container apparmor profiles don't allow podman to issue a
sighup to the container. This means when we try to stop the service we
wait until the 5 minute timeout expires then docker compose + podman
issue a sigkill.

This is less graceful than we want. To address this we switch to sigint
instead. The reason for this is the podman container apparmor profiles
do allow signit and the jvm appears to treat sigint, sigterm, and sighup
as equivalent triggers for the shutdown hook.

Change-Id: Iacfc70713d63443d58bb563b895fdc5dfb0642e2
2025-04-16 15:25:15 -07:00
Zuul
15b65cbfc4 Merge "Manage gerrit's ecdsa and ed25519 hostkeys" 2025-04-16 21:31:05 +00:00
Clark Boylan
a6e7f4bb34 Notify meetpad users when someone is recording
This shouldn't be considered and absolute notification as recordings can
occur outside of jitsi meet as well (obs etc). But during the ptg people
had to notify others manually when using meetpad's built in local
recording mechanism let's make that more automatic.

Change-Id: I5374773ef2262971a049143aed2353cc8366345d
2025-04-11 14:48:47 -07:00
Clark Boylan
c11b8403b6 Manage gerrit's ecdsa and ed25519 hostkeys
This came up as something that was missing while we bootstrapped a new
gerrit server. The rsa hostkey is managed but none of the three ecdsa
keys or the ed25519 key is. Fix that by managing these keys in the same
manner we manager the RSA key.

Change-Id: Iaf58543b6833273ca45fa5c359dc88eaf64d7a03
2025-04-11 13:43:18 -07:00
Zuul
89c01bd251 Merge "Update Etherpad to 2.3.0" 2025-04-11 19:06:01 +00:00
Clark Boylan
b3bd66c1dd Publish hound container images to quay
Now that codesearch is deployed on Noble with podman as the container
runtime we can push our hound container to quay and still have
speculative container images. Do this to reduce our reliance on docker
hub as their rate limits are very aggressive now.

Change-Id: I364da9ebe10e681de024b50cbdccdb5b3fce3617
2025-04-11 08:17:16 -07:00
Clark Boylan
d47c217d17 Add new Noble review03 to the inventory
This is a new Gerrit server that will replace the old review02 server.
We add it to the review-staging group so that manage-projects ignores it
for now. We also give it an empty replication config so that it will not
try to force push repo content to the gitea farm.

This change does not enable any gerrit init, gerrit reindexing, or even
docker compose up the service on the server. That means after it lands
and we're convinced it isn't creating any problems for review02 we will
manually need to sync content from review02 and then manually bring this
server up (which may require an init depending on how much content we
copy).

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/946711
Change-Id: Iadf0ed75539c7673544bd8d856e0a3832a5541c2
2025-04-10 07:55:24 -07:00
Clark Boylan
4655ea97ae Update Etherpad to 2.3.0
There is a new Etherpad 2.3.0 release. We update our Dockerfile to build
that release and in the process attempt to resynchronize with the
upstream Dockerfile. The config files don't seem to change in any
meanginful way.

The changelog can be found here:

  https://github.com/ether/etherpad-lite/blob/v2.3.0/CHANGELOG.md

While we are at it we add screenshots of the main landing page and an
etherpad. This should make it easier to quickly check things when making
changes.

Change-Id: Ibfdab811b51626729f8107146b34794db0e9e2ae
2025-04-10 07:49:55 -07:00
Zuul
43f908025f Merge "Add Epoxy UCA to mirrors" 2025-04-03 08:37:56 +00:00
Zuul
5730f30735 Merge "Update .well-known/matrix/client for Element Call" 2025-04-02 14:02:04 +00:00
Dmitriy Rabotyagov
3c0b87320e Add Epoxy UCA to mirrors
Change-Id: I0b914cf797dae4b4db0a6146b3b52388d879f8aa
2025-04-01 19:16:07 +02:00
Jeremy Stanley
985af97374 Update .well-known/matrix/client for Element Call
We were notified by EMS that we should update the contents of our
Matrix homeserver client domain data to align with step 4 on
https://ems-docs.element.io/link/10 (particularly part 4.2). See
https://matrix.org/blog/2025/03/21/this-week-in-matrix-2025-03-21/#dept-of-voip-call-me-hand
for additional explanation of the change in their Element Call
service.

Change-Id: If2bed3ef2376954094cd9811fd80e62a13633472
2025-03-28 13:13:13 +00:00
Clark Boylan
8b78cd4f95 Remove the old rax iad mirror from the inventory
The new server is on its way into service. We'll want to clean up the
old one so that the backing instance and volume can be deleted. This is
the first step in that process.

Change-Id: I7ac37c6d6ea9c637c7782fa277693265445b51b9
2025-03-27 13:38:18 -07:00
Clark Boylan
f70762b74f Add the new Noble IAD Rackspace Mirror to Inventory
The old mirror was getting old and this is its Noble replacement. Add it
to inventory so that it can be deployed.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/945727
Change-Id: Idb624ea39b6cd446f56fdbd7b873e9f65d4078a1
2025-03-27 09:41:41 -07:00
Clark Boylan
55a3df23df Add a new noble mirror in rax
This serves two purposes. The first is to attempt to address the
internal network slowness of the existing mirror by booting a new server
that will hopefully not have this problem. The other is it gives us a
new shiny noble node.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/945658
Change-Id: Iae5cf08018a5b2f935b6edfcdfd6b120baf31e87
2025-03-26 14:39:00 -07:00
Clark Boylan
a74b7473ad Cleanup nl01, nl02, nl03, nl04
At this point all four of these servers have been replaced by new Noble
nodepool launchers. When we are happy with the new servers we should
land this change and remove the other servers from our inventory so that
they can be deleted.

Change-Id: Ia0b39aae8f6cfa139a81877554c34bb5b8e5cb1a
2025-03-24 12:58:12 -07:00
Clark Boylan
4357fa6dc7 Cleanup old osuosl mirror
This old mirror01 host has been replaced by a new Noble mirror02 host.
Pull this server out of configuration management so that it can be
deleted.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/945254
Change-Id: I9cc6b5b36641cced02be82a5d8405f02a06ea05b
2025-03-21 12:59:00 -07:00
Clark Boylan
998e634e2b Add new mirror in osuosl
This is a new Noble mirror that will replace the old mirror. We update
the inventory test cases to stop matching the old mirror because that
old mirror will eventually be removed from the inventory. Otherwise this
is a pretty standard mirror replacement.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/945230
Change-Id: Ib18d834e16ebeec75fb7f16e1dc83b357efb646c
2025-03-21 08:55:31 -07:00
Zuul
ab8ec00bda Merge "Remove nb01, nb02, and nb04 from config management" 2025-03-20 19:17:36 +00:00
Clark Boylan
0a83d01167 Cleanup docker-compose.yaml versions in Noble services
On Ubuntu Noble we run `docker compose` instead of `docker-compose`.
This newer tool ignores the version set in docker-compose.yaml files and
emits a warning when it is set. Clean up this version on services that
only run with `docker compose` and not `docker-compose`.

Change-Id: I08ce1f2ddc6a07fd47b4524af21255c1c4903785
2025-03-20 09:32:28 -07:00
Clark Boylan
7bb12ad33e Remove nb01, nb02, and nb04 from config management
These servers have been replaced by new Noble servers (nb05, nb06,
nb07). These new servers have managed to build every one of our current
images except for gentoo, openeuler, and openeuler arm64. These three
images weren't building on the old system either.

There is a small amount of concern that removing the old servers without
letting them clean up the database after themselves may orphan some
zookeeper database records. However the current rockylinux-9 images were
both built by nb05 or nb06 and we don't have any old records from nb01
or nb02 remaining so it seems nodepool cleans up after itself properly.
Worst case we can probably do manual database edits.

We also remove the version specifier in the docker-compose.yaml file as
`docker compose` ignores it and emits a warning when it is present. Once
this change lands all of our nodepool builders will use `docker compose`
instead of `docker-compose` making this a safe cleanup.

Change-Id: Iab8d2b6493b78cc3711d64119da2da5d3456a25a
2025-03-20 09:29:16 -07:00
Zuul
4b626da505 Merge "Fix nodepool image export cron" 2025-03-19 21:14:32 +00:00
Clark Boylan
43e14bd406 Add nb07 to the inventory
This is a new Noble arm64 nodepool builder. It will replace nb04. The
depends on changes ensure LetsEncrypt can issue certs and that we will
deploy with the correct nodepool builder config when this change lands.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/945034
Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/945035
Change-Id: I88c09cd9e0b06ca91cef8fb44ad5cac052236a75
2025-03-19 10:36:01 -07:00
Clark Boylan
f1bc64a58e Fix nodepool image export cron
This is a followup to the prior fix that addressed the path issue. Now
we have the problem of docker-compose attempting to allocate a tty (the
default) which isn't possible by default under cron. We don't need a tty
so we pass -T to disable tty allocation in the first place.

I should've caught this the last time around but my testing didn't catch
it because I was running from a shell.

Change-Id: I57797c8d140335d9edcdcd324239fdefb09882d4
2025-03-19 07:53:45 -07:00
Jeremy Stanley
161f709c2d Use explicit docker-compose path in cronjobs
As docker-compose resides in /usr/local/bin, which is not in the
default PATH for crontabs, use the full path to the executable.

Change-Id: I26e4147c4d2e964ff1c91831cf326222b92147bf
2025-03-18 13:20:46 +00:00
Clark Boylan
45ea2cb5bb Deploy nb05 and nb06 Noble nodepool builders
This adds two new Noble nodepool builders to our inventory. When we
deploy these two servers we will shutdown services on nb01 and nb02 and
put those older servers in the emergency file to force the new Noble
nodes to build images. This should give us a safe way to rollforward
onto the new platform and catch any problems.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/944794
Change-Id: Icbb48404ff11a1c887a0184fc60ae2ff6f7a3409
2025-03-17 11:33:11 -07:00
Clark Boylan
fbf92789f2 Make nodepool image export forward/backward compatible
As we rollout Noble nodes we have to maintain compatiblity between focal
with docker-compose and noble with docker compose. One difference is the
default container names change between them. We can work around that by
using docker compose commands to refer to the logical container rather
than the specific container.

Update the nodepool builder image export cron job to use docker-compose
exec instead of docker exec for this reason.

Change-Id: Iba2e395cf1792096c629ab74f849d55e96d74329
2025-03-17 09:38:55 -07:00
Clark Boylan
f7bed33a2b Remove old vexxhost mirrors
This removes the old mirror01 vexxhost mirrors from config management.
The old mirror02 mirrors were removed when we added mirror03 nodes. With
both pairs out of configuration management we can cleanup DNS then
delete the servers and their volumes.

Change-Id: I6f2d914ee8fbf9358b182b05c91fe97bc7edcc5b
2025-03-13 07:55:20 -07:00
Clark Boylan
f20a6ed158 Replace mirror02 with mirror03 in vexxhost regions
The mirror02 mirrors were booted on flavors that were much larger than
necessary and didn't have external volumes attached for teh cache
content. I've gone ahead and booted replacement Noble nodes using a
smaller flavor naming them mirror03 and attached a volume to each one
for caching.

We pull mirror02 out of the inventory as we don't need it anymore
(mirror01 is in use in production and will be cleaned up in followups).

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/944150
Change-Id: Ice9b4e79bfde5a8364d084c7434b848805d8ecfd
2025-03-12 13:00:50 -07:00
Zuul
aa7cfefed5 Merge "Also include tzdata when installing ARA" 2025-03-12 14:49:03 +00:00
Zuul
cc99218320 Merge "run-production-playbook: redirect via ansible logger" 2025-03-12 14:49:00 +00:00
Zuul
b6ca515cff Merge "Add option to force docker.io addresses to IPv4" 2025-03-11 22:34:14 +00:00
Ian Wienand
a51784a513
run-production-playbook: redirect via ansible logger
Currently this logs to /var/log/ansible.log via the log_path setting
in the Ansible config, and we also redirect output to a file.  The
stdout dump is the primary debugging method, and contains the same
info as what is put into /var/log/ansible.log by Ansible logging.

Instead, set ANSIBLE_LOG_PATH to /dev/null these logs, and just save
the stdout output.  While we're here, save stderr too.

This way if you manually run Ansible on bridge you've got logging by
default, but this should stop multiple runs of production Ansible via
Zuul all mushing together thier output into a fairly useless global
log file.

Change-Id: Iae32f501dc718f9bbfd403c6857ca7c8dc8767de
2025-03-12 09:16:47 +11:00
Zuul
8942ee2b4b Merge "Clean up old Rackspace Flex SJC3 project" 2025-03-10 21:41:59 +00:00
Zuul
53852ef383 Merge "Pull the selenium standalone-firefox image from quay" 2025-03-06 22:00:56 +00:00
Jeremy Stanley
ed20f2b8d6 Clean up old Rackspace Flex SJC3 project
We've moved all our resources to the new project now, so no longer
need old cloud and hostvar references.

Also include some comments about manual adjustments we made to the
MTU in the new projects.

Change-Id: I0bca50f2193d89fffd3ca20c8f8fc79e376eebb1
2025-03-06 17:27:42 +00:00
Tony Breeds
7dfa6006e5 Add option to force docker.io addresses to IPv4
Change-Id: Ia2578dc5cf26b289e218cd17427a6367cdf42187
2025-03-06 15:47:56 +00:00
Zuul
4c72bc42b8 Merge "Switch Nodepool to the new Rackspace Flex project" 2025-03-06 01:41:11 +00:00
Clark Boylan
990e6ce8a3 Reapply "Bootstrap-bridge as top-level job"
This reverts commit 03816fa43363d9162749bf3cf418f788acfee7cc.

This is a partial reapplication of the previously broken change. We make
a small edit to the ansible playbook to run zuul_return in a valid
context. Specifically as a task against localhost.

We also move the infra-prod-bootstrap-bridge dependency into the PPC
because the PPC dependencies override job dpendencies.

Change-Id: Icc2e0871abfed28937eb96bc14bb2be6b0d882d8
2025-03-05 10:20:49 -08:00
Clark Boylan
03816fa433 Revert "Bootstrap-bridge as top-level job"
This reverts commit d616ec9d9ae2e2fb7f5d53f0f3f14917f0028b0d.

We are hitting ERROR! 'zuul_return' is not a valid attribute for a Play
in the bootstrap-bridge job.

Change-Id: Iebb49ae9c01ea62e8877860fdb0bf1e3d4080607
2025-03-05 09:05:26 -08:00
Zuul
a5bed9208c Merge "Bootstrap-bridge as top-level job" 2025-03-05 16:46:19 +00:00
Clark Boylan
f77af882bc Pull the selenium standalone-firefox image from quay
We have mirrored the selenium/standalone-firefox image to
quay.io/opendevmirror so that we don't have to pull this image from
docker hub and eat into quotas there. Start fetching the image from the
mirror in our CI jobs.

Change-Id: I790f7b29f7e30c2cc2a8b37c0146d1f8e594264e
2025-03-04 07:32:46 -08:00
Jeremy Stanley
813e04d3d3 Remove Ansible for old Rackspace Flex SJC3 mirror
This system is no longer in service and will be deleted.

Change-Id: I8aeff087aaeaf582270b752e1474cc0fc5264a4f
2025-03-03 17:24:55 +00:00