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.
The version check is failing on the "dot" version, while trying to
convert "118.1" to an integer. Delete the condition for skipping the
test, because it will never be running on anything older than v83
anyway.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
Add a check which leverages the osbuild/images@check-spec-deps-action
action to check that the SPEC files requires at least the minimum
versions for dependencies specified by the `osbuild/images`.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
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>
Add a workaround for the issue that podman falls back to the 'cni'
network backend when finding any container images in the local storage
when executed for the first time. Since we started embedding container
images in our CI runner images, this resulted in failures, because the
OS is missing some required CNI plugins. Until we somehow fix this in
osbuild, we explicitly set the network backend to 'netavark'.
This is relevant only for RHEL-9 / c9s, because Fedora since F40 and
el10 support only `netavark` backend.
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>
Define a reusable minsize property in the cloud API schema.
The minsize type is either a uint64 or a string with data units.
Internally, this creates a union (json.RawMessage) type called Minsize
and optional uses of the property are of type *Minsize. We define an
internal decodeMinsize() function to convert *Minsize to uint64. This
is similar to the decodeSize() function in the blueprint, but made
specifically to handle *Minsize.
Removes an ineffectual GO111MODULE=off assignment in the build phase, as
we require go to run in module mode at that stage.
In the check phase we run without go modules, so the same stipulation as
on RHEL applies, where the vendor directory gets ignored in certain
cases. Also remove `-mod=vendor` from GOFLAGS on RHEL during the check
phase, as without go modules this is an ineffectual flag.
Fixed distribution list type, function signatures (later versions parse
uuids in the generated code), defaults actually being set and added
x-go-type where needed.
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
This commit discards the logrus output when the tests are run. That
might be a controversial change but the amount of redundant output
that drowns the actual failures makes it very hard to work with
these tests.
The original compose request contains useful details that are not
preserved when it is converted to a manifest. Things like the
distribution, arch, image type, blueprint or customizations are useful
when examining builds later.
This saves the original request json using the job id and a new
directory (ComposeRequest) under the artifacts directory. The original
request, if present, is then added to the compose/<id>/metadata response
alongside the package list.
Related: RHEL-60120
This will allow clients to display more information about a compose,
including the image type created, arch and distro, and blueprint to
customizations used to create it.
Related: RHEL-60120