distro/rhel: make the GCE image UEFI-only
This was the intention since the beginning (based on images built by Google. Clean up code and mark the platform associated with GCE image types as UEFI-only. The only missing part is the default partition table used by the GCE image, which is shared with other image types and still contains the BIOS boot partition. I added a TODO comment to preserve this information, but kept things as they are for now to not have to introduce a new set of GCE-specific base partition tables. Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This commit is contained in:
parent
dd26769abc
commit
2c686cc988
30 changed files with 38 additions and 7244 deletions
|
|
@ -279,15 +279,10 @@ func newDistro(name string, minor int) *distribution {
|
|||
imageInstaller(),
|
||||
)
|
||||
|
||||
// TODO: review requirement for platform with overridden packages for GCE
|
||||
gceX86Platform := &gceX86{
|
||||
X86: platform.X86{
|
||||
// TODO: BIOS should not be set to true for GCE, since it is meant to be UEFI only.
|
||||
BIOS: true,
|
||||
UEFIVendor: rd.vendor,
|
||||
BasePlatform: platform.BasePlatform{
|
||||
ImageFormat: platform.FORMAT_GCE,
|
||||
},
|
||||
gceX86Platform := &platform.X86{
|
||||
UEFIVendor: rd.vendor,
|
||||
BasePlatform: platform.BasePlatform{
|
||||
ImageFormat: platform.FORMAT_GCE,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/common"
|
||||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/platform"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
)
|
||||
|
||||
|
|
@ -18,14 +17,15 @@ func gceImgType(rd distribution) imageType {
|
|||
packageSets: map[string]packageSetFunc{
|
||||
osPkgsKey: gcePackageSet,
|
||||
},
|
||||
defaultImageConfig: defaultGceByosImageConfig(rd),
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
defaultImageConfig: defaultGceByosImageConfig(rd),
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
// TODO: the base partition table still contains the BIOS boot partition, but the image is UEFI-only
|
||||
basePartitionTables: defaultBasePartitionTables,
|
||||
}
|
||||
}
|
||||
|
|
@ -38,14 +38,15 @@ func gceRhuiImgType(rd distribution) imageType {
|
|||
packageSets: map[string]packageSetFunc{
|
||||
osPkgsKey: gceRhuiPackageSet,
|
||||
},
|
||||
defaultImageConfig: defaultGceRhuiImageConfig(rd),
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
defaultImageConfig: defaultGceRhuiImageConfig(rd),
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
// TODO: the base partition table still contains the BIOS boot partition, but the image is UEFI-only
|
||||
basePartitionTables: defaultBasePartitionTables,
|
||||
}
|
||||
}
|
||||
|
|
@ -295,25 +296,3 @@ func gceRhuiPackageSet(t *imageType) rpmmd.PackageSet {
|
|||
},
|
||||
}.Append(gceCommonPackageSet(t))
|
||||
}
|
||||
|
||||
// gceX86 embeds the X86 platform and overrides the GetPackages() method to
|
||||
// exclude the grub2-pc package.
|
||||
// See the image type documentation for more information:
|
||||
// https://github.com/osbuild/osbuild-composer/blob/d12d9674d6293f2c374a66ba2c4fac102633d360/image-types/rhel8/google-gce.md#rhel-8-byosrhui--rhel-9-byos-image-differences-compared-to-googles-image
|
||||
type gceX86 struct {
|
||||
platform.X86
|
||||
}
|
||||
|
||||
func (p *gceX86) GetPackages() []string {
|
||||
packages := p.BasePlatform.FirmwarePackages
|
||||
|
||||
packages = append(packages,
|
||||
"dracut-config-generic",
|
||||
"dracut-config-generic",
|
||||
"efibootmgr",
|
||||
"grub2-efi-x64",
|
||||
"shim-x64")
|
||||
|
||||
return packages
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -271,8 +271,6 @@ func newDistro(name string, minor int) *distribution {
|
|||
)
|
||||
|
||||
gceX86Platform := &platform.X86{
|
||||
// TODO: BIOS should not be set to true for GCE, since it is meant to be UEFI only.
|
||||
BIOS: true,
|
||||
UEFIVendor: rd.vendor,
|
||||
BasePlatform: platform.BasePlatform{
|
||||
ImageFormat: platform.FORMAT_GCE,
|
||||
|
|
|
|||
|
|
@ -17,13 +17,14 @@ var (
|
|||
packageSets: map[string]packageSetFunc{
|
||||
osPkgsKey: gcePackageSet,
|
||||
},
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
// TODO: the base partition table still contains the BIOS boot partition, but the image is UEFI-only
|
||||
basePartitionTables: defaultBasePartitionTables,
|
||||
}
|
||||
|
||||
|
|
@ -34,13 +35,14 @@ var (
|
|||
packageSets: map[string]packageSetFunc{
|
||||
osPkgsKey: gceRhuiPackageSet,
|
||||
},
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
kernelOptions: gceKernelOptions,
|
||||
bootable: true,
|
||||
defaultSize: 20 * common.GibiByte,
|
||||
image: liveImage,
|
||||
buildPipelines: []string{"build"},
|
||||
payloadPipelines: []string{"os", "image", "archive"},
|
||||
exports: []string{"archive"},
|
||||
// TODO: the base partition table still contains the BIOS boot partition, but the image is UEFI-only
|
||||
basePartitionTables: defaultBasePartitionTables,
|
||||
}
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue