Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,7 @@ OSTree simplified installer:
- RUNNER:
- openstack/rhel-8.6-nightly-x86_64-large
- openstack/centos-stream-8-x86_64
# NOTE: coreos-installer not yet available in RHEL 9.0
# - openstack/rhel-9.0-nightly-x86_64
- openstack/rhel-9.0-nightly-x86_64

OSTree raw image:
stage: test
Expand Down
9 changes: 9 additions & 0 deletions internal/disk/customizations.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package disk

import (
"encoding/hex"
"io"
"math/rand"

Expand Down Expand Up @@ -97,3 +98,11 @@ func newRandomUUIDFromReader(r io.Reader) (uuid.UUID, error) {
id[8] = (id[8] & 0x3f) | 0x80 // Variant is 10
return id, nil
}

// NewRandomVolIDFromReader creates a random 32 bit hex string to use as a
// volume ID for FAT filesystems
func NewRandomVolIDFromReader(r io.Reader) (string, error) {
volid := make([]byte, 4)
_, err := r.Read(volid)
return hex.EncodeToString(volid), err
}
8 changes: 3 additions & 5 deletions internal/distro/rhel90/distro.go
Original file line number Diff line number Diff line change
Expand Up @@ -639,8 +639,7 @@ func newDistro(distroName string) distro.Distro {
exports: []string{"bootiso"},
}

// edgeSimplifiedInstallerImgType := imageType{
_ = imageType{
edgeSimplifiedInstallerImgType := imageType{
name: "edge-simplified-installer",
nameAliases: []string{"rhel-edge-simplified-installer"},
filename: "simplified-installer.iso",
Expand Down Expand Up @@ -920,9 +919,8 @@ func newDistro(distroName string) distro.Distro {
exports: []string{"bootiso"},
}

// NOTE: Edge simplified installer requires coreos-installer which isn't yet available in RHEL 9.0
x86_64.addImageTypes(qcow2ImgType, vhdImgType, vmdkImgType, openstackImgType, amiImgTypeX86_64, tarImgType, tarInstallerImgTypeX86_64, edgeCommitImgType, edgeInstallerImgType, edgeOCIImgType, edgeRawImgType) //, edgeSimplifiedInstallerImgType)
aarch64.addImageTypes(qcow2ImgType, openstackImgType, amiImgTypeAarch64, tarImgType, edgeCommitImgType, edgeInstallerImgType, edgeOCIImgType, edgeRawImgType) // , edgeSimplifiedInstallerImgType)
x86_64.addImageTypes(qcow2ImgType, vhdImgType, vmdkImgType, openstackImgType, amiImgTypeX86_64, tarImgType, tarInstallerImgTypeX86_64, edgeCommitImgType, edgeInstallerImgType, edgeOCIImgType, edgeRawImgType, edgeSimplifiedInstallerImgType)
aarch64.addImageTypes(qcow2ImgType, openstackImgType, amiImgTypeAarch64, tarImgType, edgeCommitImgType, edgeInstallerImgType, edgeOCIImgType, edgeRawImgType, edgeSimplifiedInstallerImgType)
ppc64le.addImageTypes(qcow2ImgType, tarImgType)
s390x.addImageTypes(qcow2ImgType, tarImgType)

Expand Down
4 changes: 2 additions & 2 deletions internal/distro/rhel90/distro_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ func TestArchitecture_ListImageTypes(t *testing.T) {
"edge-container",
"edge-installer",
"edge-raw-image",
// "edge-simplified-installer",
"edge-simplified-installer",
"tar",
"image-installer",
},
Expand All @@ -474,7 +474,7 @@ func TestArchitecture_ListImageTypes(t *testing.T) {
"edge-commit",
"edge-container",
"edge-installer",
// "edge-simplified-installer",
"edge-simplified-installer",
"edge-raw-image",
"tar",
},
Expand Down
2 changes: 1 addition & 1 deletion internal/distro/rhel90/package_sets.go
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,7 @@ func edgeSimplifiedInstallerPackageSet(t *imageType) rpmmd.PackageSet {
"bsdtar",
"cloud-utils-growpart",
"coreos-installer",
"coreos-installer-bootinfra",
"coreos-installer-dracut",
"coreutils",
"device-mapper-multipath",
"dnsmasq",
Expand Down
18 changes: 13 additions & 5 deletions internal/distro/rhel90/pipelines.go
Original file line number Diff line number Diff line change
Expand Up @@ -1073,15 +1073,18 @@ func edgeSimplifiedInstallerPipelines(t *imageType, customizations *blueprint.Cu
installerTreePipeline := simplifiedInstallerTreePipeline(repos, installerPackages, kernelVer, archName, d.product, d.osVersion, "edge")
isolabel := fmt.Sprintf(d.isolabelTmpl, archName)
efibootTreePipeline := simplifiedInstallerEFIBootTreePipeline(installDevice, kernelVer, archName, d.vendor, d.product, d.osVersion, isolabel)
bootISOTreePipeline := simplifiedInstallerBootISOTreePipeline(imgPipelineName, kernelVer)
bootISOTreePipeline, err := simplifiedInstallerBootISOTreePipeline(imgPipelineName, kernelVer, rng)
if err != nil {
return nil, err
}

pipelines = append(pipelines, *installerTreePipeline, *efibootTreePipeline, *bootISOTreePipeline)
pipelines = append(pipelines, *bootISOPipeline(t.Filename(), d.isolabelTmpl, t.Arch().Name(), false))

return pipelines, nil
}

func simplifiedInstallerBootISOTreePipeline(archivePipelineName, kver string) *osbuild.Pipeline {
func simplifiedInstallerBootISOTreePipeline(archivePipelineName, kver string, rng *rand.Rand) (*osbuild.Pipeline, error) {
p := new(osbuild.Pipeline)
p.Name = "bootiso-tree"
p.Build = "name:build"
Expand Down Expand Up @@ -1112,6 +1115,11 @@ func simplifiedInstallerBootISOTreePipeline(archivePipelineName, kver string) *o
))

var sectorSize uint64 = 512
// TODO: handle error
volid, err := disk.NewRandomVolIDFromReader(rng)
if err != nil {
return nil, err
}
pt := disk.PartitionTable{
Size: 20971520,
Partitions: []disk.Partition{
Expand All @@ -1121,6 +1129,7 @@ func simplifiedInstallerBootISOTreePipeline(archivePipelineName, kver string) *o
Filesystem: &disk.Filesystem{
Type: "vfat",
Mountpoint: "/",
UUID: volid,
},
},
},
Expand Down Expand Up @@ -1171,7 +1180,7 @@ func simplifiedInstallerBootISOTreePipeline(archivePipelineName, kver string) *o
copyInputs,
))

return p
return p, nil
}

func simplifiedInstallerEFIBootTreePipeline(installDevice, kernelVer, arch, vendor, product, osVersion, isolabel string) *osbuild.Pipeline {
Expand All @@ -1189,8 +1198,7 @@ func simplifiedInstallerTreePipeline(repos []rpmmd.RepoConfig, packages []rpmmd.
p.AddStage(osbuild.NewRPMStage(rpmStageOptions(repos), rpmStageInputs(packages)))
p.AddStage(osbuild.NewBuildstampStage(buildStampStageOptions(arch, product, osVersion, variant)))
p.AddStage(osbuild.NewLocaleStage(&osbuild.LocaleStageOptions{Language: "en_US.UTF-8"}))
p.AddStage(osbuild.NewSystemdStage(systemdStageOptions([]string{"coreos-installer"}, nil, nil, "")))
p.AddStage(osbuild.NewDracutStage(dracutStageOptions(kernelVer, arch, []string{"rdcore"})))
p.AddStage(osbuild.NewDracutStage(dracutStageOptions(kernelVer, arch, []string{"coreos-installer"})))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like the test in rhel9 can't find this module even if coreos-installer-dracut is installed?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nevermind, rebuilding the package cause of a bug in how it installs dracut modules on the system

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we'd need a new rpmrepo snapshot too


return p
}
Expand Down
2 changes: 1 addition & 1 deletion internal/distro/rhel90/stage_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ func grubISOStageOptions(installDevice, kernelVer, arch, vendor, product, osVers
Kernel: osbuild.ISOKernel{
Dir: "/images/pxeboot",
Opts: []string{"rd.neednet=1",
"edge.liveiso=" + isolabel,
"coreos.inst.isoroot=" + isolabel,
"coreos.inst.install_dev=" + installDevice,
"coreos.inst.image_file=/run/media/iso/disk.img.xz",
"coreos.inst.insecure"},
Expand Down
Loading