The cross distro test started failing on RHEL 10.1, because the osbuild/images version was a Go pseudo-version that the sed command parsing the version did not recognize.
The issue has been fixed in 9.6 0day ZStream in v132.1, so running the
test against anything older will make the test fail. This is currently
the case for RHEL-9-nightly pipeline.
Let's solve this annoyance.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
After the move of the repo configs to `osbuild/images`, we changed the
way to determine the all available distro repo configs by taking the
last release of 'images'. This turns out to be fragile, especially when
the test case is being run on a "rhel-x.y.0" branch or basically with
any old osbuild-composer binary. It could happen also in Nightly test
pipelines after the devel freeze.
We always compile osbuild-composer binary with debug information, so we
can determine the vendored 'images' version from the binary. We also
always ship repo configs from the same 'images' version in the RPMs.
Therefore modify the test case to check out the 'images' version that
osbuild-composer was compiled with and use repo configs from that
version.
In addition, don't reduce the depth when cloning the images repository,
because even 200 commits may be too little on some older RHEL ZStream
branches.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
Previously, the code would remove everything after the first dot in the
repo config filename. So 'rhel-10.0.json' -> 'rhel-10'. This means that
there was just a bunch of 'rhel-X' repo config names to compare. This is
probably a leftover from the days before we introduced dot-notation for
distro names.
Modify the test to effectivelly strip only the filename extension (the
part after the last dot, including the dot).
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
Expose the ${SUBJ} customization in Cloud API. Weldr API inherited it
automatically with the update of `osbuild/blueprint` to v1.6.0.
Adjust relevant test cases and unit tests to use this new customization.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
The vsphere verification is failing consistently with the following
error message from govc:
A component of the virtual machine is not accessible on the host.
Disabling it until we have time to look into it further.
Test actual image builds of older distros on RHEL and CentOS, to catch
issues such as https://issues.redhat.com/browse/RHEL-71397.
The test can be later extended to cover also Fedora, but this is out of
scope at this point, since the goal is to ensure that RHEL cross-distro
builds work, because these differ a lot.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This will allow using them inside Bash function that return values,
without tainting the returned value.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This test case is no longer being run with an osbuild-composer version
lower than v97, so there's no need to special case it.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
Completely remove the /etc/osbuild-composer/repositories directory used
for repo overrides, to ensure that only repos from the RPM are used.
Moreover, instead of trying to restart osbuild-composer, which is always
a tricky thing to do, let's just stop all services and call the Weldr
API. Since the service is socket-activated, this will start all the
necessary services.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
We used to provide the cloud-init user-data and meta-data to the VM as
key/value in the VM's extraConfig as guestinfo keys. This replaces bunch
of code that used to create an ISO, upload it to VSphere and attach it
to the VM.
We recently started to observe issues when uploading the ISO to our
testing VSphere instance in CI. This commit aims to circumvent this
issue by using a different and simpler way to provide the cloud-init
data to the VM.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
The networking to the cluster seems slightly flakey, so I noticed
a few failures when playing with it. A little retry is able to fix it.
The function was taken from deploy.sh. I considered de-duping it,
but deploy.sh runs in a context where
/usr/libexec/tests/osbuild-composer/shared_lib.sh is not yet
established, so it's unfortunately no so simple. :(
The old one is going to be decommissioned. I only changed:
- extracted the storage class to a variable
- adjusted the openshift yaml file to what I was given in the UI
- most importantly, we now use an instancetype to specify the
resource requirements instead of doing it manually
- the network is called default, instead of nic0 on this cluster
- we are downloading the oc and virtctl clients from the new cluster
so the versions match
Re-enable the vmware tests on RHEL 10 and use vcenter 8 instead of 6. This fixes the issues caused by outdated CPUs in old cluster by migrating to a new one with new hosts as well.
This commit tweaks the `cross-build.sh` to checkout the last release
tag of the images library instead of using main. The issue with using
main is that there are many false positive errors when e.g. a new
fedora release is added to main.
Ideally it would use the tag of the vendored images library but
this particular test looks at the rpm content so the information
what version of images was used is not readily available (we could
fix this but the workaround of this commit is hopefully sufficient).
Add more information when the cross-distro.sh test fails. Currently
it prints:
```
DEBUG: ===== ALL_DISTROS ====
rhel-8
...
rhel-8
DEBUG: ===== ALL_EXPECTED_DISTROS ====
fedora-40
...
fedora-42
DEBUG: ===== ALL_REMAINDERS ====
rhel-8
....
rhel-8
DEBUG: ===== END ====
Some distros are missing!
Missing distros:
```
But the most crucial information (i.e. what is installed) is
missing from this debug print (it can be found in a different
output but lets make it easy).
Remove incorrect comment (not an ostree image).
Add a greenprint for depsolving since it can take some time for that to
run and it makes more sense than pausing output on "Preparing
blueprint".
Add separate blueprint creation functions, one for each partitioning
layout:
- disk-plain
- disk-lvm
- disk-btrfs (Fedora only)
The existing 'filesystem' blueprint is also kept.
Each function also sets the $EXPECTED_MOUNTPOINTS variable for the
mountpoint check that happens after the build.
Call the script without a path since it's now in the PATH.
Drop the SELinux labelling workaround (chcon) from filesystem.sh and
image_tests.sh. The packaged tool is already labelled correctly.
Install osbuild-tools instead of osbuild-composer-tests in
regression-old-worker-new-composer.sh to get osbuild-image-info.
It turned out that our new F41 CI images have firewalld installed. Make
sure that the worker-executor port is opened in firewall, otherwise the
worker can't connect to the executor.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
Unfortunately, `which` does not seem to be installed by default on our
F41 CI images. Instead of doing the dance with rebuilds, which has been
problematic recently, let's not rely on `which` in scripts any more,
since we can replace it with the Bash built-in `type` command.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
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
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>