29 Commits

Author SHA1 Message Date
James E. Blair
675974dc31 Cleanup image build playbooks, elements, and roles
These are in zuul-providers now.

Change-Id: Ic07b680932e033a3cd360038c273d030ffe6cfdc
2025-01-31 13:06:30 -08:00
James E. Blair
5251425216 Remove image build jobs
These are moving to zuul-providers.

Change-Id: I9558307355c1c80a40ea0551cff66fc27015f468
2025-01-31 12:55:10 -08:00
James E. Blair
92fa241e68 Remove provider configuration
This is being moved to zuul-providers.

Change-Id: I82325b1becc770a069a7718b3d638be30123adf5
2025-01-31 11:28:59 -08:00
James E. Blair
0ae1c05cfa Remove resources from providers
In an attempt to gracefully move the providers from this repo to
zuul-providers, remove the resources from them so that zuul-launcher
can delete the images.

Change-Id: I1b24cde353bd5359da474252b3672228127b0826
2025-01-31 11:27:52 -08:00
James E. Blair
8b17589865 Revert "Remove provider configuration"
This reverts commit e068fa393e0acc19d4ddabe5d6a8a123db2cfcfd.

Zuul-launcher doesn't deal well with deleting providers while
images are present.  Let's do this in multiple steps.

Change-Id: I7457a366eb87a6ca89d8b7fe885cc9efa7c15721
2025-01-31 11:25:45 -08:00
James E. Blair
e068fa393e Remove provider configuration
This is being moved to opendev/zuul-providers.

Change-Id: If9a0c4a45520a56077edb4452a137e88bcc95d47
2025-01-31 10:58:13 -08:00
James E. Blair
530959042e Compress raw/vhd images
This uses zstd to compress raw and vhd images before uploading to
temporary storage.  The executor will detect the .zst extension and
decompress them before uploading to the cloud.

Depends-On: https://review.opendev.org/935956
Change-Id: I76303cbb3f1bbaf99ba7852bf1853dcc28b6d9b3
2024-12-17 23:47:03 +00:00
James E. Blair
b7fa1115f3 Move dib image output to /opt
In some clouds we don't have enough space on / to store a raw image,
so tell dib to write the image output to /opt.

Change-Id: Ia3d13ed811f705a450030a2046b2cd1ffd5a22b3
2024-11-21 08:48:51 -08:00
James E. Blair
b6e68b0a99 Add vexxhost provider and build raw images
To test building and uploading a raw image, add a vexxhost provider
and also tell the image build job to build a raw image.

Vexxhost does not have a "normal" flavor, so no flavors or labels
are added to it.  We will only upload images to it.

Change-Id: I38005072637dc5b60ef7f58caa980bb7595c3907
2024-11-20 15:47:48 -08:00
James E. Blair
6231841461 Increase swift upload threads to 10
We previously used swiftclient to upload image objects, and it uses
10 threads to upload SLO segments in parallel.  Openstacksdk uses 5
by default.  Increase it to 10 to match swiftclient.  This should
improve our initial upload performance.

Change-Id: Idfee3cbbc9d49d9e14ad7d9db3ceafbd8ca526f6
2024-11-18 10:39:04 -08:00
James E. Blair
fcb5462c1f Switch to using openstacksdk for image uploads
This switches back to openstacksdk so that we have a little more
control over image uploads into rax flex.  In particluar, this lets
us:

* Ensure that X-Delete-After is supplied for the segments and the
  manifest of SLO uploads (sdk does this).
* Put the segments in the same container as the manifest which
  avoids issues with deleting objects.
* Add a prune routine to compensate for auto-expiration issues.

This also switches to a newly created container so we can try to
delete the old container with stuck objects.

Change-Id: I564e692881693abd4794df3c444e245705d24b54
2024-11-16 11:21:09 -08:00
James E. Blair
4d527e99ba Fix zuul ssh key for image builds
Put the ssh authorized_keys on one line to avoid issues with
embedded newlines.

Change-Id: Idfd3964c7cc8075f70c17a11804837a04238b5d4
2024-10-22 15:21:35 -07:00
James E. Blair
c18c8fa64a Add rax-flex network config
This is required in order to launch nodes in rax-flex, and is the
current value in our nodepool configuration.

Change-Id: I01cb08d9c569156cec69c2a3c48ed6a0df2339e4
2024-10-19 08:22:42 -07:00
Zuul
b417ddd062 Merge "Enable the debian-bullseye image build job" 2024-10-12 17:35:58 +00:00
James E. Blair
41cd215559 Add temporary noop job
There is a bug that causes Zuul to get stuck if a noop job runs
on a queue item with a repo state; until that is fixed, use a
"real" noop job instead of the built-in one.

Change-Id: I64dafd7daf57d8cceea6b074b62e7cffaa5afc0c
2024-10-12 09:32:53 -07:00
Zuul
a2037da922 Merge "Add file matchers to image build jobs" 2024-10-10 20:21:32 +00:00
James E. Blair
32f2b50d4f Add file matchers to image build jobs
This will allow us to make changes to provider configuration
without rebuilding images every time.

Add the noop job for the cases where no other job would run.

Change-Id: Id9de7758ddeb675fb298fbb0edf4fa398e8bec71
2024-10-10 12:28:58 -07:00
James E. Blair
41006dcc1b Enable the debian-bullseye image build job
Now that the image exists, indicate that this job builds it.

Change-Id: I75075c07dad92d73fdbf7a7558ebf2889c98dd48
2024-10-10 11:37:57 -07:00
James E. Blair
5a14ae734d Add raxflex provider and debian-bullseye image
This adds the initial nodepool-in-zuul config to:

* Tell zuul that it's responsible for an image named "debian-bullseye"
* Attach the job to a pipeline that builds missing images
* Connect to raxflex and upload that image
* Use that image when launching nodes with a label of
  "niz-debian-bullseye-normal"

Change-Id: I8a838253a4683f34f538c90949369ba2d192e8d7
2024-10-10 11:37:30 -07:00
James E. Blair
3a457896c4 Delete images after 72 hours
Change-Id: I11771fbe517f20155b82112f951fd058689258db
2024-10-09 08:32:14 -07:00
James E. Blair
45eea2f191 Return image artifacts
Also, only run the upload tasks if the main playbook is sucessful.

Change-Id: I72c7fc34e083de7096f626e1f52dfdadd35c463f
2024-10-08 15:16:17 -07:00
James E. Blair
91a3c71eef Finish upload job
This fixes some minor issues with the upload job and removes the
temporary testing settings.

It also configures the job so that if a secret is provided, it will
upload the image, but if the secret is omitted, it will only build it.

We omit the secret in check, and provide it in gate.  In the future,
we will provide it on the dedicated image build pipelines.

Change-Id: I17e519a6282e700fd09ce16c95bf58ef092b9dc6
2024-10-08 07:01:22 -07:00
James E. Blair
24be1f3b72 Fix build_diskimage_image_name variable name
Change-Id: I129e5cd3429526f08bf2b170aaa0ba885918f387
2024-10-03 13:15:03 -07:00
James E. Blair
c0c3d6f44c Add artifact upload support
This is intended to upload image build artifacts to rax-flex.

This may require some iteration post-merge to get right, so for
the moment, the actual build is skipped and we upload a test file.
Once it's working, the normal job can be restored.

Change-Id: I3e024e092b5b4f6c4842c2947c9a2b160a948755
2024-10-03 12:43:17 -07:00
James E. Blair
421e59f7bc Add debian-bullseye image
This adds an initial debian bullseye dib build job.

Depends-On: https://review.opendev.org/929147
Change-Id: I63f4077305981b7fbce850ae642923cc117a7810
2024-09-12 19:04:00 -07:00
James E. Blair
0f30e60e96 Convert python2 dib element scripts to python3
As part of the move to zuul jobs building images we've discovered we
have a couple of scripts that are invoked by python2. Python2 isn't
available be default in the test images and python2 is old enough now
that we should just use python3. This change updates things to make it
so.

Co-Authored-By: Clark Boylan <clark.boylan@gmail.com>
Change-Id: Ib8692ef1389f80b4af59784d5b89d6dadc349a7c
2024-09-12 10:55:54 -07:00
James E. Blair
7521476a99 Copy DIB elements from project-config
This commit is a verbatim copy of the nodepool/elements directory
in the openstack/project-config repo.

Change-Id: I86768fcda43f2997700ce748ba7118a2ab2d43f0
2024-09-12 08:40:30 -07:00
James E. Blair
1e1321ff6c Add initial Zuul project config
This adds noop jobs for now.

Change-Id: I3cf8e9d98520a9c956cde9bcf25dabec3a7e1c47
2024-09-12 08:40:28 -07:00
OpenDev Project Creator
a434374724 Added .gitreview 2024-09-11 22:55:25 +00:00