Commit graph

2548 commits

Author SHA1 Message Date
Simon Steinbeiss
63fe1c4c83 32
Release osbuild-composer 32

Signed-off-by: Simon Steinbeiss <simon.steinbeiss@redhat.com>
Co-Developed-by: Christian Kellner <christian@kellner.me>
Co-Developed-by: Tom Gundersen <teg@jklm.no>
2021-08-28 16:41:26 +02:00
Christian Kellner
230572c121 ci: unpin osbuild for RHEL 9.0
Take osbuild from the nightlies.
2021-08-28 09:20:19 +02:00
yih
68cfe2ee58 distro/rhel85: add tests for edge raw image
Test the newly added RHEL for Edge 8.5 raw images, based on
the existing OSTree tests.
2021-08-28 09:20:19 +02:00
Christian Kellner
1a063680b5 distro/rhel85: add support for edge raw images
OSBuild Composer can now build the RHEL 8.5 Raw Images. This images are
compressed raw images, i.e. a file that has a partition layout with an
deployed OSTree commit in it. It can be used to flash onto a hard drive
or booted in a virtual machine. An existing OSTree commit needs to
be provided.
The following image new types are supported: edge-raw-image.
2021-08-28 09:20:19 +02:00
Christian Kellner
c6b2d3009b distro/rhel85: partition table for edge + aarch64
Define the partition layout for RHEL for Edge images on arm64.
2021-08-28 09:20:19 +02:00
Christian Kellner
1054eab392 distro/rhel85: extract edge image pipelines
Extract the pipelines that create the edge raw image so that we can
expose that as its own image type.
2021-08-28 09:20:19 +02:00
Christian Kellner
0612d14502 distro/rhel85: aarch64 support for edge installers
All RHEL for Edge installer should be supported on aarch64 now.
2021-08-28 09:20:19 +02:00
Christian Kellner
97b20ca0da distro/rhel85: aarch64 support for bootiso mono
Add aarch64 support for the bootiso.mono stage: select the proper efi
architecture and include isolinux only on x86.
2021-08-28 09:20:19 +02:00
Christian Kellner
3e90d66f5c distro/rhel85: no biosdevname on aarch64
Do not include the biosdevname dracut module on aarch64, where it
does not exist.
2021-08-28 09:20:19 +02:00
Christian Kellner
44cf29dad0 distro/rhel85: aarch64 pkgs for installers
Make the package sets for all the installer work on aarch64.
Needed to explicitly pull in fcoe-utils for anaconda on aarch64.
2021-08-28 09:20:19 +02:00
Christian Kellner
fc5c2dbe7d distro/rhel85: refactor installer pkgs set
Split out the common package set of the anaconda based installers and
the coreos installer based one.
2021-08-28 09:20:19 +02:00
Christian Kellner
714250aa9c distro/rhel85: refactor pkg set generation
Instead of using package sets at the distro, arch and image type
level and then merging them in `PackageSets`, store the function
that generates the package set in the image type and have them
return all the package set. In order to do so, they now take an
imageType parameter so that they can also return architecture
dependent packages.
2021-08-28 09:20:19 +02:00
Christian Kellner
0e9e1b32d4 distro/rhel85: move distro build pkgs to pkg set
Instead of having a common build package set defined at distro
struct level and merging them together with build packages in
the image type (and arches), we do the "inheritance" at the
package set level and append more specific packages to base
sets there. We also now ensure that each image type does have
a build package set defined.
The actual package set should not change for anything due to
this commit.
2021-08-28 09:20:19 +02:00
Christian Kellner
963df5188e distro/rhel85: split up intaller build pkgs set
Split the common installer build packages from the one specific to
anaconda and edge.
NB: The "inheritance" is now done in the package sets rather than
outside, via package set merging.
2021-08-28 09:20:19 +02:00
Christian Kellner
755bde0afb distro/rhel85: remove duplicated edge builds pkgs
The edge specific build packages, `edgeBuildPkgsKey` where defined
on the distro level but also always included in all actual edge
image types; there were thus duplicated.
2021-08-28 09:20:19 +02:00
Christian Kellner
d6d40c8416 distro/rhel85: dont pin osbuild for rhel-8.5
Use osbuild from the 8.5 repos (should be osbuild 33 right now).
2021-08-28 09:20:19 +02:00
Yi He
7af1273b5f test: update rhel85 snapshots 2021-08-28 09:20:19 +02:00
Christian Kellner
608d3b3517 distro/rhel85: add test for simplified installer
Add a comprehensive test suite for the simplified installer,
based on the existing OSTree tests.
2021-08-28 09:20:19 +02:00
Christian Kellner
4e80c1bc82 distro/rhel85: add simplified edge installer
This adds a new installer called the "Simplified Installer" for Edge.
In contrast to the existing insaller, which is based on Anaconda, this
new installer based on the CoreOS installer project[1], a small rust
based binary that is executed in the initramfs and will flash a raw
image to a specified installation device. For this a new blueprint
option is introduced. The raw image is created from an existing OSTree
commit and embedded into the resulting bootable iso. When booting the
iso the installation will automatically start witout any interaction
from the user.
NB: As with the existing edge installer, support is currently limited
to x86. The new installer also does not support non-uefi boot.

[1] https://github.com/coreos/coreos-installer

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Antonio Murdaca <runcom@linux.com>
2021-08-28 09:20:19 +02:00
Christian Kellner
3877d63c82 distro/rhel85: greenboot param for grub2 stage
Add a new param to the helper function creating the grub2 stage, that
indicates whether greenboot should be enabled. So far this is false
for all uses, so nothing should change.
2021-08-28 09:20:19 +02:00
Christian Kellner
450d12fada osbuild2/grub: add greenboot option
The greenboot option, introduced in osbuild 33, enables the
feature of the same name in grub that allows rolling back
bad updates automatically.
2021-08-28 09:20:19 +02:00
Christian Kellner
6d08418107 blueprint: add CheckAllowed helper
New helper to check if a blueprint containts only a set of allowed
customization. If not an error is returned.
2021-08-28 09:20:19 +02:00
Christian Kellner
36084fba20 distro/rhel85: add efibootmgr to x64 boot pgk set
Explicitly include efibootmgr in the list of x86_64 uefi boot pkgs.
Normally this is included via comps groups[1] (or weak deps).

[1] https://pagure.io/fedora-comps/blob/main/f/comps-f36.xml.in#_64
2021-08-28 09:20:19 +02:00
Christian Kellner
6e70506903 osbuild2/copy: ctor helper with only inputs
Add a simple constructor helper function that does not have mounts
and devices but only inputs.
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
8970cdfd83 distro/rhel85: fix input name for copy tree inputs
The name parameter always existed but was not actually used.
2021-08-28 09:20:19 +02:00
Christian Kellner
242e1d69ee distro/rhel85: make isolinux installation optional
isolinux might not be wanted if legacy support is not desired or if it
is not supported by the architecture, i.e. by anything else than x86.
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
4126f4e17a distro/rhel85: name param for xorrisofs input
It might not always be `bootiso-tree`.
2021-08-28 09:20:19 +02:00
Christian Kellner
3781cc0f47 distro/rhel85: make anaconda optional for dracut
Add an argument to `dracutStageOptions` so that additional dracut
modules can be supplied. Remove `anaconda` from the list of mods
that are included by default, and manually include it for the
anaconda based installer.

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Antonio Murdaca <runcom@linux.com>
2021-08-28 09:20:19 +02:00
Antonio Murdaca
10e4a853bd osbuild2: ostree options for the fstab stage
osbuild, since version 30, supports the ostree deployments for the
fstab stage.

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Christian Kellner <christian@kellner.me>
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
a98be74135 osbuild2/ostree.preptree: add missing options
Add the missing options for the `org.osbuild.ostree.preptree` stage.
2021-08-28 09:20:19 +02:00
Christian Kellner
cda1884de3 osbuild2: files input is a valid copy stage input
Mark the `FilesInput` as valid input for the copy stage input so it
can be used in the constructor helper function(s).

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Antonio Murdaca <runcom@linux.com>
2021-08-28 09:20:19 +02:00
Christian Kellner
d27596b24a osbuild2: make inputs generic for copy stage ctor
Add a level of indirection for the copy stage constructor function
in order to be able to use it with existing input types, like the
files input.

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Antonio Murdaca <runcom@linux.com>
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
2a98885953 osbuild2: OSTreeRemote → OSTreeSourceRemote
Properly name the ostree remote source struct.
2021-08-28 09:20:19 +02:00
Christian Kellner
f08fa8c5ca distro/rhel85: add install option for grub2 stage
Add a new `install` option to the `grub2StageOptions` which directly
translates to the `uefi.install` option for the grub2 stage. This
should be false for all existing pipelines, where RPM directly is
used to fill `/boot/efi/EFI/<vendor>`.

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Antonio Murdaca <runcom@linux.com>
2021-08-28 09:20:19 +02:00
Antonio Murdaca
4fdf4dbd01 osbuild2: add stages for raw images and grub iso
Add the new stages included in osbuild 30 that can be used to
deploy an OSTree commit as well as the grub iso stage that
is used to configure grub2 (efi) for isos.
Bump the spec file requirement accordingly.

Co-Developed-by: Achilleas Koutsou <achilleas@koutsou.net>
Co-Developed-by: Christian Kellner <christian@kellner.me>
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
14b5e98be8 osbuild2/xorrisofs: make Boot section optional
Should be a pointer otherwise it creates an empty object in the manifest
which makes the stage fail.

Co-Developed-by: Christian Kellner <christian@kellner.me>
2021-08-28 09:20:19 +02:00
Christian Kellner
a936c44d24 devcontainer: run container with privileges
Needed to actually execute osbuild in the container, since it
needs to mount and access loop devices.
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
51bb4ea3a1 distro/rhel85: grub2 prefix path based on partition
If the partition table has a /boot partition, the grub2 prefix path
should be /grub2.
2021-08-28 09:20:19 +02:00
Achilleas Koutsou
39b0cf39d6 osbuild2: add support for LVM stages
Stage options implement a validate() method for checking values against
schema constraints.
2021-08-28 09:20:19 +02:00
Alexander Todorov
b777444319 Update Dependabot config
- limit the number of open PRs
- check for actions updates less often b/c this is less critical
2021-08-27 14:07:48 +02:00
Alexander Todorov
01f2e02a1b Whitelist Dependabot
it looks to me that the permission action will work only for regular
accounts, not bots.
2021-08-27 14:07:48 +02:00
Xiaofeng Wang
c683c70d8a test: Update ostree-ng.sh to cover bug BZ#1951087
Update the first blueprint to use "normal" kernel instead of to
use "rt" kernel. Then upgrade to "rt" kernel.

To work with this bug fix, we need osbuild fix and have to pin to
osbuild latest commit.

The customizations.user is removed from upgrade blueprint to work
with this bug fix. But it's for RHEL 8.5 only.
2021-08-27 12:56:54 +02:00
Christian Kellner
df30073d65 distro/rhel85: pre-load uid/gid database for edge
When building RHEL for Edge commits and a parent together with an
URL was specified, add a `org.osbuild.ostree.passwd` stage which
then will pre-load the uid/gid database with the data from the
parent commit. This ensures that uids and gids do not change for
the "child" commit.
2021-08-27 12:56:54 +02:00
Christian Kellner
f8c8f28ac8 osbuild2: new org.osbuild.ostree.passwd stage
Add support for the `org.osbuild.ostree.passwd` and with it also
support for the `org.osbuild.ostree.checkout` input.
This stage can be used to pre-load the user and groups database
from an existing commit to ensure that uids/gids are stable.
2021-08-27 12:56:54 +02:00
Christian Kellner
7059995268 osbuild-pipeline: support for ostree arguments
Add support for an "ostree" object that can contain the usual
"ref", "parent" and "url" option for ostree based artifacts.
2021-08-27 12:56:54 +02:00
Gianluca Zuccarelli
3b5783d8a0 distro: clean rhel90 image-installer package sets 2021-08-27 11:02:26 +02:00
Xiaofeng Wang
bff49c410d test: Add case - running edge-container on OCP as stage repo 2021-08-27 09:29:28 +02:00
Achilleas Koutsou
8c9d887f62 test/cases: update ostree-ng.sh to use new port
Edge container now serves on 8080
2021-08-27 09:29:28 +02:00
Achilleas Koutsou
b08fdf5e3f test/data: update rhel85 edge container manifests
Signed-off-by: Achilleas Koutsou <achilleas@koutsou.net>
2021-08-27 09:29:28 +02:00
Achilleas Koutsou
17a1d38189 news: add entry for edge-container using nginx
Signed-off-by: Achilleas Koutsou <achilleas@koutsou.net>
2021-08-27 09:29:28 +02:00