go.mod: update osbuild/images to v0.141.0

tag v0.140.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>

Changes with 0.140.0

----------------
  * Loader part override followups (osbuild/images#1466)
    * Author: Michael Vogt, Reviewers: Tomáš Hozza
  * RHEL-10/gce: install cloud-utils-growpart by default (osbuild/images#1463)
    * Author: Tomáš Hozza, Reviewers: Michael Vogt, Simon de Vlieger
  * base-host-check: expand to cover more (COMPOSER-2498) (osbuild/images#1432)
    * Author: Simon de Vlieger, Reviewers: Tomáš Hozza
  * rhel8,9: move partitioning into YAML (osbuild/images#1390)
    * Author: Michael Vogt, Reviewers: Tomáš Hozza

— Somewhere on the Internet, 2025-04-28

---

tag v0.141.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>

Changes with 0.141.0

----------------
  * Shrink the current installer images a bit (osbuild/images#1423)
    * Author: Brian C. Lane, Reviewers: Achilleas Koutsou, Simon de Vlieger, Tomáš Hozza
  * Update EL10 Azure images with changes made in RHEL 9.6 (osbuild/images#1472)
    * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Tomáš Hozza
  * distro: add DNFSetReleaseVerVar to ImageConfig (osbuild/images#1465)
    * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Tomáš Hozza
  * test/base-host-check.sh: fix disabled firewall services check (osbuild/images#1471)
    * Author: Sanne Raymaekers, Reviewers: Achilleas Koutsou, Tomáš Hozza

— Somewhere on the Internet, 2025-04-29

---
This commit is contained in:
Achilleas Koutsou 2025-04-29 15:39:30 +03:00 committed by Tomáš Hozza
parent 7036e2bcb9
commit 84dfe7e21b
32 changed files with 1022 additions and 999 deletions

View file

@ -173,6 +173,8 @@ func (p *AnacondaInstaller) getBuildPackages(Distro) []string {
return packages
}
// getPackageSetChain returns the packages to install
// It will also include weak deps for the Live installer type
func (p *AnacondaInstaller) getPackageSetChain(Distro) []rpmmd.PackageSet {
packages := p.anacondaBootPackageSet()
@ -189,7 +191,7 @@ func (p *AnacondaInstaller) getPackageSetChain(Distro) []rpmmd.PackageSet {
Include: append(packages, p.ExtraPackages...),
Exclude: p.ExcludePackages,
Repositories: append(p.repos, p.ExtraRepos...),
InstallWeakDeps: true,
InstallWeakDeps: p.Type == AnacondaInstallerTypeLive,
},
}
}
@ -229,8 +231,13 @@ func (p *AnacondaInstaller) serialize() osbuild.Pipeline {
}
pipeline := p.Base.serialize()
options := osbuild.NewRPMStageOptions(p.repos)
// Documentation is only installed on live installer images
if p.Type != AnacondaInstallerTypeLive {
options.Exclude = &osbuild.Exclude{Docs: true}
}
pipeline.AddStage(osbuild.NewRPMStage(osbuild.NewRPMStageOptions(p.repos), osbuild.NewRpmStageSourceFilesInputs(p.packageSpecs)))
pipeline.AddStage(osbuild.NewRPMStage(options, osbuild.NewRpmStageSourceFilesInputs(p.packageSpecs)))
pipeline.AddStage(osbuild.NewBuildstampStage(&osbuild.BuildstampStageOptions{
Arch: p.platform.GetArch().String(),
Product: p.product,
@ -266,6 +273,13 @@ func (p *AnacondaInstaller) serialize() osbuild.Pipeline {
return pipeline
}
// payloadStages creates the stages needed to boot Anaconda
// - root and install users
// - lorax postinstall templates to setup the boot environment
// - Anaconda spoke configuration
// - Generic initrd with support for the boot iso
// - SELinux in permissive mode
// - Default Anaconda kickstart (optional)
func (p *AnacondaInstaller) payloadStages() []*osbuild.Stage {
stages := make([]*osbuild.Stage, 0)
@ -290,14 +304,6 @@ func (p *AnacondaInstaller) payloadStages() []*osbuild.Stage {
}
stages = append(stages, osbuild.NewUsersStage(usersStageOptions))
var LoraxPath string
if p.UseRHELLoraxTemplates {
LoraxPath = "80-rhel/runtime-postinstall.tmpl"
} else {
LoraxPath = "99-generic/runtime-postinstall.tmpl"
}
var anacondaStageOptions *osbuild.AnacondaStageOptions
if p.UseLegacyAnacondaConfig {
anacondaStageOptions = osbuild.NewAnacondaStageOptionsLegacy(p.AdditionalAnacondaModules, p.DisabledAnacondaModules)
@ -306,25 +312,17 @@ func (p *AnacondaInstaller) payloadStages() []*osbuild.Stage {
}
stages = append(stages, osbuild.NewAnacondaStage(anacondaStageOptions))
LoraxPath := "99-generic/runtime-postinstall.tmpl"
if p.UseRHELLoraxTemplates {
LoraxPath = "80-rhel/runtime-postinstall.tmpl"
}
stages = append(stages, osbuild.NewLoraxScriptStage(&osbuild.LoraxScriptStageOptions{
Path: LoraxPath,
BaseArch: p.platform.GetArch().String(),
}))
dracutModules := append(
p.AdditionalDracutModules,
"anaconda",
"rdma",
"rngd",
"multipath",
"fcoe",
"fcoe-uefi",
"iscsi",
"lunmask",
"nfs",
)
dracutOptions := dracutStageOptions(p.kernelVer, p.Biosdevname, dracutModules)
dracutOptions.AddDrivers = p.AdditionalDrivers
// Create a generic initrd suitable for booting Anaconda and activating supported hardware
dracutOptions := p.dracutStageOptions()
stages = append(stages, osbuild.NewDracutStage(dracutOptions))
stages = append(stages, osbuild.NewSELinuxConfigStage(&osbuild.SELinuxConfigStageOptions{State: osbuild.SELinuxStatePermissive}))
@ -360,6 +358,13 @@ func (p *AnacondaInstaller) payloadStages() []*osbuild.Stage {
return stages
}
// liveStages creates the stages needed to boot a live image with Anaconda installed
// - root user
// - livesys service to setup the live environment
// - Configure GNOME livesys session
// - Generic initrd with support for the boot iso
// - SELinux in permissive mode
// - Default Anaconda kickstart (optional)
func (p *AnacondaInstaller) liveStages() []*osbuild.Stage {
stages := make([]*osbuild.Stage, 0)
@ -390,14 +395,8 @@ func (p *AnacondaInstaller) liveStages() []*osbuild.Stage {
stages = append(stages, osbuild.GenFileNodesStages(p.Files)...)
dracutModules := append(
p.AdditionalDracutModules,
"anaconda",
"rdma",
"rngd",
)
dracutOptions := dracutStageOptions(p.kernelVer, p.Biosdevname, dracutModules)
dracutOptions.AddDrivers = p.AdditionalDrivers
// Create a generic initrd suitable for booting the live iso and activating supported hardware
dracutOptions := p.dracutStageOptions()
stages = append(stages, osbuild.NewDracutStage(dracutOptions))
if p.SElinux != "" {
@ -409,57 +408,56 @@ func (p *AnacondaInstaller) liveStages() []*osbuild.Stage {
return stages
}
func dracutStageOptions(kernelVer string, biosdevname bool, additionalModules []string) *osbuild.DracutStageOptions {
kernel := []string{kernelVer}
modules := []string{
"bash",
"systemd",
"fips",
"systemd-initrd",
"modsign",
"nss-softokn",
"i18n",
"convertfs",
"network-manager",
"network",
"url-lib",
"drm",
"plymouth",
"crypt",
"dm",
"dmsquash-live",
"kernel-modules",
"kernel-modules-extra",
"kernel-network-modules",
"livenet",
"lvm",
"mdraid",
"qemu",
"qemu-net",
"resume",
"rootfs-block",
"terminfo",
"udev-rules",
"dracut-systemd",
"pollcdrom",
"usrmount",
"base",
"fs-lib",
"img-lib",
"shutdown",
"uefi-lib",
// dracutStageOptions returns the basic dracut setup with anaconda support
// This is based on the dracut generic config (also called no-hostonly) with
// additional modules needed to support booting the iso and running Anaconda.
//
// NOTE: The goal is to let dracut maintain support for most of the modules and
// only add what is needed to support the boot iso and anaconda. When new
// hardware support is needed in the inird it just needs to be added to dracut,
// not everything that uses dracut (eg. anaconda, lorax, osbuild).
func (p *AnacondaInstaller) dracutStageOptions() *osbuild.DracutStageOptions {
// Common settings
options := osbuild.DracutStageOptions{
Kernel: []string{p.kernelVer},
EarlyMicrocode: false,
AddModules: []string{"pollcdrom", "qemu", "qemu-net"},
Extra: []string{"--xz"},
AddDrivers: p.AdditionalDrivers,
}
options.AddModules = append(options.AddModules, p.AdditionalDracutModules...)
if p.Biosdevname {
options.AddModules = append(options.AddModules, "biosdevname")
}
if biosdevname {
modules = append(modules, "biosdevname")
switch p.Type {
case AnacondaInstallerTypePayload:
// Lorax calls the boot.iso dracut with:
// --nomdadmconf --nolvmconf --xz --install '/.buildstamp' --no-early-microcode
// --add 'fips anaconda pollcdrom qemu qemu-net prefixdevname-tools'
options.Install = []string{"./buildstamp"}
options.AddModules = append(options.AddModules, []string{
"fips",
"anaconda",
"prefixdevname-tools",
}...)
options.Extra = append(options.Extra, []string{
"--nomdadmconf",
"--nolvmconf",
}...)
case AnacondaInstallerTypeLive:
// livemedia-creator calls the live iso dracut with:
// --xz --no-hostonly -no-early-microcode --debug
// --add 'livenet dmsquash-live dmsquash-live-ntfs convertfs pollcdrom qemu qemu-net'
options.AddModules = append(options.AddModules, []string{
"livenet",
"dmsquash-live",
"convertfs",
}...)
}
modules = append(modules, additionalModules...)
return &osbuild.DracutStageOptions{
Kernel: kernel,
Modules: modules,
Install: []string{"/.buildstamp"},
}
return &options
}
func (p *AnacondaInstaller) Platform() platform.Platform {