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)
addF30LocaleStage(p)
addF30FSTabStage(p)
addF30GRUB2Stage(p)
addF30GRUB2Stage(p, nil)
addF30SELinuxStage(p)
addF30QemuAssembler(p, "qcow2", t.getName())
return p

View file

@ -73,6 +73,14 @@ func (b *Blueprint) ToPipeline(outputFormat string) (*pipeline.Pipeline, error)
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
// output format
func FilenameFromType(outputFormat string) (string, string, error) {

View file

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

View file

@ -78,15 +78,21 @@ func getCustomF30PackageSet(packages []string, excludedPackages []string) *pipel
return p
}
func addF30GRUB2Stage(p *pipeline.Pipeline) {
func addF30GRUB2Stage(p *pipeline.Pipeline, kernelCustomization *KernelCustomization) {
id, err := uuid.Parse("76a22bf4-f153-4541-b6c7-0332c0dfaeac")
if err != nil {
panic("invalid UUID")
}
kernelOptions := "ro biosdevname=0 net.ifnames=0"
if kernelCustomization != nil {
kernelOptions += " " + kernelCustomization.Append
}
p.AddStage(pipeline.NewGRUB2Stage(
&pipeline.GRUB2StageOptions{
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{})
addF30LocaleStage(p)
addF30FSTabStage(p)
addF30GRUB2Stage(p)
addF30GRUB2Stage(p, b.getKernelCustomization())
addF30SELinuxStage(p)
addF30FixBlsStage(p)
addF30QemuAssembler(p, "qcow2", t.getName())

View file

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

View file

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

View file

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