Repository: osbuild/osbuild-composer
Pull request #2912 (2022-08-24 11:10:08)

Support hybrid boot for edge installers
We supported hybrid boot for edge installers in RHEL 9.0 but we regressed when unifying the distro definitions.
From the history it seems we never supported BIOS on RHEL 8.x, but we can add it there as well.

Fixes [RHBZ#2110864](https://bugzilla.redhat.com/show_bug.cgi?id=2110864)

henrywang: Thanks @achilleas-k! I'll add BIOS installation test back.

Patch:
diff --git a/internal/distro/rhel8/pipelines.go b/internal/distro/rhel8/pipelines.go
index 33f4874b5..dfc0a27e3 100644
--- a/internal/distro/rhel8/pipelines.go
+++ b/internal/distro/rhel8/pipelines.go
@@ -266,7 +266,7 @@ func edgeInstallerPipelines(t *imageType, customizations *blueprint.Customizatio
 	pipelines = append(pipelines, *anacondaTreePipeline(repos, installerPackages, kernelVer, archName, d.product, d.osVersion, "edge", ksUsers))
 	isolabel := fmt.Sprintf(d.isolabelTmpl, archName)
 	pipelines = append(pipelines, *bootISOTreePipeline(kernelVer, archName, d.vendor, d.product, d.osVersion, isolabel, kickstartOptions, payloadStages))
-	pipelines = append(pipelines, *bootISOPipeline(t.Filename(), d.isolabelTmpl, archName, false))
+	pipelines = append(pipelines, *bootISOPipeline(t.Filename(), d.isolabelTmpl, archName, t.Arch().Name() == "x86_64"))
 	return pipelines, nil
 }
 
diff --git a/internal/distro/rhel9/pipelines.go b/internal/distro/rhel9/pipelines.go
index 09c7fef3b..69bd32197 100644
--- a/internal/distro/rhel9/pipelines.go
+++ b/internal/distro/rhel9/pipelines.go
@@ -258,7 +258,7 @@ func edgeInstallerPipelines(t *imageType, customizations *blueprint.Customizatio
 	pipelines = append(pipelines, *anacondaTreePipeline(repos, installerPackages, kernelVer, archName, d.product, d.osVersion, "edge", ksUsers))
 	isolabel := fmt.Sprintf(d.isolabelTmpl, archName)
 	pipelines = append(pipelines, *bootISOTreePipeline(kernelVer, archName, d.vendor, d.product, d.osVersion, isolabel, kickstartOptions, payloadStages))
-	pipelines = append(pipelines, *bootISOPipeline(t.Filename(), d.isolabelTmpl, archName, false))
+	pipelines = append(pipelines, *bootISOPipeline(t.Filename(), d.isolabelTmpl, archName, t.Arch().Name() == "x86_64"))
 	return pipelines, nil
 }
 
diff --git a/internal/image/ostree_installer.go b/internal/image/ostree_installer.go
index 8cdbd9a3f..4d9f17b09 100644
--- a/internal/image/ostree_installer.go
+++ b/internal/image/ostree_installer.go
@@ -73,6 +73,7 @@ func (img *OSTreeInstaller) InstantiateManifest(m *manifest.Manifest,
 
 	isoPipeline := manifest.NewISO(m, buildPipeline, isoTreePipeline)
 	isoPipeline.Filename = img.Filename
+	isoPipeline.ISOLinux = true
 	artifact := isoPipeline.Export()
 
 	return artifact, nil


Test patch:
diff --git a/test/cases/ostree-ng.sh b/test/cases/ostree-ng.sh
index 2ce6e6bf8..c5af75c58 100755
--- a/test/cases/ostree-ng.sh
+++ b/test/cases/ostree-ng.sh
@@ -75,6 +75,7 @@ EOF
 # Set up variables.
 TEST_UUID=$(uuidgen)
 IMAGE_KEY="osbuild-composer-ostree-test-${TEST_UUID}"
+BIOS_GUEST_ADDRESS=192.168.100.50
 UEFI_GUEST_ADDRESS=192.168.100.51
 PROD_REPO_URL=http://192.168.100.1/repo
 PROD_REPO=/var/www/html/repo
@@ -90,7 +91,7 @@ CONTAINER_TYPE=edge-container
 CONTAINER_FILENAME=container.tar
 INSTALLER_TYPE=edge-installer
 INSTALLER_FILENAME=installer.iso
-ANSIBLE_USER_FOR_UEFI="installeruser"
+ANSIBLE_USER_FOR_BIOS="installeruser"
 OSTREE_OSNAME=rhel
 
 # Set up temporary files.
@@ -515,9 +516,79 @@ sudo restorecon -Rv /var/lib/libvirt/images/
 
 # Create qcow2 file for virt install.
 greenprint "🖥 Create qcow2 file for virt install"
+LIBVIRT_BIOS_IMAGE_PATH=/var/lib/libvirt/images/${IMAGE_KEY}-bios.qcow2
 LIBVIRT_UEFI_IMAGE_PATH=/var/lib/libvirt/images/${IMAGE_KEY}-uefi.qcow2
+sudo qemu-img create -f qcow2 "${LIBVIRT_BIOS_IMAGE_PATH}" 20G
 sudo qemu-img create -f qcow2 "${LIBVIRT_UEFI_IMAGE_PATH}" 20G
 
+##################################################
+##
+## Install and test Edge image on BIOS VM
+##
+##################################################
+# Install ostree image via anaconda.
+greenprint "💿 Install ostree image via installer(ISO) on BIOS VM"
+sudo virt-install  --name="${IMAGE_KEY}-bios" \
+                   --disk path="${LIBVIRT_BIOS_IMAGE_PATH}",format=qcow2 \
+                   --ram 3072 \
+                   --vcpus 2 \
+                   --network network=integration,mac=34:49:22:B0:83:30 \
+                   --os-type linux \
+                   --os-variant ${OS_VARIANT} \
+                   --cdrom "/var/lib/libvirt/images/${ISO_FILENAME}" \
+                   --nographics \
+                   --noautoconsole \
+                   --wait=-1 \
+                   --noreboot
+
+# Start VM.
+greenprint "📟 Start BIOS VM"
+sudo virsh start "${IMAGE_KEY}-bios"
+
+# Check for ssh ready to go.
+greenprint "🛃 Checking for SSH is ready to go"
+for LOOP_COUNTER in $(seq 0 30); do
+    RESULTS="$(wait_for_ssh_up $BIOS_GUEST_ADDRESS)"
+    if [[ $RESULTS == 1 ]]; then
+        echo "SSH is ready now! 🥳"
+        break
+    fi
+    sleep 10
+done
+
+# Check image installation result
+check_result
+
+# Get ostree commit value.
+greenprint "🕹 Get ostree install commit value"
+INSTALL_HASH=$(curl "${PROD_REPO_URL}/refs/heads/${OSTREE_REF}")
+
+# Run Edge test on BIOS VM
+# Add instance IP address into /etc/ansible/hosts
+# Run BIOS VM test with installeruser added by edge-installer bp as ansible user
+sudo tee "${TEMPDIR}"/inventory > /dev/null << EOF
+[ostree_guest]
+${BIOS_GUEST_ADDRESS}
+[ostree_guest:vars]
+ansible_python_interpreter=/usr/bin/python3
+ansible_user=${ANSIBLE_USER_FOR_BIOS}
+ansible_private_key_file=${SSH_KEY}
+ansible_ssh_common_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+EOF
+
+# Test IoT/Edge OS
+greenprint "📼 Run Edge tests on BIOS VM"
+sudo ansible-playbook -v -i "${TEMPDIR}"/inventory -e image_type="$OSTREE_OSNAME" -e ostree_commit="${INSTALL_HASH}" -e embeded_container="${EMBEDED_CONTAINER}" /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0
+check_result
+
+# Clean up BIOS VM
+greenprint "🧹 Clean up BIOS VM"
+if [[ $(sudo virsh domstate "${IMAGE_KEY}-bios") == "running" ]]; then
+    sudo virsh destroy "${IMAGE_KEY}-bios"
+fi
+sudo virsh undefine "${IMAGE_KEY}-bios"
+sudo rm -f "$LIBVIRT_BIOS_IMAGE_PATH"
+
 ##################################################
 ##
 ## Install, upgrade and test Edge image on UEFI VM
@@ -567,7 +638,7 @@ ${UEFI_GUEST_ADDRESS}
 
 [ostree_guest:vars]
 ansible_python_interpreter=/usr/bin/python3
-ansible_user=${ANSIBLE_USER_FOR_UEFI}
+ansible_user=${ANSIBLE_USER_FOR_BIOS}
 ansible_private_key_file=${SSH_KEY}
 ansible_ssh_common_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
 EOF
@@ -710,7 +781,7 @@ ${UEFI_GUEST_ADDRESS}
 
 [ostree_guest:vars]
 ansible_python_interpreter=/usr/bin/python3
-ansible_user=${ANSIBLE_USER_FOR_UEFI}
+ansible_user=${ANSIBLE_USER_FOR_BIOS}
 ansible_private_key_file=${SSH_KEY}
 ansible_ssh_common_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
 EOF
diff --git a/test/data/manifests/centos_8-x86_64-edge_installer-boot.json b/test/data/manifests/centos_8-x86_64-edge_installer-boot.json
index 6d0ea66e1..4e057d4ad 100644
--- a/test/data/manifests/centos_8-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/centos_8-x86_64-edge_installer-boot.json
@@ -9139,7 +9139,12 @@
               "filename": "installer.iso",
               "volid": "CentOS-Stream-8-x86_64-dvd",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/centos_8-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/centos_8-x86_64-edge_installer_with_users-boot.json
index 1a6ebc008..7cc6c4a4b 100644
--- a/test/data/manifests/centos_8-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/centos_8-x86_64-edge_installer_with_users-boot.json
@@ -9191,7 +9191,12 @@
               "filename": "installer.iso",
               "volid": "CentOS-Stream-8-x86_64-dvd",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/centos_9-x86_64-edge_installer-boot.json b/test/data/manifests/centos_9-x86_64-edge_installer-boot.json
index bfd1cbc79..fb14ee7fa 100644
--- a/test/data/manifests/centos_9-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/centos_9-x86_64-edge_installer-boot.json
@@ -9392,7 +9392,12 @@
               "filename": "installer.iso",
               "volid": "CentOS-Stream-9-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/centos_9-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/centos_9-x86_64-edge_installer_with_users-boot.json
index 1f6cdc63f..da0006c3b 100644
--- a/test/data/manifests/centos_9-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/centos_9-x86_64-edge_installer_with_users-boot.json
@@ -9444,7 +9444,12 @@
               "filename": "installer.iso",
               "volid": "CentOS-Stream-9-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_35-aarch64-fedora_iot_installer-boot.json b/test/data/manifests/fedora_35-aarch64-fedora_iot_installer-boot.json
index 6b3d71e83..f32b5164b 100644
--- a/test/data/manifests/fedora_35-aarch64-fedora_iot_installer-boot.json
+++ b/test/data/manifests/fedora_35-aarch64-fedora_iot_installer-boot.json
@@ -10104,7 +10104,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-35-BaseOS-aarch64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_35-aarch64-fedora_iot_installer_with_users-boot.json b/test/data/manifests/fedora_35-aarch64-fedora_iot_installer_with_users-boot.json
index 999cdace0..5da244fa0 100644
--- a/test/data/manifests/fedora_35-aarch64-fedora_iot_installer_with_users-boot.json
+++ b/test/data/manifests/fedora_35-aarch64-fedora_iot_installer_with_users-boot.json
@@ -10156,7 +10156,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-35-BaseOS-aarch64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_35-x86_64-fedora_iot_installer-boot.json b/test/data/manifests/fedora_35-x86_64-fedora_iot_installer-boot.json
index aedae9c14..18e1a7d2e 100644
--- a/test/data/manifests/fedora_35-x86_64-fedora_iot_installer-boot.json
+++ b/test/data/manifests/fedora_35-x86_64-fedora_iot_installer-boot.json
@@ -10297,7 +10297,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-35-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_35-x86_64-fedora_iot_installer_with_users-boot.json b/test/data/manifests/fedora_35-x86_64-fedora_iot_installer_with_users-boot.json
index b55dad0c0..afa6f623f 100644
--- a/test/data/manifests/fedora_35-x86_64-fedora_iot_installer_with_users-boot.json
+++ b/test/data/manifests/fedora_35-x86_64-fedora_iot_installer_with_users-boot.json
@@ -10349,7 +10349,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-35-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_36-aarch64-fedora_iot_installer-boot.json b/test/data/manifests/fedora_36-aarch64-fedora_iot_installer-boot.json
index d703dd2cc..953abb403 100644
--- a/test/data/manifests/fedora_36-aarch64-fedora_iot_installer-boot.json
+++ b/test/data/manifests/fedora_36-aarch64-fedora_iot_installer-boot.json
@@ -10624,7 +10624,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-36-BaseOS-aarch64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_36-aarch64-fedora_iot_installer_with_users-boot.json b/test/data/manifests/fedora_36-aarch64-fedora_iot_installer_with_users-boot.json
index 716599ef5..6eee329f9 100644
--- a/test/data/manifests/fedora_36-aarch64-fedora_iot_installer_with_users-boot.json
+++ b/test/data/manifests/fedora_36-aarch64-fedora_iot_installer_with_users-boot.json
@@ -10676,7 +10676,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-36-BaseOS-aarch64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_36-x86_64-fedora_iot_installer-boot.json b/test/data/manifests/fedora_36-x86_64-fedora_iot_installer-boot.json
index 0562e1dfd..fbceadc85 100644
--- a/test/data/manifests/fedora_36-x86_64-fedora_iot_installer-boot.json
+++ b/test/data/manifests/fedora_36-x86_64-fedora_iot_installer-boot.json
@@ -10809,7 +10809,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-36-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/fedora_36-x86_64-fedora_iot_installer_with_users-boot.json b/test/data/manifests/fedora_36-x86_64-fedora_iot_installer_with_users-boot.json
index 24be5fc74..42574f2bf 100644
--- a/test/data/manifests/fedora_36-x86_64-fedora_iot_installer_with_users-boot.json
+++ b/test/data/manifests/fedora_36-x86_64-fedora_iot_installer_with_users-boot.json
@@ -10861,7 +10861,12 @@
               "filename": "installer.iso",
               "volid": "Fedora-36-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_8-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_8-x86_64-edge_installer-boot.json
index 04e4dd13a..2749cf686 100644
--- a/test/data/manifests/rhel_8-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_8-x86_64-edge_installer-boot.json
@@ -3673,7 +3673,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-6-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_8-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_8-x86_64-edge_installer_with_users-boot.json
index 4a2b791eb..c9769e364 100644
--- a/test/data/manifests/rhel_8-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_8-x86_64-edge_installer_with_users-boot.json
@@ -3725,7 +3725,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-6-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_84-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_84-x86_64-edge_installer-boot.json
index b8cb2bd8d..6de8f9a54 100644
--- a/test/data/manifests/rhel_84-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_84-x86_64-edge_installer-boot.json
@@ -3715,7 +3715,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-4-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_84-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_84-x86_64-edge_installer_with_users-boot.json
index 665d0d6ae..d8ee1b80d 100644
--- a/test/data/manifests/rhel_84-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_84-x86_64-edge_installer_with_users-boot.json
@@ -3767,7 +3767,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-4-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_85-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_85-x86_64-edge_installer-boot.json
index 25fe7fd40..02d98f521 100644
--- a/test/data/manifests/rhel_85-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_85-x86_64-edge_installer-boot.json
@@ -3679,7 +3679,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-5-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_85-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_85-x86_64-edge_installer_with_users-boot.json
index 25fe7fd40..02d98f521 100644
--- a/test/data/manifests/rhel_85-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_85-x86_64-edge_installer_with_users-boot.json
@@ -3679,7 +3679,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-5-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_86-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_86-x86_64-edge_installer-boot.json
index c0fd74c93..7881affb5 100644
--- a/test/data/manifests/rhel_86-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_86-x86_64-edge_installer-boot.json
@@ -3673,7 +3673,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-6-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_86-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_86-x86_64-edge_installer_with_users-boot.json
index 05933d45d..115a643e1 100644
--- a/test/data/manifests/rhel_86-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_86-x86_64-edge_installer_with_users-boot.json
@@ -3725,7 +3725,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-6-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_87-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_87-x86_64-edge_installer-boot.json
index 62f532ab6..aa2594637 100644
--- a/test/data/manifests/rhel_87-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_87-x86_64-edge_installer-boot.json
@@ -3736,7 +3736,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-7-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_87-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_87-x86_64-edge_installer_with_users-boot.json
index bf383fb10..98c28d071 100644
--- a/test/data/manifests/rhel_87-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_87-x86_64-edge_installer_with_users-boot.json
@@ -3788,7 +3788,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-8-7-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_90-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_90-x86_64-edge_installer-boot.json
index 3736b4a07..ec6b22821 100644
--- a/test/data/manifests/rhel_90-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-edge_installer-boot.json
@@ -3765,7 +3765,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-9-0-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_90-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_90-x86_64-edge_installer_with_users-boot.json
index 35cd043a2..ee29da1bb 100644
--- a/test/data/manifests/rhel_90-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-edge_installer_with_users-boot.json
@@ -3817,7 +3817,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-9-0-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_91-x86_64-edge_installer-boot.json b/test/data/manifests/rhel_91-x86_64-edge_installer-boot.json
index 3e5df8793..efa31097d 100644
--- a/test/data/manifests/rhel_91-x86_64-edge_installer-boot.json
+++ b/test/data/manifests/rhel_91-x86_64-edge_installer-boot.json
@@ -9568,7 +9568,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-9-1-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },
diff --git a/test/data/manifests/rhel_91-x86_64-edge_installer_with_users-boot.json b/test/data/manifests/rhel_91-x86_64-edge_installer_with_users-boot.json
index d758ab3a0..ad4fdb1bc 100644
--- a/test/data/manifests/rhel_91-x86_64-edge_installer_with_users-boot.json
+++ b/test/data/manifests/rhel_91-x86_64-edge_installer_with_users-boot.json
@@ -9620,7 +9620,12 @@
               "filename": "installer.iso",
               "volid": "RHEL-9-1-0-BaseOS-x86_64",
               "sysid": "LINUX",
+              "boot": {
+                "image": "isolinux/isolinux.bin",
+                "catalog": "isolinux/boot.cat"
+              },
               "efi": "images/efiboot.img",
+              "isohybridmbr": "/usr/share/syslinux/isohdpfx.bin",
               "isolevel": 3
             }
           },