distro: add rhel 84 support

cockpit-composer can now build rhel 8.4 images. Our distro name for
rhel 8.4 is rhel-84 unlike prior rhel releases which fall
under the umbrella name rhel-8. rhel 8.4 still uses the same
repos as the rest of the rhel 8 releases but points to a different
nightly repo for testing purposes. Test cases are added. The changes
between rhel 8.3 and 8.4 are as follows:

There is now a hybrid boot partition scheme for x86_64. x86_64 images
now use uefi boot and have 3 gpt partitions: a small unformated
partition for mbr compatibility, an efi boot partition of type vfat, and
a root partition of type xfs. The packages grub2-efi-x64 and shim-x64
are added as bootloader packages for all x86_64 images.

For qcow2 images ro is added as a kernel option and the following
packages are added (+) or removed (-):
+ dosfstools
+ efi-filesystem
+ efivar
+ efivar-libs
+ grub2-efi-x64
+ shim-x64
- rhn-client-tools
- rhnlib
- rhnsd
- rhn-setup
This commit is contained in:
Jacob Kozol 2020-10-01 14:11:14 +02:00 committed by jkozol
parent 117da5aa8a
commit 0dd17ae3f7
14 changed files with 60459 additions and 6 deletions

View file

@ -25,6 +25,7 @@ import (
"github.com/osbuild/osbuild-composer/internal/distro/fedora32"
"github.com/osbuild/osbuild-composer/internal/distro/fedora33"
"github.com/osbuild/osbuild-composer/internal/distro/rhel8"
"github.com/osbuild/osbuild-composer/internal/distro/rhel84"
)
type Composer struct {
@ -62,7 +63,7 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string, logger *
return nil, err
}
c.distros, err = distro.NewRegistry(fedora32.New(), fedora33.New(), rhel8.New())
c.distros, err = distro.NewRegistry(fedora32.New(), fedora33.New(), rhel8.New(), rhel84.New())
if err != nil {
return nil, fmt.Errorf("Error loading distros: %v", err)
}
@ -94,6 +95,9 @@ func (c *Composer) InitWeldr(repoPaths []string, weldrListener net.Listener) err
// TODO: refactor to be more generic
name := hostDistro.Name()
if name == "rhel-84" {
name = "rhel-8"
}
if beta {
name += "-beta"
}