diff --git a/docs/MachineConfiguration.md b/docs/MachineConfiguration.md index 025995063b..bb56822aec 100644 --- a/docs/MachineConfiguration.md +++ b/docs/MachineConfiguration.md @@ -201,7 +201,7 @@ spec: **Note:** The RT kernel lowers throughput (performance) in return for improved worst-case latency bounds. This feature is intended only for use cases that require consistent low latency. For more information, see the [Linux Foundation wiki](https://wiki.linuxfoundation.org/realtime/start) and the [RHEL RT portal](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/8/). ### RHCOS Extensions -RHCOS is a minimal OCP focused OS which provides capabilities common across all the platforms. With extensions support, OCP 4.6 and onward users can enable a limited set of additional functionality on the RHCOS nodes. In OCP 4.6 the supported extensions is `usbguard`. +RHCOS is a minimal OCP focused OS which provides capabilities common across all the platforms. With extensions support, OCP 4.6 and onward users can enable a limited set of additional functionality on the RHCOS nodes. In OCP 4.6 the supported extensions is `usbguard`. In OCP 4.8 the supported extensions are `usbguard` and `qemu-kiwi`. Extensions can be installed by creating a MachineConfig object. Extensions can be enabled as both day1 and day2. Check [installer guide](https://github.com/openshift/installer/blob/master/docs/user/customization.md#Enabling-RHCOS-Extensions) to enable extensions during cluster install. diff --git a/pkg/daemon/update.go b/pkg/daemon/update.go index a727d324ce..aa4ab88024 100644 --- a/pkg/daemon/update.go +++ b/pkg/daemon/update.go @@ -1101,6 +1101,7 @@ func getSupportedExtensions() map[string][]string { return map[string][]string{ "usbguard": {"usbguard"}, "kernel-devel": {"kernel-devel", "kernel-headers"}, + "qemu-kiwi": {"ipxe-roms-qemu", "libpmem", "pixman", "qemu-kiwi", "qemu-kvm-common", "seabios-bin", "seavgabios-bin", "sgabios-bin"}, } } diff --git a/test/e2e/mcd_test.go b/test/e2e/mcd_test.go index 8467f9f275..a4bb76b4c1 100644 --- a/test/e2e/mcd_test.go +++ b/test/e2e/mcd_test.go @@ -259,7 +259,7 @@ func TestExtensions(t *testing.T) { Config: runtime.RawExtension{ Raw: helpers.MarshalOrDie(ctrlcommon.NewIgnConfig()), }, - Extensions: []string{"usbguard", "kernel-devel"}, + Extensions: []string{"usbguard", "kernel-devel", "qemu-kiwi"}, }, } @@ -286,8 +286,8 @@ func TestExtensions(t *testing.T) { installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-q", "usbguard", "kernel-devel") expectedPackages = []string{"usbguard", "kernel-devel"} } else { - installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-q", "usbguard", "kernel-devel", "kernel-headers") - expectedPackages = []string{"usbguard", "kernel-devel", "kernel-headers"} + installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-q", "usbguard", "kernel-devel", "kernel-headers", "ipxe-roms-qemu", "libpmem", "pixman", "qemu-kiwi", "qemu-kvm-common", "seabios-bin", "seavgabios-bin", "sgabios-bin") + expectedPackages = []string{"usbguard", "kernel-devel", "kernel-headers", "ipxe-roms-qemu", "libpmem", "pixman", "qemu-kiwi", "qemu-kvm-common", "seabios-bin", "seavgabios-bin", "sgabios-bin"} } for _, v := range expectedPackages { if !strings.Contains(installedPackages, v) { @@ -317,9 +317,9 @@ func TestExtensions(t *testing.T) { if isOKD { // OKD does not support grouped extensions yet, so installing kernel-devel will not also pull in kernel-headers - installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-qa", "usbguard", "kernel-devel") + installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-qa", "usbguard", "kernel-devel", "ipxe-roms-qemu", "libpmem", "pixman", "qemu-kiwi", "qemu-kvm-common", "seabios-bin", "seavgabios-bin", "sgabios-bin") } else { - installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-qa", "usbguard", "kernel-devel", "kernel-headers") + installedPackages = execCmdOnNode(t, cs, infraNode, "chroot", "/rootfs", "rpm", "-qa", "usbguard", "kernel-devel", "kernel-headers", "ipxe-roms-qemu", "libpmem", "pixman", "qemu-kiwi", "qemu-kvm-common", "seabios-bin", "seavgabios-bin", "sgabios-bin") } for _, v := range expectedPackages { if strings.Contains(installedPackages, v) {