diff --git a/internal/distro/rhel85/pipelines.go b/internal/distro/rhel85/pipelines.go index 5f4eaf018..9abac0475 100644 --- a/internal/distro/rhel85/pipelines.go +++ b/internal/distro/rhel85/pipelines.go @@ -1222,12 +1222,7 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk p.Name = "image" p.Build = "name:build" - p.AddStage(osbuild.NewTruncateStage(&osbuild.TruncateStageOptions{Filename: outputFilename, Size: fmt.Sprintf("%d", pt.Size)})) - sfOptions := sfdiskStageOptions(pt) - loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) - p.AddStage(osbuild.NewSfdiskStage(sfOptions, loopback)) - - for _, stage := range osbuild.GenMkfsStages(pt, loopback) { + for _, stage := range osbuild.GenImagePrepareStages(pt, outputFilename) { p.AddStage(stage) } @@ -1235,6 +1230,12 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk copyOptions, copyDevices, copyMounts := osbuild.GenCopyFSTreeOptions(inputName, inputPipelineName, outputFilename, pt) copyInputs := osbuild.NewCopyStagePipelineTreeInputs(inputName, inputPipelineName) p.AddStage(osbuild.NewCopyStage(copyOptions, copyInputs, copyDevices, copyMounts)) + + for _, stage := range osbuild.GenImageFinishStages(pt, outputFilename) { + p.AddStage(stage) + } + + loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) p.AddStage(bootloaderInstStage(outputFilename, pt, arch, kernelVer, copyDevices, copyMounts, loopback)) return p } diff --git a/internal/distro/rhel86/pipelines.go b/internal/distro/rhel86/pipelines.go index 99a27328c..f3bb9f280 100644 --- a/internal/distro/rhel86/pipelines.go +++ b/internal/distro/rhel86/pipelines.go @@ -946,12 +946,7 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk p.Name = "image" p.Build = "name:build" - p.AddStage(osbuild.NewTruncateStage(&osbuild.TruncateStageOptions{Filename: outputFilename, Size: fmt.Sprintf("%d", pt.Size)})) - sfOptions := sfdiskStageOptions(pt) - loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) - p.AddStage(osbuild.NewSfdiskStage(sfOptions, loopback)) - - for _, stage := range osbuild.GenMkfsStages(pt, loopback) { + for _, stage := range osbuild.GenImagePrepareStages(pt, outputFilename) { p.AddStage(stage) } @@ -959,7 +954,14 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk copyOptions, copyDevices, copyMounts := osbuild.GenCopyFSTreeOptions(inputName, inputPipelineName, outputFilename, pt) copyInputs := osbuild.NewCopyStagePipelineTreeInputs(inputName, inputPipelineName) p.AddStage(osbuild.NewCopyStage(copyOptions, copyInputs, copyDevices, copyMounts)) + + for _, stage := range osbuild.GenImageFinishStages(pt, outputFilename) { + p.AddStage(stage) + } + + loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) p.AddStage(bootloaderInstStage(outputFilename, pt, arch, kernelVer, copyDevices, copyMounts, loopback)) + return p } diff --git a/internal/distro/rhel90/pipelines.go b/internal/distro/rhel90/pipelines.go index c21170179..2bb33e8d2 100644 --- a/internal/distro/rhel90/pipelines.go +++ b/internal/distro/rhel90/pipelines.go @@ -946,12 +946,7 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk p.Name = "image" p.Build = "name:build" - p.AddStage(osbuild.NewTruncateStage(&osbuild.TruncateStageOptions{Filename: outputFilename, Size: fmt.Sprintf("%d", pt.Size)})) - sfOptions := sfdiskStageOptions(pt) - loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) - p.AddStage(osbuild.NewSfdiskStage(sfOptions, loopback)) - - for _, stage := range osbuild.GenMkfsStages(pt, loopback) { + for _, stage := range osbuild.GenImagePrepareStages(pt, outputFilename) { p.AddStage(stage) } @@ -959,6 +954,12 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk copyOptions, copyDevices, copyMounts := osbuild.GenCopyFSTreeOptions(inputName, inputPipelineName, outputFilename, pt) copyInputs := osbuild.NewCopyStagePipelineTreeInputs(inputName, inputPipelineName) p.AddStage(osbuild.NewCopyStage(copyOptions, copyInputs, copyDevices, copyMounts)) + + for _, stage := range osbuild.GenImageFinishStages(pt, outputFilename) { + p.AddStage(stage) + } + + loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) p.AddStage(bootloaderInstStage(outputFilename, pt, arch, kernelVer, copyDevices, copyMounts, loopback)) return p } diff --git a/internal/distro/rhel90beta/pipelines.go b/internal/distro/rhel90beta/pipelines.go index 82911537d..26078de31 100644 --- a/internal/distro/rhel90beta/pipelines.go +++ b/internal/distro/rhel90beta/pipelines.go @@ -1037,12 +1037,7 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk p.Name = "image" p.Build = "name:build" - p.AddStage(osbuild.NewTruncateStage(&osbuild.TruncateStageOptions{Filename: outputFilename, Size: fmt.Sprintf("%d", pt.Size)})) - sfOptions := sfdiskStageOptions(pt) - loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) - p.AddStage(osbuild.NewSfdiskStage(sfOptions, loopback)) - - for _, stage := range osbuild.GenMkfsStages(pt, loopback) { + for _, stage := range osbuild.GenImagePrepareStages(pt, outputFilename) { p.AddStage(stage) } @@ -1050,7 +1045,14 @@ func liveImagePipeline(inputPipelineName string, outputFilename string, pt *disk copyOptions, copyDevices, copyMounts := osbuild.GenCopyFSTreeOptions(inputName, inputPipelineName, outputFilename, pt) copyInputs := osbuild.NewCopyStagePipelineTreeInputs(inputName, inputPipelineName) p.AddStage(osbuild.NewCopyStage(copyOptions, copyInputs, copyDevices, copyMounts)) + + loopback := osbuild.NewLoopbackDevice(&osbuild.LoopbackDeviceOptions{Filename: outputFilename}) p.AddStage(bootloaderInstStage(outputFilename, pt, arch, kernelVer, copyDevices, copyMounts, loopback)) + + for _, stage := range osbuild.GenImageFinishStages(pt, outputFilename) { + p.AddStage(stage) + } + return p }