19511 Commits

Author SHA1 Message Date
Jeremy Stanley
2fd9d888f9 Accessbot fix for running on Python 3.12
Since ssl.wrap_context has been removed in Python 3.12,
switch that out with SSLContext.wrap_context instead.

Change-Id: Ic3d7250937544e3a1eda3276db8ed43972735b98
Co-Authored-By: Clark Boylan <clark.boylan@gmail.com>
Depends-On: https://review.opendev.org/945662
2025-03-26 23:07:19 +00:00
Zuul
759ab51b32 Merge "Update the IRC accessbot to python3.12" 2025-03-26 21:13:16 +00:00
Zuul
d5e6ce098e Merge "Update to Gitea 1.23.6" 2025-03-26 17:33:29 +00:00
Clark Boylan
506b9b300f Update to Gitea 1.23.6
This upgrades us from gitea 1.23.5 to 1.23.6. The templates we override
do not change between these versions in gitea proper so no template
updates are necessary. This appears to largely be a bugfix release.
The full release notes can be seen here:

  https://github.com/go-gitea/gitea/blob/v1.23.6/CHANGELOG.md

The main change that stands out to me is:

  https://github.com/go-gitea/gitea/pull/33992

As that modifies the indexer which has been the source of memory issues
in the past. However, this looks like a straightforward update and is
probably fine.

Change-Id: I3a47380a2e9107bb2dca1b0a3d66c44249ee60c3
2025-03-24 15:04:31 -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
3eb1e6ed2a Add new nl05 to inventory
This server replaces nl01 as a new nodepool launcher. We do nl05 last
because nl01/nl05 provide the greatest amount of nodepool capacity via
rackspace's various regions. We should deploy this server when we are
happy with the other three.

Change-Id: I073121fc74bc6665de669819a51841925d6be9f4
2025-03-24 12:54:42 -07:00
Clark Boylan
694444fc96 Add nl07 and nl08 to inventory
These two servers replace nl03 and nl04 respectively. We're doing the
launcher replacement in batches to avoid excessively reducing our
capacity if something goes wrong in the deployment. nl06 seems to have
deployed properly so lets proceed to nl07 and nl08.

Change-Id: I56a5280e69f36c6df3c36c9c9a3a0f2d0bfcd4f8
2025-03-24 12:52:11 -07:00
Clark Boylan
d23b2fa646 Add new nl06 Noble nodepool launcher
This adds a new Noble nodepool launcher node, nl06, to replace nl02.
When this change lands I will put nl02 in the emergency file and
manually shutdown services on it. This should allow nl06 to come up with
its config and take over management of openmetal provider resources.

While we are at it we update the system-config-run-nodepool testing to
deploy a noble nl05. That doesn't exactly match this change but nl05
will replace nl01 soon enough. We just need to update CI to ensure that
we can deploy a nodepool launcher on Noble before we actually attempt to
do so in production.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/945364
Depends-On: https://review.opendev.org/c/openstack/project-config/+/945359
Change-Id: I18db9f57bd41ed2a57c545f02ac0113bb8b4d9de
2025-03-24 09:42:41 -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
a2864163be Merge "Add remaining clouds as zuul connections" 2025-03-19 22:42:05 +00:00
Zuul
fd8241286d Merge "Rebuild our base python container images" 2025-03-19 21:18:42 +00:00
Zuul
4b626da505 Merge "Fix nodepool image export cron" 2025-03-19 21:14:32 +00:00
Zuul
da6a3f7a5c Merge "Add nb07 to the inventory" 2025-03-19 20:47:31 +00:00
James E. Blair
63d8264d0e Add remaining clouds as zuul connections
This adds the remaining in-service openstack clouds to the zuul
config for use by the zuul-launcher.

Change-Id: I5475a9ec3914c1fee672a3de8d9baf888ee46fd2
2025-03-19 12:18:26 -07: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
54da0c008f Only check sse4_2 support on x86_64
In order to discard nodes not capable of running centos 9 launch node
discards x86_64 nodes that don't support sse4_2. However, this check
doesn't make sense for aarch64 nodes (like our arm nodepool builder).
Only check sse4_2 support when the machine type is x86_64.

Change-Id: If06c834be5e7189ddd8ee5b746f50e7bdb9f95d3
2025-03-19 10:03:27 -07:00
Zuul
c78e106219 Merge "Drop python3.10 container image builds" 2025-03-19 15:36:36 +00: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
Clark Boylan
a21ee19731 Rebuild our base python container images
This is a semi regular update to the base python container images.
Should pick up updates to the base debian OS as well as the python
installation.

Since newer versions of uWSGI don't seem to build on aarch64, we stop
building containers for that arch.

Change-Id: Ib1cd2197cbfc96b707860cfa3946108da05bd697
2025-03-19 09:09:51 +01: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
e01672ef17 Drop python3.10 container image builds
According to codesearch nothing is using these images any more [0].
Currently the uwsgi build segfaults building for 3.10. Considering
nothing is using the images in the first place let's stop building them.

[0] https://codesearch.opendev.org/?q=3.10-bookworm&i=nope&literal=nope&files=&excludeFiles=&repos=

Change-Id: I0f579a9f6d3e680b4cb999876245fefa22b6f7e7
2025-03-17 12:53:31 -07: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
643a10226f Mirror our python3.12 base images to quay
As we start to rollout python3.12 container images I've discovered that
we aren't mirroring python3.12 tags for the base python container images
to quay. This is currently impeding lodgeit container image updates, but
may affect others as python3.12 becomes more common.

Let's mirror these tags and solve the problem.

Change-Id: Ic9283f806ef85168368572ced38861bec4764019
2025-03-14 10:16:54 -07:00
Clark Boylan
3ac61cddbe Update the IRC accessbot to python3.12
This changes the python runtime in our container image for accessbot
from python3.11 to 3.12. We can't stick with python3.11 forever and need
to move forward at some point.

Change-Id: I9566d4c030c85f069d284eb054ce64e3316bbd3a
2025-03-14 08:53:30 -07:00
Zuul
ed460e1aca Merge "Update Hound image to python3.12" 2025-03-13 22:39:33 +00: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
0f283a9731 Merge "Have puppet depend on letsencrypt" 2025-03-12 17:15:51 +00:00
Zuul
3ed8b20698 Merge "Trigger related jobs when statsd images update" 2025-03-12 17:15:49 +00:00
Zuul
4c53bd8837 Merge "Update infra-prod limit semaphore to a max of 4" 2025-03-12 17:02:31 +00:00
Zuul
e50f6af85d Merge "Drop public port 3000 access for Gitea" 2025-03-12 17:02:29 +00:00
Clark Boylan
874e36ac90 Update infra-prod limit semaphore to a max of 4
The max of 2 seems to be working well and system load on bridge has
remained reasonable. Double this again to 4 as it appears that should be
a safe limit load wise on bridge.

Change-Id: I9afcd76fae0cf0bc28c00fa44dd4390a99372185
2025-03-12 08:31:59 -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
Clark Boylan
873f862963 Drop public port 3000 access for Gitea
The web bot crawlers have discovered port 3000 and have brought gitea09
to its knees. Block port 3000 access and force traffic through the
proxies which help moderate things better.

Change-Id: I16f55a7ebb222466b8823cfee7c4ac8c628ff5b1
2025-03-11 16:03:41 -07: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
Clark Boylan
f8bfb04130 Trigger related jobs when statsd images update
The gitea-lb, zuul-lb, and zookeeper deployments rely on statsd sidecar
images to collect and report metrics to statsd. We should trigger the
infra-prod deployment jobs for these services when those images update.

We make a noop timestamp update to each Dockerfile to exercise that
update via this change.

Change-Id: I1ffd57d386812560c72861bf66a10c1822a25217
2025-03-11 11:09:04 -07:00
Zuul
a6cb2ac72c Merge "Start using python3.12" 2025-03-11 18:03:01 +00:00
Clark Boylan
5fb635d2d6 Have puppet depend on letsencrypt
The puppet services may depend on LE certs. Ensure that puppet has a
soft dependency on letsencrypt so that LE certs can be put into place
before puppet attempts to manipulate them.

Change-Id: Iec676b63d7e07bbf6841492139abf549494fa0f5
2025-03-10 14:47:43 -07:00
Zuul
8942ee2b4b Merge "Clean up old Rackspace Flex SJC3 project" 2025-03-10 21:41:59 +00:00
Clark Boylan
611bfce7b6 Run infra-prod jobs in parallel
Bump the semaphore for infra-prod jobs to max: 2 so that up to two infra
prod jobs can run in parallale on bridge at the same time. Note we
should land this after we are happy with the new setup's locking and
pausing.

Change-Id: Icce98bb495d5edd9256f8e1d65d88b2f9d879132
2025-03-10 09:35:36 -07:00
Zuul
684e7b70f5 Merge "Use required-projects in bootstrap-bridge" 2025-03-07 22:21:31 +00:00
Clark Boylan
f034d443d7 Use required-projects in bootstrap-bridge
The required-projects list is necessary for bootstrap-bridge to know
which repos to update on bridge. Since bootstrap-bridge doesn't know
which child jobs will followup we update the four repos that bridge
depends on.

Change-Id: Ib31c67a20021665105b2567a65b94f7510e87d5b
2025-03-07 22:02:21 +00:00
Clark Boylan
9a8b464c5a Update Hound image to python3.12
This is a followup to the parent change to continue to convert images
over to python3.12 from python3.11.

Change-Id: I44e7828728e86becbab41fc68b64a9ccb7a916a1
2025-03-07 11:02:52 -08:00