98 Commits

Author SHA1 Message Date
Ian Wienand
46bb73d947 system-config-run-borg-backup: add to gate
We must have missed this, I noticed when it didn't run on the gate job
for I949c40e9046008d4f442b322a267ce0c967a99dc

Change-Id: I62c5c0f262d9bd53580367dc9f1ad00fe7b6f6f2
2022-08-11 13:54:52 +10:00
Clark Boylan
d40f5d3089 Add Gerrit 3.5 to 3.6 upgrade testing
This adds upgrade testing from our current Gerrit version (3.5) to the
likely future version of our next upgrade (3.6).

To do so we have to refactor the gerrit testing becase the 3.5 to 3.6
upgrade requires we run a command against 3.5. The previous upgrade
system assumed the old version could be left alone and jumped straight
into the upgrade finally testing the end state. Now we have split up the
gerrit bootstrapping and gerrit testing so that normal gerrit testing
and upgrade testing can run these different tasks at different points in
the gerrit deployment process.

Now the upgrade tests use the bootstrapping playbook to create users,
projects, and changes on the old version of gerrit before running the
copy-approvals command. Then after the upgrade we run the test assertion
portion of the job.

Change-Id: Id58b27e6f717f794a8ef7a048eec7fbb3bc52af6
2022-06-22 10:58:17 -07:00
Clark Boylan
1da5615477 Add Gerrit 3.6 jobs
This adds Gerrit 3.6 image build jobs as well as CI testing for this
version of Gerrit. Once we've got images that build and function
generally we'll reenable the upgrade job and work through that.

Change-Id: I494a21911a2279228e57ff8d2b731b06a1573438
2022-06-21 16:54:36 -07:00
Clark Boylan
063ec0f5a7 Remove Gerrit 3.4 jobs
This removes our Gerrit 3.4 image builds as well as testing. We should
land this after an appropriate amount of time has passed since the 3.5
upgrade that we are unlikely to revert.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/847057
Change-Id: Iefa7cc1157311f0239794b15bea7c93f0c625a93
2022-06-21 16:27:46 -07:00
Clark Boylan
cb905c9b4f Fix gerrit deployment dependencies
We've upgraded to Gerrit 3.5 so now need to wait for the 3.5 image to
promote rather than the 3.4 image when deploying Gerrit.

Change-Id: Ic3a4d578aea955aeee51f4cac7f4c95de931a94b
2022-06-21 07:48:12 -07:00
Clark Boylan
90effa2af0 Add Bullseye Python 3.10 base images
Now that we've cleaned up the old unused images we can look forward to
new Python. Add Python 3.10 base images based on Bullseye.

As part of this process we update the default var values in our
Dockerfiles to set Bullseye and Python3.10 as our defaults as these
should be valid for some time. We also tidy up some yaml anchor names to
make future copy and paste for new versions of images easier to perform
text replacement on.

Change-Id: I4943a9178334c4bdf10ee5601e39004d6783b34c
2022-04-20 08:39:52 -07:00
Clark Boylan
2d43f9322b Remove python3.7-bullseye docker images
Everything is running on 3.8 or newer which should allow us to remove
the 3.7 images. This reduces the total set before we add python3.10
images and acts as good cleanup.

Change-Id: I2cc02fd681485f35a1b0bf1c089a12a4c5438df3
2022-04-18 13:42:30 -07:00
Clark Boylan
78999b020e Remove our buster python images
We've moved onto bullseye for just about everything at this point. It is
possible there are stragglers and the removal of these jobs should flag
them if their dependencies and requirements are set properly. Otherwise
they'll continue to pull the historical builds on docker hub. Either way
we'll either shake them out or they will continue until they can move to
bullseye.

We remove these in preparation for adding python3.10 images which don't
make sense for buster and our total image catalog is getting large
enough that successfully building and promoting this entire set is
getting problematic. A bit of spring cleaning on what we can commit to
before we commit to some new stuff.

Depends-On: https://review.opendev.org/c/opendev/gear/+/838402
Depends-On: https://review.opendev.org/c/opendev/storyboard/+/838403
Change-Id: I58c4d314ca4f4be3f1e17ec267a4c324cabf0c2a
2022-04-18 13:42:03 -07:00
Clark Boylan
17b2545807 Fixup some image dependencies in our zuul configs
We don't use buster images anymore for anything. Update our dependency
on buster indicators to up to date and current bullseye dependencies.

Change-Id: I8da237559e074ae3d44be1dde8ffb7da89104d4f
2022-04-18 12:48:39 -07:00
James E. Blair
f196aa047e Clean up some gitea-lb zuul config
This triggers the test job on changes to any gitea.* roles, including
gitea-lb which wasn't included before.

It also removes the letescrypt job as a soft dependency from the lb
jobs since that is not strictly necessary.

Change-Id: Ie5bcd4d8215bb14d939dddf3e20d3173ccc0acdc
2022-02-10 23:38:59 +00:00
James E. Blair
2a9553ef25 Add Zuul load balancer
This adds a load balancer for zuul-web and fingergw.

Change-Id: Id5aa01151f64f3c85e1532ad66999ef9471c5896
2022-02-10 13:24:42 -08:00
Clark Boylan
a5671ddaf3 Update infra-prod-service-review dependencies
We removed the promote jobs for Gerrit 3.3 images but left them in place
as infra-prod-service-review dependencies. Fix that by updating the
infra prod job dependencies to the job for Gerrit 3.4 image promotion.

Change-Id: If2277799db91ea61aaffafb600f403531a0fb562
2022-02-07 13:03:50 -08:00
Clark Boylan
a2dce17612 Test Gerrit upgrade from 3.4 to 3.5
This reenables Gerrit upgrade testing but tests the 3.4 to 3.5 upgrade
now. Note this may need some work to get happy once we have 3.5 images
which is why we've split it out into a separate change.

Change-Id: Ibbbd3f98ac2df8d99d4ffda57df59f4a47da3cd3
2022-02-03 08:11:31 -08:00
Clark Boylan
a3cc983502 Add Gerrit 3.5 image builds and testing
This will build gerrit 3.5 images and run it through our standard Gerrit
testing. Upgrade testing from 3.4 to 3.5 to follow in followup changes.

Change-Id: I76d0389d1455e62b242aad1926b3a09830301801
2022-02-03 08:09:14 -08:00
Zuul
fd3cd75f7c Merge "Stop building Gerrit 3.3 images" 2022-02-03 05:50:59 +00:00
Clark Boylan
4e9da3c255 Stop building Gerrit 3.3 images
We've upgraded to 3.4 and don't appear to be reverting. Remove the 3.3
images as they are no longer needed.

Note we comment out the review upgrade testing jobs until we have 3.5
images building.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/827562
Change-Id: I0e3cb81b790ab06c690ed0245526e4f47911c584
2022-02-02 14:03:28 -08:00
Ian Wienand
545feac217 infra-prod-grafana: drop system-config-promote-image-grafana
We dropped making our own grafana container with with
If0d584f848f213aeea385885e3decfaee6303de5, so we don't need this job
any more.

Change-Id: Ide212f25cda6d25e5cc31b0e8d2a65f3759bafdd
2022-01-31 17:13:40 +11:00
James E. Blair
1492f22faa Use grafyaml container image
Instead of building a local grafana image with grafyaml installed,
use the plain upstream grafana image along with the newly created
separate opendev grafyaml image to run the dashboards.

Depends-On: https://review.opendev.org/780119
Change-Id: If0d584f848f213aeea385885e3decfaee6303de5
2022-01-20 09:25:00 +11:00
Zuul
a1885ef992 Merge "Update limboria ircbot to bullseye" 2021-12-15 22:27:33 +00:00
Zuul
29fbc1f078 Merge "Update matrix-eavesdrop image to bullseye" 2021-12-15 17:46:36 +00:00
Zuul
57d5e116a0 Merge "Update the accessbot image to bullseye" 2021-12-14 23:40:39 +00:00
Zuul
63fb188aa3 Merge "Update the hound image to bullseye" 2021-12-13 22:08:29 +00:00
Clark Boylan
22957c6549 Update limboria ircbot to bullseye
Spring cleaning updates of our docker images now that bullseye is out.

Change-Id: I5e4b84edd2c5a8e196659e4815c5b349c0226393
2021-12-13 09:22:17 -08:00
Clark Boylan
ed0526cd8b Update the accessbot image to bullseye
This is general spring cleaning that we are going to try and do for our
images now that bullseye is out.

Change-Id: Iad8f5b76896b88a6aafbfba0c38d0749b9d5c88f
2021-12-13 09:18:56 -08:00
Clark Boylan
b07d5eca37 Update matrix-eavesdrop image to bullseye
Just some spring cleaning now that bullseye is released.

Change-Id: I9641dae9ee7679fb45bef93e770f69d9673d75bf
2021-12-13 09:12:10 -08:00
Clark Boylan
8530ed39a1 Update the hound image to bullseye
Just some spring cleaning now that bullseye has released.

Change-Id: I1202400932860a04841d376b9f10beb89acc175c
2021-12-13 09:04:20 -08:00
Ian Wienand
5a215e0654 infra-prod: fix infra-prod-service-zookeeper soft dependency
This is a typo from the job shuffle in
I8f6150ec2f696933c93560c11fed0fd16b11bf65 -- this should be a soft
dependency.

It is currently causing periodic jobs to fail

Change-Id: Ia420e74a1d64b12b63b1697e61992c46119451dc
2021-12-13 11:01:45 +11:00
Ian Wienand
73a9acc7ad Rename install-ansible to bootstrap-bridge
This used to be called "bridge", but was then renamed with
Ia7c8dd0e32b2c4aaa674061037be5ab66d9a3581 to install-ansible to be
clearer.

It is true that this is installing Ansible, but as part of our
reworking for parallel jobs this is the also the synchronisation point
where we should be deploying the system-config code to run for the
buildset.

Thus naming this "boostrap-bridge" should hopefully be clearer again
about what's going on.

I've added a note to the job calling out it's difference to the
infra-prod-service-bridge job to hopefully also avoid some of the
inital confusion.

Change-Id: I4db1c883f237de5986edb4dc4c64860390cc8e22
2021-12-07 16:24:53 +11:00
Zuul
94bc7c1455 Merge "Add a keycloak server" 2021-12-04 16:50:26 +00:00
James E. Blair
e79dbbe6bb Add a keycloak server
This adds a keycloak server so we can start experimenting with it.

It's based on the docker-compose file Matthieu made for Zuul
(see https://review.opendev.org/819745 )

We should be able to configure a realm and federate with openstackid
and other providers as described in the opendev auth spec.  However,
I am unable to test federation with openstackid due its inability to
configure an oauth app at "localhost".  Therefore, we will need an
actual deployed system to test it.  This should allow us to do so.

It will also allow use to connect realms to the newly available
Zuul admin api on opendev.

It should be possible to configure the realm the way we want, then
export its configuration into a JSON file and then have our playbooks
or the docker-compose file import it.  That would allow us to drive
change to the configuration of the system through code review.  Because
of the above limitation with openstackid, I think we should regard the
current implementation as experimental.  Once we have a realm
configuration that we like (which we will create using the GUI), we
can chose to either continue to maintain the config with the GUI and
appropriate file backups, or switch to a gitops model based on an
export.

My understanding is that all the data (realms configuration and session)
are kept in an H2 database.  This is probably sufficient for now and even
production use with Zuul, but we should probably switch to mariadb before
any heavy (eg gerrit, etc) production use.

This is a partial implementation of https://docs.opendev.org/opendev/infra-specs/latest/specs/central-auth.html

We can re-deploy with a new domain when it exists.

Change-Id: I2e069b1b220dbd3e0a5754ac094c2b296c141753
Co-Authored-By: Matthieu Huin <mhuin@redhat.com>
2021-12-03 14:17:23 -08:00
Jeremy Stanley
1987f86a9a Revert "infra-prod: clone source once"
This reverts commit 42df57b545d6f8dd314678174c281c249171c1d0.
This reverts commit 9cccb02bb09671fc98e42b335e649589610b33cf.

Change-Id: I56be9bcf54b634b7403e71af8b4d08d234cbb91a
Depends-On: https://review.opendev.org/820251
2021-12-02 19:18:43 +00:00
Dr. Jens Harbott
26805b2bb5
Fix name for haproxy-statsd dependency
Mixed up with gitea-lb naming.
Fixes I19db98fcec5715c33b62c9c9ba5234fd55700fd8

Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: I91d077102904a2144d12bc60eb7341f1065473b4
2021-12-01 17:32:31 +01:00
Ian Wienand
42df57b545 infra-prod: fix name of clone source job
This was introduced with I19db98fcec5715c33b62c9c9ba5234fd55700fd8

opendev-infra-prod-setup-src is the abstract parent job, we should be
using infra-prod-setup-src.

Change-Id: I7fdefe7ce60ab248f9a90b6be363eefc826f8e1f
2021-12-01 13:48:44 +11:00
Ian Wienand
9cccb02bb0 infra-prod: clone source once
The current opendev-infra-prod-base job sets up the executor to log
into bridge AND copies in Zuul's checkout of system-config to
/home/zuul/src.

This presents an issue for parallel operation, as every production job
is cloning system-config ontop of each other.

Since they all operate in the same buildset, we only need to clone
system-config from Zuul once, and then all jobs can share that repo.

This adds a new job "infra-prod-setup-src" which does this.  It is a
dependency of the base job so should run first.

All other jobs now inhert from opendev-infra-prod-setup-keys, which
only sets up the executor for logging into bridge.

Change-Id: I19db98fcec5715c33b62c9c9ba5234fd55700fd8
Depends-On: https://review.opendev.org/c/opendev/base-jobs/+/807807
2021-11-18 10:31:16 +11:00
Ian Wienand
d0467bfc98 Refactor infra-prod jobs for parallel running
Refactor the infra-prod jobs to specify dependencies so they can run
in parallel.

Change-Id: I8f6150ec2f696933c93560c11fed0fd16b11bf65
2021-11-18 10:31:11 +11:00
Zuul
9c29fd8324 Merge "Remove the gerrit group in favor of the review group" 2021-10-22 16:15:56 +00:00
Zuul
0017bdc468 Merge "Replace testing group vars with host vars for review02" 2021-10-13 17:16:31 +00:00
Clark Boylan
cf91bc0971 Remove the gerrit group in favor of the review group
Having two groups here was confusing. We seem to use the review group
for most ansible stuff so we prefer that one. We move contents of the
gerrit group_vars into the review group_vars and then clean up the use
of the old group vars file.

Change-Id: I7fa7467f703f5cec075e8e60472868c60ac031f7
2021-10-12 09:48:53 -07:00
Clark Boylan
76baae4e3f Replace testing group vars with host vars for review02
Previously we had a test specific group vars file for the review Ansible
group. This provided junk secrets to our test installations of Gerrit
then we relied on the review02.opendev.org production host vars file to
set values that are public.

Unfortunately, this meant we were using the production heapLimit value
which is far too large for our test instances leading to the occasionaly
failure:

  There is insufficient memory for the Java Runtime Environment to continue.
  Native memory allocation (mmap) failed to map 9596567552 bytes for committing reserved memory.

We cannot set the heapLimit in the group var file because the hostvar
file overrides those values. To fix this we need to replace the test
specific group var contents with a test specific host var file instead.
To avoid repeating ourselves we also create a new review.yaml group_vars
file to capture common settings between testing and prod. Note we should
look at combining this new file with the gerrit.yaml group_vars.

On the testing side of things we set the heapLimit to 6GB, we change the
serverid value to prevent any unexpected notedb confusion, and we remove
replication config.

Change-Id: Id8ec5cae967cc38acf79ecf18d3a0faac3a9c4b3
2021-10-12 09:48:45 -07:00
Clark Boylan
46faa6626b Remove Gerrit 3.2 images
This should be merged after we are on 3.3 and happy with the state of
things.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/813081
Change-Id: I4173df5e4ae38af6423402be0299470323762da2
2021-10-07 20:07:38 +00:00
Clark Boylan
0f6c29c0ee Test upgrade from Gerrit 3.3 to 3.4
This shifts our Gerrit upgrade testing ahead to testing 3.3 to 3.4
upgrades as we have upgraded to 3.3 at this point.

Change-Id: Ibb45113dd50f294a2692c65f19f63f83c96a3c11
2021-10-07 11:57:04 -07:00
Monty Taylor
d49f399b17 Start building gerrit 3.4
Change-Id: I9cd8c9e1fb837dae91057da9bc80a3f15e566a59
2021-10-07 11:54:50 -07:00
Clark Boylan
e47dccdc34 Upgrade Gerrit to 3.3
This bumps the gerrit image up to our 3.3 image. Followup changes will
shift upgrade testing to test 3.3 to 3.4 upgrades, clean up no longer
needed 3.2 images, and start building 3.4 images.

Change-Id: Id0f544846946d4c50737a54ceb909a0a686a594e
2021-10-07 11:54:46 -07:00
Ian Wienand
e772abaf96 gitea: use assets bundle
This uses the opendev assets bundle image created with
I3166679bde6d771276289b9d32e7e4407957b2f8.

The mount options require using BuildKit, hence the Dockerfile update.

Otherwise conceptually it's fairly simple; copy in the files from the
opendevorg/assets image rather than the file-system.

Change-Id: I36bdc76471eec5380a676ebcdd885a88d3985976
2021-09-06 15:07:36 +10:00
Ian Wienand
25cdc97950 Add assets and a related docker image/bundle
Move some common assets into a top-level assets/ directory.  Services
can reference these assets via

 https://opendev.org/opendev/system-config/raw/branch/master/assets/<file>

in <img> tags, etc.

Some services want to embed these into their images, but we wish to
only keep one canonical copy.  For this, add a Dockerfile and jobs
that creates a simple bundle of assets in opendevorg/assets.  This can
be referenced in other builds; the new BuildKit bind-mount is
particularly useful for this
(c.f. I36bdc76471eec5380a676ebcdd885a88d3985976).

Change-Id: I3931566eb86a0618705d276445fa0a5f659692ea
2021-09-01 06:15:43 +10:00
Monty Taylor
8dbf0a3d82 Produce both buster and bullseye container images
This will allow us to roll out consumption forward in a
methodical manner.

This reverts commit 45caec4d43900bc66fb0b8c219c6dcc3180ca8aa.

Note the weird ARG definitions are there for a reason:
https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact

Change-Id: I81174ac035164695f1c27c9662f25335b78c2e64
2021-08-28 16:46:29 -07:00
Clark Boylan
aeddc1bf17 Test a gerrit 3.2 -> 3.3 upgrade
We create (a currently test only) playbook that upgrades zuul. This job
then runs through project creation and renaming and testinfra testing on
the upgraded gerrit version.

Future improvements should consider loading state on the old gerrit
install before we upgrade that can be asserted as well.

Change-Id: I364037232cf0e6f3fa150f4dbb736ef27d1be3f8
2021-08-19 13:19:05 -07:00
Clark Boylan
ce5d207dbb Run remote-puppet-else daily instead of hourly
Update the file matchers to actually match the current set of puppet
things. This ensure the deploy job runs when we want it and we can catch
up daily instead of hourly.

Previously a number of the matchers didn't actually match the puppet
things because the path prefix was wrong or works were in different
orders for the dir names.

Change-Id: I3510da81d942cf6fb7da998b8a73b0a566ea7411
2021-08-17 15:54:38 -07:00
Clark Boylan
ffe06527de Run infra-prod-service-zuul-preview daily instaed of hourly
This is being done beacuse we don't make many changes to the
zuul-preview service but it runs in the hourly buildset starving deploy
runs. Since this doesn't change much we can move it to the daily run
instead.

If we need to update it we can run the playbook manually or land a
change to trigger it.

Change-Id: I89d2c712fcfd18bd4f694b2c90067295253b8836
2021-08-17 15:45:17 -07:00
Clark Boylan
268fc98bd7 Remove extra service-codesearch job in deploy
This job was listed twice. Remove the extra one for clarity.

Change-Id: I7aa39e3757d6562af474ec7c9cfdda7d8024cd1c
2021-08-16 11:42:37 -07:00