blueprint: add support for kernel customization

This commit is contained in:
Ondřej Budai 2019-10-24 14:16:17 +02:00 committed by Tom Gundersen
parent ead3ae6cab
commit 8d010c0466
8 changed files with 22 additions and 8 deletions

View file

@ -22,7 +22,7 @@ func (t *amiOutput) translate(b *Blueprint) *pipeline.Pipeline {
addF30FixBlsStage(p) addF30FixBlsStage(p)
addF30LocaleStage(p) addF30LocaleStage(p)
addF30FSTabStage(p) addF30FSTabStage(p)
addF30GRUB2Stage(p) addF30GRUB2Stage(p, nil)
addF30SELinuxStage(p) addF30SELinuxStage(p)
addF30QemuAssembler(p, "qcow2", t.getName()) addF30QemuAssembler(p, "qcow2", t.getName())
return p return p

View file

@ -73,6 +73,14 @@ func (b *Blueprint) ToPipeline(outputFormat string) (*pipeline.Pipeline, error)
return nil, &InvalidOutputFormatError{outputFormat} return nil, &InvalidOutputFormatError{outputFormat}
} }
func (b *Blueprint) getKernelCustomization() *KernelCustomization {
if b.Customizations == nil {
return nil
}
return b.Customizations.Kernel
}
// FilenameFromType gets the canonical filename and MIME type for a given // FilenameFromType gets the canonical filename and MIME type for a given
// output format // output format
func FilenameFromType(outputFormat string) (string, string, error) { func FilenameFromType(outputFormat string) (string, string, error) {

View file

@ -7,7 +7,7 @@ type diskOutput struct{}
func (t *diskOutput) translate(b *Blueprint) *pipeline.Pipeline { func (t *diskOutput) translate(b *Blueprint) *pipeline.Pipeline {
p := getF30Pipeline() p := getF30Pipeline()
addF30FSTabStage(p) addF30FSTabStage(p)
addF30GRUB2Stage(p) addF30GRUB2Stage(p, b.getKernelCustomization())
addF30SELinuxStage(p) addF30SELinuxStage(p)
addF30QemuAssembler(p, "raw", t.getName()) addF30QemuAssembler(p, "raw", t.getName())
return p return p

View file

@ -78,15 +78,21 @@ func getCustomF30PackageSet(packages []string, excludedPackages []string) *pipel
return p return p
} }
func addF30GRUB2Stage(p *pipeline.Pipeline) { func addF30GRUB2Stage(p *pipeline.Pipeline, kernelCustomization *KernelCustomization) {
id, err := uuid.Parse("76a22bf4-f153-4541-b6c7-0332c0dfaeac") id, err := uuid.Parse("76a22bf4-f153-4541-b6c7-0332c0dfaeac")
if err != nil { if err != nil {
panic("invalid UUID") panic("invalid UUID")
} }
kernelOptions := "ro biosdevname=0 net.ifnames=0"
if kernelCustomization != nil {
kernelOptions += " " + kernelCustomization.Append
}
p.AddStage(pipeline.NewGRUB2Stage( p.AddStage(pipeline.NewGRUB2Stage(
&pipeline.GRUB2StageOptions{ &pipeline.GRUB2StageOptions{
RootFilesystemUUID: id, RootFilesystemUUID: id,
KernelOptions: "ro biosdevname=0 net.ifnames=0", KernelOptions: kernelOptions,
}, },
)) ))
} }

View file

@ -21,7 +21,7 @@ func (t *openstackOutput) translate(b *Blueprint) *pipeline.Pipeline {
p := getCustomF30PackageSet(packages[:], []string{}) p := getCustomF30PackageSet(packages[:], []string{})
addF30LocaleStage(p) addF30LocaleStage(p)
addF30FSTabStage(p) addF30FSTabStage(p)
addF30GRUB2Stage(p) addF30GRUB2Stage(p, b.getKernelCustomization())
addF30SELinuxStage(p) addF30SELinuxStage(p)
addF30FixBlsStage(p) addF30FixBlsStage(p)
addF30QemuAssembler(p, "qcow2", t.getName()) addF30QemuAssembler(p, "qcow2", t.getName())

View file

@ -25,7 +25,7 @@ func (t *qcow2Output) translate(b *Blueprint) *pipeline.Pipeline {
p := getCustomF30PackageSet(packages[:], excludedPackages[:]) p := getCustomF30PackageSet(packages[:], excludedPackages[:])
addF30LocaleStage(p) addF30LocaleStage(p)
addF30FSTabStage(p) addF30FSTabStage(p)
addF30GRUB2Stage(p) addF30GRUB2Stage(p, b.getKernelCustomization())
addF30SELinuxStage(p) addF30SELinuxStage(p)
addF30FixBlsStage(p) addF30FixBlsStage(p)
addF30QemuAssembler(p, "qcow2", t.getName()) addF30QemuAssembler(p, "qcow2", t.getName())

View file

@ -20,7 +20,7 @@ func (t *vhdOutput) translate(b *Blueprint) *pipeline.Pipeline {
p := getCustomF30PackageSet(packages[:], []string{}) p := getCustomF30PackageSet(packages[:], []string{})
addF30LocaleStage(p) addF30LocaleStage(p)
addF30FSTabStage(p) addF30FSTabStage(p)
addF30GRUB2Stage(p) addF30GRUB2Stage(p, b.getKernelCustomization())
addF30SELinuxStage(p) addF30SELinuxStage(p)
addF30FixBlsStage(p) addF30FixBlsStage(p)
addF30QemuAssembler(p, "qcow2", t.getName()) addF30QemuAssembler(p, "qcow2", t.getName())

View file

@ -7,7 +7,7 @@ type vmdkOutput struct{}
func (t *vmdkOutput) translate(b *Blueprint) *pipeline.Pipeline { func (t *vmdkOutput) translate(b *Blueprint) *pipeline.Pipeline {
p := getF30Pipeline() p := getF30Pipeline()
addF30FSTabStage(p) addF30FSTabStage(p)
addF30GRUB2Stage(p) addF30GRUB2Stage(p, b.getKernelCustomization())
addF30SELinuxStage(p) addF30SELinuxStage(p)
addF30QemuAssembler(p, "vmdk", t.getName()) addF30QemuAssembler(p, "vmdk", t.getName())
return p return p