Some of the version config directives make it possible to wind
up with dupes - for instance, our config for the 'minimal' image
can result in multiple instances of VirtInstallImage for F31
appearing in the list, meaning we'll build the same image two
or more times in the same run. That's silly! Let's not do that.
Using a dict keyed on the release number and arch we wind up with
after interpreting the config file should avoid it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
its correct type.
Previously, it was not possible to set the type of the partition via
the specific GUID. This commit adds support for adding the GUID into
the gtp_type of the partition description in hdds.json and this field
will be utilized in to code.
This commit adds support for boot options, that can be passed
from `hdds.json` to control the creation of the virtual
machines, such as enabling of EFI based machines, boot order
control, etc. It also adds EFI based machine to `hdds.json`
and adds a kickstart file for such machine.
We previously did a filter like the one for 'i686 on F31+' for
'ppc64 on F29+', only in a different place which was actually a
better place. That filter is now unneeded as F28 went EOL, so
drop it...but move the i686 F31+ filter into the same place, as
it's better done there than in create().
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This just isn't possible any more, we no longer produce all
the necessary bits to generate images for i686.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This reverts commit 3f9cbd27d4.
I verified that related bug#1571860 is not present anymore on f29.
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
to avoid error like:
===
$~/createhdds/createhdds.py support
...
Traceback (most recent call last):
File "/root/createhdds/createhdds.py", line 821, in <module>
main()
File "/root/createhdds/createhdds.py", line 811, in main
args.func(args, hdds)
File "/root/createhdds/createhdds.py", line 701, in cli_image
img.create(args.textinst)
File "/root/createhdds/createhdds.py", line 291, in create
loctmp.format(fedoradir, str(self.release), variant, arch), "--name", "createhdds",
NameError: name 'variant' is not defined
===
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
Archive now has up to F27, we're not testing ppc64 any more, and
the old workaround is no longer needed.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
ppc64 (as opposed to ppc64le) was retired in Fedora 29. Tweaking
hdds.json to reflect this now is a bit awkward, so instead let's
leave it as-is, but add code to createhdds to not really include
a ppc64 image in the expected list if it's for F29 or later.
Once F28 goes EOL we can just drop all ppc64 from hdds.json and
lose this code.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
README was badly outdated, so give it a coat of paint. A person
trying to get up to speed on openQA was misled by the current
message into thinking something was wrong.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
...But also be careful not to treat them as 'unknown' either.
This avoids the ansible plays regenerating outdated images (we
try to avoid that and just have the cron job do it).
Various things were being set in odd orders and not used right
later on, this is a general clean-up that solves that and makes
things a bit easier to read (I hope).
Whoops, that last commit just wasn't very good. We need to
re-open the libvirt connection and re-get the domain object,
and also we should catch errors while destroying and undefining
the domain...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This was just an oversight - we don't destroy and undefine the
'createhdds' domain on the path where the final retry to create
an image times out, we just wipe the temp file and exit. So we
leave a qemu process sitting around until createhdds runs again
(and, on openQA production, exhausting swap space).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The way this was done, when we ran `all` on a ppc host it wiped
all the x86_64 and i686 virt-install images, and when we ran
`all` on an x86_64 host it wiped all the ppc64 virt-install
images. Doing it this way avoids that.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
as today seems to be required to avoid createhdds to hang
on creation of disk_f25_minimal_2_ppc64le.img.tmp ...[13/22]
Trying to VNC connect, show anaconda menu stuck on
"Performing post-installation setup tasks"
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
Assumption createhdds executed on a PowerPC ppc64le host
to create the PowerPC specific images.
Detect current CPU arch of host machine to create virt-install images
only for supported architectures. (hardcoded lists)
hdds.json specific changes for PowerPC
* no desktop or kde images
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
'stable' means 'all current stable releases', and is used for
desktop and server as we need to ensure we have those images
available for all stable releases (including the '-3' release
while it's not EOL) for update testing. (Currently, F24 update
tests are all failing as the images are missing).
'current' means 'the current stable release' - it's the same as
'-1', but just easier to understand. It's used for support.
It seems like the installer images (in os/images) for the F26
Workstation tree somehow come from the OStree installer compose
rather than the network installer compose; install.img and
boot.iso are far larger than they should be, and match the size
of the OStree installer .iso . So instead of using those images
and bumping up the memory size to 4GiB, use the Everything tree
for F26 Workstation image builds and go back to 2GiB.
The updates.img is broken with current F26, and Radek claims the
bug is fixed. Let's see. Unfortunately I don't remember what I
put in the updates.img, so if I have to recreate it things could
get fun...
This bug is causing havoc with image creation on openqa01, so
use an updates.img for F26 image builds until it's fixed.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This is an attempt to add features desirable for creating
Taskotron base images. It extends the 'release' handling for
virt-install images in several ways to allow requesting of
'branched' and 'rawhide' image creation. It also adds an arg
to request virt-install image creation run in text mode, not
graphical mode. Graphical mode is what we always want for
openQA (so the installed OS doesn't have kernel params intended
for serial console interaction), but for Taskotron purposes,
we want the install run in text mode.
This also adds 'branched' to the default JSON file for minimal
and desktop, as we will want branched versions of these images
for the critpath update testing workflow to work on Branched
after Bodhi activation.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
There's been an annoying bug on the production openQA server
for a while now: createhdds runs to refresh the upgrade base
images don't actually work most of the time, each attempt to
run virt-install fails. I finally got time to debug this a bit
today and it seems to be some kind of network issue: the VM has
no network access so the install doesn't work. I've no idea why
that's happening, but using user-mode networking seems to work
around it for now and shouldn't have any terrible side effects
even for openQA servers not affected by this problem. So let's
do this until we can pin down the real bug.
Summary:
I've come to dislike the approach where we source files that
get included in the disk images remotely; it's unnecessarily
complicated and needlessly exposes us to unexpected changes in
the remote files. So simply keep the files in this git repo
instead, none of them is very big. This also simplifies the
code.
Also, change all the kickstarts to specify --device=link and
--activate on their network lines. These arguments *should*
be included, according to the documentation (the first to
specify which device the config is for, the second to specify
that it should be activated in the installer environment), and
I think the lack of the second is actually now a problem for
the FreeIPA kickstart enrolment test (not sure exactly what
changed to make this a problem where it wasn't before, but
*something* has, and this fixes it).
Test Plan:
check that all tests still run properly. The
FreeIPA enrolment kickstart test should now get somewhat
further. Before this change, for F25 and Rawhide, it fails to
enrol at all during install. Now it should enrol properly -
that's what the kickstart changes fix, it was failing because
it wasn't using the right network config - but it still fails
when trying to log in as test1, due to RHBZ #1366403 .
Reviewers: jskladan, garretraziel
Reviewed By: garretraziel
Subscribers: tflink
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D968
Summary:
We've kinda been having too much trouble with virt-builder
lately, mainly SELinux related issues due to how it does image
customization. It also produces images that differ in notable
ways from what a 'typical' install would give. virt-install
solves both these problems, and also gives us more flexibility
for storage configuration and post-install customization should
we need them in future.
The change isn't really too drastic, and the design is similar:
instead of virt-builder commands files, each image type now has
a kickstart file where all its customizations can be done.
There's also a single extra image dict key, 'variant', which
specifies which install tree variant to use for running the
install. It defaults to 'Everything' (for F24+) and 'Server'
(for <F24, as Everything wasn't installable until F24) but we
set it to 'Server' for the server images and 'Workstation' for
the desktop images, so those installs will use the correct
variant install class.
We run the installs in VNC. You can do it with a serial console
and log the output, but then anaconda gets clever and changes
several things in the installed system based on the fact that
you did the install over a serial console: it twiddles with
the kernel args and doesn't set graphical.target as the default.
We don't want any of that mess, so we do a VNC install.
The 'size' value is just a number of gigabytes for virt-install
images (as that's how the virt-install 'size' argument works).
This also drops some unused 32-bit images (we don't do 32-bit
KDE or Server upgrade tests, so there's no need to build those
images).
Test Plan:
Re-generate all affected images and re-run all tests
that use them, make sure they work. I am doing this on staging
at present. Note: this would render D911 unnecessary.
Reviewers: garretraziel
Reviewed By: garretraziel
Subscribers: tflink
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D917