manifest: fix dracut modules and drivers for Anaconda installers

When the image definitions were updated to the new framework, I failed
to update the dracut modules for Anaconda installers to match the
existing ones.

The changes in the manifest are at commit
c4af0a1886.
The nvdimm module and the additional drivers were removed.

The nvdimm module in particular is required for http boot but should
only be specified for RHEL 9.  In RHEL 8 it is part of the default set
of modules.

See 02bb7a0b4f and
dc95382ba3 for the original commits that
introduced these changes.
This commit is contained in:
Achilleas Koutsou 2023-01-27 16:11:45 +01:00 committed by Jakub Rusz
parent 1dfc82ae4a
commit 2f96cc7051
4 changed files with 21 additions and 4 deletions

View file

@ -301,7 +301,12 @@ func edgeInstallerImage(workload workload.Workload,
img.Groups = users.GroupsFromBP(customizations.GetGroups())
img.SquashfsCompression = "xz"
img.AdditionalDracutModules = []string{"prefixdevname", "prefixdevname-tools"}
img.AdditionalDracutModules = []string{
"nvdimm", // non-volatile DIMM firmware (provides nfit, cuse, and nd_e820)
"prefixdevname",
"prefixdevname-tools",
}
img.AdditionalDrivers = []string{"cuse", "ipmi_devintf", "ipmi_msghandler"}
if len(img.Users)+len(img.Groups) > 0 {
// only enable the users module if needed
@ -477,7 +482,12 @@ func imageInstallerImage(workload workload.Workload,
img.Users = users.UsersFromBP(customizations.GetUsers())
img.Groups = users.GroupsFromBP(customizations.GetGroups())
img.AdditionalDracutModules = []string{"prefixdevname", "prefixdevname-tools"}
img.AdditionalDracutModules = []string{
"nvdimm", // non-volatile DIMM firmware (provides nfit, cuse, and nd_e820)
"prefixdevname",
"prefixdevname-tools",
}
img.AdditionalDrivers = []string{"cuse", "ipmi_devintf", "ipmi_msghandler"}
img.AdditionalAnacondaModules = []string{"org.fedoraproject.Anaconda.Modules.Users"}
img.SquashfsCompression = "xz"

View file

@ -49,6 +49,7 @@ type ImageInstaller struct {
AdditionalKernelOpts []string
AdditionalAnacondaModules []string
AdditionalDracutModules []string
AdditionalDrivers []string
}
func NewImageInstaller() *ImageInstaller {
@ -80,6 +81,7 @@ func (img *ImageInstaller) InstantiateManifest(m *manifest.Manifest,
anacondaPipeline.Biosdevname = (img.Platform.GetArch() == platform.ARCH_X86_64)
anacondaPipeline.AdditionalAnacondaModules = img.AdditionalAnacondaModules
anacondaPipeline.AdditionalDracutModules = img.AdditionalDracutModules
anacondaPipeline.AdditionalDrivers = img.AdditionalDrivers
tarPath := "/liveimg.tar.gz"

View file

@ -37,6 +37,7 @@ type OSTreeInstaller struct {
AdditionalDracutModules []string
AdditionalAnacondaModules []string
AdditionalDrivers []string
}
func NewOSTreeInstaller(commit ostree.CommitSpec) *OSTreeInstaller {
@ -69,6 +70,7 @@ func (img *OSTreeInstaller) InstantiateManifest(m *manifest.Manifest,
anacondaPipeline.Checkpoint()
anacondaPipeline.AdditionalDracutModules = img.AdditionalDracutModules
anacondaPipeline.AdditionalAnacondaModules = img.AdditionalAnacondaModules
anacondaPipeline.AdditionalDrivers = img.AdditionalDrivers
rootfsPartitionTable := &disk.PartitionTable{
Size: 20 * common.MebiByte,

View file

@ -48,8 +48,9 @@ type Anaconda struct {
// Additional anaconda modules to enable
AdditionalAnacondaModules []string
// Additional dracut modules to enable
// Additional dracut modules and drivers to enable
AdditionalDracutModules []string
AdditionalDrivers []string
}
// NewAnaconda creates an anaconda pipeline object. repos and packages
@ -216,7 +217,9 @@ func (p *Anaconda) serialize() osbuild.Pipeline {
"lunmask",
"nfs",
)
pipeline.AddStage(osbuild.NewDracutStage(dracutStageOptions(p.kernelVer, p.Biosdevname, dracutModules)))
dracutOptions := dracutStageOptions(p.kernelVer, p.Biosdevname, dracutModules)
dracutOptions.AddDrivers = p.AdditionalDrivers
pipeline.AddStage(osbuild.NewDracutStage(dracutOptions))
pipeline.AddStage(osbuild.NewSELinuxConfigStage(&osbuild.SELinuxConfigStageOptions{State: osbuild.SELinuxStatePermissive}))
if p.InteractiveDefaults != nil {