Commit graph

6791 commits

Author SHA1 Message Date
Ondřej Budai
eaf90f5aea schutzbot: shorten the slack notification
We are on a quest to reduce clutter on our Slack channels. Thus,
I decided to simplify the daily CI notifications:
  - the link to the edge pipelines got removed, it's now in bookmarks
  - several words were removed to make the message shorter
  - the link to the pipeline is now a hyperlink
  - the whole message should be a one liner
  - less text is now bold

I've also simplified the format in which we send the message. I think
that the block format used before makes redundant line-breaks.
Unfortunately, the mentions need to be done using user IDs instead
of user names. If you ever need to find them, go to the user's profile,
click on the three dots and select "Copy member ID".
2024-10-24 10:45:24 +02:00
Sanne Raymaekers
d5912259a0 cloud/awscloud: rework create fleet retry logic
The current path sometimes launches two instances, which is problematic
because the rest of the secure instance code expects exactly one
instance. A security group could be attached to both instances, and
would block the worker from launching any more SIs, as it tries to
delete the old security group first, which is still held by one of the
surplus SIs which didn't get terminated.

Only retry if:
- on "UnfulfillableCapacity" or "InsufficientInstanceCapacity" error codes;
- there wasn't an instance launched anyway.

If either of these checks fail, do not try to launch another one, and
just fail the job.
2024-10-24 10:29:26 +02:00
Sanne Raymaekers
661f39cbb9 cmd/osbuild-service-maintenance: add test for filtering SIs 2024-10-23 10:32:57 +02:00
Sanne Raymaekers
04a5ca6965 cmd/osbuild-service-maintenance: clean up secure instances
Now and then there are leftover secure instances, probably when worker
instances get terminated during builds, this is possible in ASGs. 2
hours as a cutoff should be enough, since the build times out after 60
minutes, and fetching the output archive after 30 minutes, so that
leaves 30 minutes for booting and connection.
2024-10-23 10:32:57 +02:00
Sanne Raymaekers
1c7a276d6f cloud/aws: add maintenance functions for secure instance cleanup 2024-10-23 10:32:57 +02:00
Sanne Raymaekers
8fc91d1c6d cloud/aws: move maintenance calls to separate file 2024-10-23 10:32:57 +02:00
Achilleas Koutsou
66c2c31a1c blueprint: add kickstart contents to conversion test
The option was added in f5c6cdd9cf but a
value was never added to the conversion test.
2024-10-22 22:08:39 +02:00
Achilleas Koutsou
654a6ad8f5 blueprint: enable the anaconda modules customization
This has been available since v0.74.0 of osbuild/images but was never
connected to the frontend blueprint.

See https://github.com/osbuild/images/pull/799
2024-10-22 22:08:39 +02:00
Tom Koscielniak
fb7a2aab96 Disable Packer job in scheduled GA pipelines 2024-10-21 14:43:18 +02:00
Ondřej Budai
1b169a150c packer: don't deregister old AMIs
Imagine this scenario: the packer job is ran, an AMI gets created.
We configure our deployment to use this AMI. Then, someone retries the
packer job. Since we have force_deregister=true, this will not only
create a new AMI, but also remove the old one (because it has the same
name). Thus, our deployment will get broken, because the source AMI
no longer exists. This means that the ASG cannot replace any broken
instances, and the secure instance feature gets absolutely broken
because it cannot spawn new secure instances (they "inherit" the AMI
ID from their parents).

Let's remove force_deregister=true, so the AMI never gets replaced.
This might cause some pipelines to start failing because they are
rerunning the packer job for same commit (the GA pipeline currently).
Let's fix those then, rerunning the packer job is just confusing.

If this causes some unexpected issues, we can always resort to using
unique AMI names (by appending a timestamp to their name), but having
multiple AMIs with different names, but same tags will cause our
terraform configuration to be reapplied everytime there's a rerun,
which is also not great.
2024-10-21 11:48:02 +02:00
schutzbot
5eedccfc1a Post release version bump
[skip ci]
2024-10-16 08:15:51 +00:00
Sanne Raymaekers
5eb8227bf3 cloud/awscloud: retry CreateFleet regardless of the error code
The errors returned by create fleet are not entirely clear. It seems it
also returns `InsufficientInstanceCapacity` in addition to
`UnfulfillableCapacity`. Let's just retry three times regardless of the
create fleet error, that way there's no need to chase error codes which
aren't clearly defined.
2024-10-15 16:04:19 +02:00
Sanne Raymaekers
73968236bd repositories: add rhel-9.6 2024-10-14 09:23:19 +02:00
Mario Cattamo
425583c1fd test: disable ostree-remount service checking since /sysroot is ro and /var rw already 2024-10-11 16:31:41 +02:00
Sanne Raymaekers
905df418aa cloud/aws: add a third secure instance fallback across AZs
In case the on demand option failed as well, retry one more time across
availability zones. This significantly increases the pool of available
instances, but increases network related costs, as transferring data
between AZs is not free.
2024-10-07 15:56:07 +02:00
Jakub Rusz
78d3b2fde5 tests/filesystem: increase /usr size
The test started failing on 8.10 GA. It seems that something changed in
the system repos and the size we had originally set was not enough.
2024-10-07 15:02:42 +03:00
Jakub Rusz
a54ac303a3 templates: fix apiVersion
There were errors using the latest oc 4.17 version:

error: failed to read input object (not a Template?): unable to decode
"templates/openshift/composer.yml": no kind "Template" is registered for
version "v1" in scheme "k8s.io/kubectl/pkg/scheme/scheme.go:28"
2024-10-03 16:27:21 +02:00
Jakub Rusz
07a18a5d49 tests/regression: Add config for v3 certificates
When generating x509 v3 certs we need to explicitely set "CA:TRUE"
otherwise they're not trusted to be used. Also start running the tests
on RHEL-9.5 and RHEL-10.0
2024-10-03 16:27:21 +02:00
schutzbot
b9d6dd342d Post release version bump
[skip ci]
2024-10-02 08:15:56 +00:00
Jakub Rusz
763cc2ffb0 CI: integration test rules fixup
Just making it more clear and scheduling aws.sh on RHEL-10 and GA
runners.
2024-09-30 07:43:42 +02:00
Lukas Zapletal
65d5f48847 cloud: fixed typo UnfulfillableCapacity 2024-09-26 18:09:45 +02:00
schutzbot
b2548f5b1a schutzfile: Update snapshots to 20240924 2024-09-25 12:41:52 +02:00
Jakub Rusz
d0ac2f1a37 tests/CI: enable oci api test on rhel-10 2024-09-25 08:30:45 +02:00
Jakub Rusz
ec4aff7e58 test/cases: Use openscap customization on RHEL-10 2024-09-25 08:30:45 +02:00
Sanne Raymaekers
8cf9a542ab Revert "repositories: add fedora-41"
This reverts commit 9c68a82d2e.
2024-09-24 14:46:58 +02:00
Sanne Raymaekers
84d916dd96 Revert ".gitlab-ci.yml: add fedora-41"
This reverts commit 75cd8ee780.
2024-09-24 14:46:58 +02:00
Sanne Raymaekers
2bdeede4b8 Revert "schutzbot/terraform: new fedora-41 runners"
This reverts commit 8485481c90.
2024-09-24 14:46:58 +02:00
Sanne Raymaekers
4cf488376d Revert "Schutzfile: add fedora-41"
This reverts commit 8ef5bac4b9.
2024-09-24 14:46:58 +02:00
Sanne Raymaekers
3f636467ff Revert "test/data: add fedora-41"
This reverts commit 9782abe184.
2024-09-24 14:46:58 +02:00
Sanne Raymaekers
9782abe184 test/data: add fedora-41 2024-09-23 14:30:27 -07:00
Sanne Raymaekers
8ef5bac4b9 Schutzfile: add fedora-41 2024-09-23 14:30:27 -07:00
Sanne Raymaekers
8485481c90 schutzbot/terraform: new fedora-41 runners 2024-09-23 14:30:27 -07:00
Sanne Raymaekers
75cd8ee780 .gitlab-ci.yml: add fedora-41 2024-09-23 14:30:27 -07:00
Sanne Raymaekers
9c68a82d2e repositories: add fedora-41 2024-09-23 14:30:27 -07:00
Tomáš Hozza
3607783339 provision.sh: ensure no repositories in the Service scenario
In the Service scenario, we should be testing that osbuild-composer
works fine, without any repository configurations being present on the
filesystem.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-23 18:51:39 +02:00
Tomáš Hozza
7437770352 composer: don't create RepoRegistry using reporegistry.New()
The `reporegistry.New()` has been enhanced to return an error, in case
there were no repositories loaded. This was to fix the situation in many
unit tests, which were previously not loading any repositories and
silently not running any tests.

This however broke our SaaS deployment, where we actually do not
configure any repositories on the filesystem. As a result,
osbuild-composer started to fail on it.

Workaround this situation in osbuild-composer by reverting to the old
behavior by loading the repo configs separately and then using the
loaded repos (which could be empty map) to initialize the RepoRegistry.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-23 18:51:39 +02:00
schutzbot
f001c05157 Post release version bump
[skip ci]
2024-09-20 15:15:08 +00:00
Tomáš Hozza
992bf257ec Test/repositories: remove the AUX GPG key from RHEL-8 repos
This is needed for GPG key import to work on RHEL-9, because the key
uses SHA-1. This results in the following error when importing the key
during the build of the build container:

"Signature not supported. Hash algorithm SHA1 not available."

We do not need the AUX key in our RHEL-8 repo definitions used for
testing.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
efc251fa02 CloudAPI: test /sboms endpoint for Koji composes
Extend the API unit test for Koji composes, to verify that the newly
added /sboms endpoint works correctly.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
cf79bf677b CloudAPI: test /sboms endpoint for regular composes
Extend the unit test for regular (non-Koji) composes, to verify that
 the newly added /sboms endpoint works correctly.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
6e8f0418a6 CloudAPI: add new /composes/{id}/sboms endpoint
Add a new /sboms API endpoint, for getting SBOM documents for a given
compose ID. The endpoint returns an array of SBOM documents for each
image built as part of the compose. For each image, there is an SBOM
document for each osbuild pipeline, which installs RPM packages. This is
usually one 'buildroot' and one 'image' pipeline.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
102d06774c CloudAPI: extend manifestJobResultsFromJobDeps() to also return JobInfo
Extend the `manifestJobResultsFromJobDeps()` function to also return the
manifest `JobInfo`. This will be useful to inspect the job dependencies
and eliminate the need to add a specialized function for getting only
the `JobInfo`.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
0053a6187b CI/Koji: run Koji tests only on the latest RHEL-9 GA
None of our worker is running RHEL-8 any more. There's no value in
testing the Koji scenario on RHEL-8, RHEL-9 is fully sufficient.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
b50816a706 CI/Koji: test building of RHEL-10 on RHEL-9
This is what is currently happening on our Brew workers.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
dd7afa416c CI/Koji: test RHEL-8 builds on RHEL-9
We have been testing builds of RHEL-9 on RHEL-8 for the Koji use case.
However, all of our workers are now running the latest GA RHEL-9
version. Therefore we should flip the test and test building of RHEL-8
on RHEL-9.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
fd33a37366 Test/koji.sh: adjust for SBOM documents
Adjust the test case to cope with the SPDX SBOM documents uploaded to
the Koji. Also explicitly check that there is the expected number of
SBOM documents uploaded as the image build output.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
71a12742d4 Worker/osbuild/koji: upload SBOM documents
Extend the Koji target handling in the osbuild job, to also upload SBOM
documents attached to the related depsolve job result.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
1c7462b275 Worker/koji-finalize: import uploaded SBOM documents
If the Koji target result contains information about any uploaded SBOM
documents, import them to Koji as part of the finalize task.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
c109265abb Target/koji: extend the result struct with SBOM docs
Extend the Koji target result struct with an optional slice for uploaded
SBOM documents.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00
Tomáš Hozza
4ae35a0ed9 Worker/osbuild: depend on depsolve job for Koji composes
For Koji composes, all files are uploaded to Koji as part of the osbuild
job (specifically as part of handling the Koji target). So in order to
be able to upload SBOM documents to Koji as part of Koji compose, the
osbuild job needs to to be able to access the depsolve job result, which
contains the SBOM documents. For this, the osbuild job must depend on
the depsolve job.

For Koji composes, make sure that osbuild job depends on the depsolve
job and set the DepsolveDynArgsIdx.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2024-09-20 17:02:09 +02:00