From e8ffd7d4680caa87157cb3db5cb8b7b7a4b62ea1 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 10:54:04 +0200 Subject: [PATCH 1/8] many: kernel arguments options support for all installers Support for kernel options in the iso got added to the tar installer in osbuild#1727. For consistency this commit also enables it for the other installers via the pre-existing `AdditionalKernelOpts` that is part of the `manifest.InstallerCustomizations`. A helper to read the kernel options from the customizations and default image type(s) is extracted as well. --- pkg/distro/generic/images.go | 21 ++++++++++++------- pkg/manifest/installer.go | 1 + ..._10-aarch64-image_installer-unattended_iso | 2 +- ...s_10-x86_64-image_installer-unattended_iso | 2 +- ...s_9-aarch64-image_installer-unattended_iso | 2 +- ...os_9-x86_64-image_installer-unattended_iso | 2 +- ...1-aarch64-minimal_installer-unattended_iso | 2 +- ...41-x86_64-minimal_installer-unattended_iso | 2 +- ...2-aarch64-minimal_installer-unattended_iso | 2 +- ...42-x86_64-minimal_installer-unattended_iso | 2 +- ...3-aarch64-minimal_installer-unattended_iso | 2 +- ...43-x86_64-minimal_installer-unattended_iso | 2 +- ...4-aarch64-minimal_installer-unattended_iso | 2 +- ...44-x86_64-minimal_installer-unattended_iso | 2 +- ...0.0-aarch64-image_installer-unattended_iso | 2 +- ...10.0-x86_64-image_installer-unattended_iso | 2 +- ...0.1-aarch64-image_installer-unattended_iso | 2 +- ...10.1-x86_64-image_installer-unattended_iso | 2 +- ...0.2-aarch64-image_installer-unattended_iso | 2 +- ...10.2-x86_64-image_installer-unattended_iso | 2 +- ....10-aarch64-image_installer-unattended_iso | 2 +- ...8.10-x86_64-image_installer-unattended_iso | 2 +- ...8.4-aarch64-image_installer-unattended_iso | 2 +- ..._8.4-x86_64-image_installer-unattended_iso | 2 +- ...8.6-aarch64-image_installer-unattended_iso | 2 +- ..._8.6-x86_64-image_installer-unattended_iso | 2 +- ...8.8-aarch64-image_installer-unattended_iso | 2 +- ..._8.8-x86_64-image_installer-unattended_iso | 2 +- ...9.0-aarch64-image_installer-unattended_iso | 2 +- ..._9.0-x86_64-image_installer-unattended_iso | 2 +- ...9.2-aarch64-image_installer-unattended_iso | 2 +- ..._9.2-x86_64-image_installer-unattended_iso | 2 +- ...9.4-aarch64-image_installer-unattended_iso | 2 +- ..._9.4-x86_64-image_installer-unattended_iso | 2 +- ...9.6-aarch64-image_installer-unattended_iso | 2 +- ..._9.6-x86_64-image_installer-unattended_iso | 2 +- ...9.7-aarch64-image_installer-unattended_iso | 2 +- ..._9.7-x86_64-image_installer-unattended_iso | 2 +- ...9.8-aarch64-image_installer-unattended_iso | 2 +- ..._9.8-x86_64-image_installer-unattended_iso | 2 +- 40 files changed, 52 insertions(+), 46 deletions(-) diff --git a/pkg/distro/generic/images.go b/pkg/distro/generic/images.go index a7a53b9890..e5000f3603 100644 --- a/pkg/distro/generic/images.go +++ b/pkg/distro/generic/images.go @@ -24,6 +24,16 @@ import ( "github.com/osbuild/images/pkg/rpmmd" ) +func kernelOptions(t *imageType, c *blueprint.Customizations) []string { + imageConfig := t.getDefaultImageConfig() + + kernelOptions := imageConfig.KernelOptions + if bpKernel := c.GetKernel(); bpKernel.Append != "" { + kernelOptions = append(kernelOptions, bpKernel.Append) + } + return kernelOptions +} + func osCustomizations(t *imageType, osPackageSet rpmmd.PackageSet, options distro.ImageOptions, containers []container.SourceSpec, bp *blueprint.Blueprint) (manifest.OSCustomizations, error) { c := bp.Customizations osc := manifest.OSCustomizations{} @@ -40,13 +50,7 @@ func osCustomizations(t *imageType, osPackageSet rpmmd.PackageSet, options distr if imageConfig.DefaultKernelName != nil { osc.KernelName = *imageConfig.DefaultKernelName } - - // XXX: keep in sync with the identical copy in rhel/images.go - kernelOptions := imageConfig.KernelOptions - if bpKernel := c.GetKernel(); bpKernel.Append != "" { - kernelOptions = append(kernelOptions, bpKernel.Append) - } - osc.KernelOptionsAppend = kernelOptions + osc.KernelOptionsAppend = kernelOptions(t, c) if imageConfig.KernelOptionsBootloader != nil { osc.KernelOptionsBootloader = *imageConfig.KernelOptionsBootloader } @@ -390,6 +394,7 @@ func installerCustomizations(t *imageType, c *blueprint.Customizations) (manifes isc.EnabledAnacondaModules = append(isc.EnabledAnacondaModules, installerCust.Modules.Enable...) isc.DisabledAnacondaModules = append(isc.DisabledAnacondaModules, installerCust.Modules.Disable...) } + isc.AdditionalKernelOpts = kernelOptions(t, c) return isc, nil } @@ -625,7 +630,7 @@ func imageInstallerImage(t *imageType, img.InstallerCustomizations.EnabledAnacondaModules = append(img.InstallerCustomizations.EnabledAnacondaModules, anaconda.ModuleUsers) if img.Kickstart.Unattended { - img.InstallerCustomizations.AdditionalKernelOpts = append(img.InstallerCustomizations.AdditionalKernelOpts, installerConfig.KickstartUnattendedExtraKernelOpts...) + img.InstallerCustomizations.AdditionalKernelOpts = append(installerConfig.KickstartUnattendedExtraKernelOpts, img.InstallerCustomizations.AdditionalKernelOpts...) } img.RootfsCompression = "xz" // This also triggers using the bcj filter diff --git a/pkg/manifest/installer.go b/pkg/manifest/installer.go index d4f907d0ec..8386bfb3da 100644 --- a/pkg/manifest/installer.go +++ b/pkg/manifest/installer.go @@ -5,6 +5,7 @@ package manifest type InstallerCustomizations struct { FIPS bool + // XXX: rename to "KernelOptionsAppend" to match OSCustomizations AdditionalKernelOpts []string EnabledAnacondaModules []string diff --git a/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso index c7397781ae..30aeae2ac0 100644 --- a/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -1b7358bf7ccf80372f0cd51eb810b30d12613f34 +402745c7842f30390374e7de0635f8f9aacaccf1 diff --git a/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso index 729acec7a4..48498bae56 100644 --- a/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -63812296035f266a012ebe3710f99983ded8e7d8 +e812a9ecdede2daf60dc0541cf9fc4f541662985 diff --git a/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso index 78a5135ee9..3b65c6fb5d 100644 --- a/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -cbccedfb157bfdc3ea144e68c1895e0bc5f3e89c +9ea403b848796a80ee99424a204029f6585d614f diff --git a/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso index 8abb56df38..1fd810d97c 100644 --- a/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -48204b987aaec12324365c5ab0db1f5e24dd0b20 +3070db036382f1d9c55cf9d06cf5e1648b5bf3e0 diff --git a/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso index 4c1ffa81f3..60cf21d4dc 100644 --- a/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -fc07c6961c6d48d86b8a6a48d346a6291d7fc2d4 +0a1bc86658669e1dd1cec57cf2c22ce76c55dd6a diff --git a/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso index f12b535a24..f20eda8e03 100644 --- a/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -f0e463bc39d046ba2c8ea788ad6e4d178ad9a9b1 +26e2023c79da24e047b3ed739210a49ad0bdc9c6 diff --git a/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso index 07167d425b..6e69a94dae 100644 --- a/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -e33d56cafd34afce4edb5c5f45b097286384208a +bee862c354444bcf3183dcdd14c3e00cdebc7c46 diff --git a/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso index b0d147e1a2..bf1f445fff 100644 --- a/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -b480facf753473f328afeb7bd3efa4dc466d0ce1 +adbd0341324ef777a8344c1458873a0eb15dc7ea diff --git a/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso index 989b569328..003f61bc84 100644 --- a/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -b0b34a88ff5d03ed5c402321f68a9fc403b3bcdc +98c83e21951404c5897def3e0bb5220ced445a48 diff --git a/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso index 817020ac6d..4a34e09292 100644 --- a/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -8c53066655fe3fb95ea841ac96d930338d0a84bd +6f8f60581da96b364fed7cee7681fba77b40a86b diff --git a/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso index b728f4648d..701858c220 100644 --- a/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -3f81ca8afd2d5edc29c531ba7576489cfc723eaf +8410374ad868a167377ecbc7da88d2cdc556d58e diff --git a/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso index 131e552514..2f3505712f 100644 --- a/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -20079b1b99300aeae16c6f43022a2dc62e5ae048 +048cc02498272b3d5f894e3467fbcc46fa80b110 diff --git a/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso index 7759980dd4..bb62b1bca0 100644 --- a/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -5af595e4ed3705df642c84ea2e557c31384d4277 +3e057a6d361f9f123fa14d917775b7362c8ddaf9 diff --git a/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso index 18470dc9fb..1a2dc8080d 100644 --- a/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -f3d5d17c616d4b26654a87f7846e44d61974e296 +1de1bd705ee80c70dfdb65ae0dc865e23521a087 diff --git a/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso index d8c3a10b53..b0b6df10ba 100644 --- a/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -47a21f30abe51b9974462179a77b0e1a83ccf3e7 +e60c89e3e84ea94c53ca0d9a3fbc2c5997af9d03 diff --git a/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso index 2c94e58da1..ed3e5c876b 100644 --- a/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -eb7b0aaa37ef990c81708e82d9aae141ca4f2986 +b17a058ba16362e1e7995aeb63bdf31e27746865 diff --git a/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso index 6f702698c3..32db513fb6 100644 --- a/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -a2340c0470441938b7c8be5bf2c02defa8082992 +f3e2d90ad1c946963fbc15e69b90ff864091adf7 diff --git a/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso index 069e52f415..23af724b9f 100644 --- a/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -d1cdb9686b06c91b6102c5c737eb9f1d83577868 +d95d92607955a29d9fe927d4070ba6a37992249d diff --git a/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso index d9f8e4f6fb..8b0184056d 100644 --- a/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -8a8ff9c3d2e7ff36d5a19fb8d7f05b83d198874d +4125c665f55ed57ac652006d7a87b323d595f4f8 diff --git a/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso index 978826c9dc..d7026c646b 100644 --- a/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -00571d480a562fcc84c2a8010182897eeeb63e55 +5a7b6bdf4e56b264cab35cb5da7113a872069e93 diff --git a/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso index c51c1fe73e..a6b20b8e4c 100644 --- a/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -2b35628b594b61e7c27152bad26c85c360034436 +d6485a1e2c9a1e1b56fa62517f0528d2e2e16bc3 diff --git a/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso index 82c9c48b57..39c83f4224 100644 --- a/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -bd00906ac7bb73937ae4aee629d5b6a9a9cce3d9 +e2985c6622445fdabaaef56fdc5e131324163df7 diff --git a/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso index 6fe983db43..a1c992773b 100644 --- a/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -aae8123b82632df9aafd32f9b1018cfefef276c3 +0c32cadde01fafc697cb477f488c145ebc08e95a diff --git a/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso index 608f2faad6..c2bef21640 100644 --- a/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -c7b8fbf6e7730f4f5aacb76a06b1f5d55fabd493 +88e38b729225aa28c89191344291f9cafce0b3a9 diff --git a/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso index e2bdd0080a..7be3431f0f 100644 --- a/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -9d4a139b9fac93dff46482d32d0bfa0cd80db83a +9cced3241e993f4f249cb22c1a7bd84d13322bf4 diff --git a/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso index a17a5a292f..e6f57c7f53 100644 --- a/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -d040e256a4586532e5212f7ef8021fc16d723fef +50ba4d49cca940adb0a51b2ace9bf3bf623a611c diff --git a/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso index 3a57e731ed..5629713fb6 100644 --- a/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -52d0286c997331f268aa6c37560195cf30b8b034 +aad2036a69eec573f974700ea6706e0dc9db4cee diff --git a/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso index 534133a2cd..7765d39b78 100644 --- a/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -0aa114e72640e6b5eb4168d90eba70303b0ad028 +b2fcd103f77d28b8ea301da20532f2d0fa3e0994 diff --git a/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso index 696ebfec86..b8e6361e5f 100644 --- a/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -e2c49aea7dffa25ef03450b7a24b089ae21c73fd +5747d8d78a749177b7a0d205e70c180c19decb86 diff --git a/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso index 2b3b52a05b..7555a4e22d 100644 --- a/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -b13d36fc9347e86e6304348d27d4c9acb3223ddf +e0f4a2bc671b7e1ac37dbd42653c0c59fb5f1401 diff --git a/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso index fb6606657b..ecb2f4f182 100644 --- a/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -e33b35e39d0fc28144c5d9c1ec5552ce6bd11217 +3cbc924b5be9e8123056ab96c11ae05ad219fd71 diff --git a/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso index e1dd028139..50ca904267 100644 --- a/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -4db65ba40f1f8b2197ca3cfb25856388861a9bc5 +be4629a703e2e4a56ed814e6c4dcbea248e85212 diff --git a/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso index b66b5e0205..b707aea6e9 100644 --- a/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -cc226dc4872590abd5be84810c697af59251f637 +6000af29813b5d615ed9751b571dcd8458f8dec0 diff --git a/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso index efad80d120..67cb3bbbb9 100644 --- a/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -9b665487ba9840575afd7453f8dc2b70690bae2f +cbf03c43d980256e19db04304ed61d24cfa6e168 diff --git a/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso index 40d38583fb..0d9f7d729f 100644 --- a/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -8f71367fb8f7f82182f57417d34527f33abb078a +21a99bb25bb9ef23c5b563d2380b3e9568907b14 diff --git a/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso index 40bbe195ca..6bc9c63164 100644 --- a/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -2ffc71764d41a79143394eb3f84ccc67fa322f35 +0ceb63f168a1f8269950978c4dafc3b140f84e83 diff --git a/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso index 2d3ce55c47..5032e620bf 100644 --- a/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -a9104e7a83170ad52f4c37d4b1614a75bdc632d3 +4b04596481e8446fea8bec9fa2b39f19251e3a4f diff --git a/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso index 6ca8492bc5..7b65702bcd 100644 --- a/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -f00f8fa3e71a7fba1f59668735eb4153b949e131 +3e8994180258c97d748a09c93810941b87917feb From beb3c592f6020bd390f6d40afb27e0f1f5d2d692 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 10:59:07 +0200 Subject: [PATCH 2/8] image: use `AdditionalKernelOpts` in tar installer We can drop the (now) special handling of kernel args via the OSCustomizations in the tar installer. With the previous commit we use the manifest.InstallerCustomizations.AdditionalKernelOpts to handle the kernel arguments which is enough (this is also validated by the fact that the existing TestTarInstallerKernelOpts does not need to change). --- pkg/image/anaconda_tar_installer.go | 2 -- .../centos_10-aarch64-image_installer-unattended_iso | 2 +- .../centos_10-x86_64-image_installer-unattended_iso | 2 +- .../centos_9-aarch64-image_installer-unattended_iso | 2 +- .../centos_9-x86_64-image_installer-unattended_iso | 2 +- .../fedora_41-aarch64-minimal_installer-unattended_iso | 2 +- .../fedora_41-x86_64-minimal_installer-unattended_iso | 2 +- .../fedora_42-aarch64-minimal_installer-unattended_iso | 2 +- .../fedora_42-x86_64-minimal_installer-unattended_iso | 2 +- .../fedora_43-aarch64-minimal_installer-unattended_iso | 2 +- .../fedora_43-x86_64-minimal_installer-unattended_iso | 2 +- .../fedora_44-aarch64-minimal_installer-unattended_iso | 2 +- .../fedora_44-x86_64-minimal_installer-unattended_iso | 2 +- .../rhel_10.0-aarch64-image_installer-unattended_iso | 2 +- .../rhel_10.0-x86_64-image_installer-unattended_iso | 2 +- .../rhel_10.1-aarch64-image_installer-unattended_iso | 2 +- .../rhel_10.1-x86_64-image_installer-unattended_iso | 2 +- .../rhel_10.2-aarch64-image_installer-unattended_iso | 2 +- .../rhel_10.2-x86_64-image_installer-unattended_iso | 2 +- .../rhel_8.10-aarch64-image_installer-unattended_iso | 2 +- .../rhel_8.10-x86_64-image_installer-unattended_iso | 2 +- .../rhel_8.4-aarch64-image_installer-unattended_iso | 2 +- .../rhel_8.4-x86_64-image_installer-unattended_iso | 2 +- .../rhel_8.6-aarch64-image_installer-unattended_iso | 2 +- .../rhel_8.6-x86_64-image_installer-unattended_iso | 2 +- .../rhel_8.8-aarch64-image_installer-unattended_iso | 2 +- .../rhel_8.8-x86_64-image_installer-unattended_iso | 2 +- .../rhel_9.0-aarch64-image_installer-unattended_iso | 2 +- .../rhel_9.0-x86_64-image_installer-unattended_iso | 2 +- .../rhel_9.2-aarch64-image_installer-unattended_iso | 2 +- .../rhel_9.2-x86_64-image_installer-unattended_iso | 2 +- .../rhel_9.4-aarch64-image_installer-unattended_iso | 2 +- .../rhel_9.4-x86_64-image_installer-unattended_iso | 2 +- .../rhel_9.6-aarch64-image_installer-unattended_iso | 2 +- .../rhel_9.6-x86_64-image_installer-unattended_iso | 2 +- .../rhel_9.7-aarch64-image_installer-unattended_iso | 2 +- .../rhel_9.7-x86_64-image_installer-unattended_iso | 2 +- .../rhel_9.8-aarch64-image_installer-unattended_iso | 2 +- .../rhel_9.8-x86_64-image_installer-unattended_iso | 2 +- 39 files changed, 38 insertions(+), 40 deletions(-) diff --git a/pkg/image/anaconda_tar_installer.go b/pkg/image/anaconda_tar_installer.go index c92ecf608b..1024d19249 100644 --- a/pkg/image/anaconda_tar_installer.go +++ b/pkg/image/anaconda_tar_installer.go @@ -126,7 +126,6 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest, kernelOpts = append(kernelOpts, "fips=1") } kernelOpts = append(kernelOpts, img.InstallerCustomizations.AdditionalKernelOpts...) - kernelOpts = append(kernelOpts, img.OSCustomizations.KernelOptionsAppend...) bootTreePipeline.KernelOpts = kernelOpts osPipeline := manifest.NewOS(buildPipeline, img.platform, repos) @@ -146,7 +145,6 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest, isoTreePipeline.OSPipeline = osPipeline isoTreePipeline.KernelOpts = img.InstallerCustomizations.AdditionalKernelOpts - isoTreePipeline.KernelOpts = append(isoTreePipeline.KernelOpts, img.OSCustomizations.KernelOptionsAppend...) if img.OSCustomizations.FIPS { isoTreePipeline.KernelOpts = append(isoTreePipeline.KernelOpts, "fips=1") } diff --git a/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso index 30aeae2ac0..c7397781ae 100644 --- a/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_10-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -402745c7842f30390374e7de0635f8f9aacaccf1 +1b7358bf7ccf80372f0cd51eb810b30d12613f34 diff --git a/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso index 48498bae56..729acec7a4 100644 --- a/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_10-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -e812a9ecdede2daf60dc0541cf9fc4f541662985 +63812296035f266a012ebe3710f99983ded8e7d8 diff --git a/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso index 3b65c6fb5d..78a5135ee9 100644 --- a/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_9-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -9ea403b848796a80ee99424a204029f6585d614f +cbccedfb157bfdc3ea144e68c1895e0bc5f3e89c diff --git a/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso index 1fd810d97c..8abb56df38 100644 --- a/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/centos_9-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -3070db036382f1d9c55cf9d06cf5e1648b5bf3e0 +48204b987aaec12324365c5ab0db1f5e24dd0b20 diff --git a/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso index 60cf21d4dc..4c1ffa81f3 100644 --- a/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_41-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -0a1bc86658669e1dd1cec57cf2c22ce76c55dd6a +fc07c6961c6d48d86b8a6a48d346a6291d7fc2d4 diff --git a/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso index f20eda8e03..f12b535a24 100644 --- a/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_41-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -26e2023c79da24e047b3ed739210a49ad0bdc9c6 +f0e463bc39d046ba2c8ea788ad6e4d178ad9a9b1 diff --git a/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso index 6e69a94dae..07167d425b 100644 --- a/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_42-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -bee862c354444bcf3183dcdd14c3e00cdebc7c46 +e33d56cafd34afce4edb5c5f45b097286384208a diff --git a/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso index bf1f445fff..b0d147e1a2 100644 --- a/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_42-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -adbd0341324ef777a8344c1458873a0eb15dc7ea +b480facf753473f328afeb7bd3efa4dc466d0ce1 diff --git a/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso index 003f61bc84..989b569328 100644 --- a/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_43-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -98c83e21951404c5897def3e0bb5220ced445a48 +b0b34a88ff5d03ed5c402321f68a9fc403b3bcdc diff --git a/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso index 4a34e09292..817020ac6d 100644 --- a/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_43-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -6f8f60581da96b364fed7cee7681fba77b40a86b +8c53066655fe3fb95ea841ac96d930338d0a84bd diff --git a/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso index 701858c220..b728f4648d 100644 --- a/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_44-aarch64-minimal_installer-unattended_iso @@ -1 +1 @@ -8410374ad868a167377ecbc7da88d2cdc556d58e +3f81ca8afd2d5edc29c531ba7576489cfc723eaf diff --git a/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso b/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso index 2f3505712f..131e552514 100644 --- a/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso +++ b/test/data/manifest-checksums/fedora_44-x86_64-minimal_installer-unattended_iso @@ -1 +1 @@ -048cc02498272b3d5f894e3467fbcc46fa80b110 +20079b1b99300aeae16c6f43022a2dc62e5ae048 diff --git a/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso index bb62b1bca0..7759980dd4 100644 --- a/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.0-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -3e057a6d361f9f123fa14d917775b7362c8ddaf9 +5af595e4ed3705df642c84ea2e557c31384d4277 diff --git a/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso index 1a2dc8080d..18470dc9fb 100644 --- a/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.0-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -1de1bd705ee80c70dfdb65ae0dc865e23521a087 +f3d5d17c616d4b26654a87f7846e44d61974e296 diff --git a/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso index b0b6df10ba..d8c3a10b53 100644 --- a/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.1-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -e60c89e3e84ea94c53ca0d9a3fbc2c5997af9d03 +47a21f30abe51b9974462179a77b0e1a83ccf3e7 diff --git a/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso index ed3e5c876b..2c94e58da1 100644 --- a/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.1-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -b17a058ba16362e1e7995aeb63bdf31e27746865 +eb7b0aaa37ef990c81708e82d9aae141ca4f2986 diff --git a/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso index 32db513fb6..6f702698c3 100644 --- a/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.2-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -f3e2d90ad1c946963fbc15e69b90ff864091adf7 +a2340c0470441938b7c8be5bf2c02defa8082992 diff --git a/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso index 23af724b9f..069e52f415 100644 --- a/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_10.2-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -d95d92607955a29d9fe927d4070ba6a37992249d +d1cdb9686b06c91b6102c5c737eb9f1d83577868 diff --git a/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso index 8b0184056d..d9f8e4f6fb 100644 --- a/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.10-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -4125c665f55ed57ac652006d7a87b323d595f4f8 +8a8ff9c3d2e7ff36d5a19fb8d7f05b83d198874d diff --git a/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso index d7026c646b..978826c9dc 100644 --- a/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.10-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -5a7b6bdf4e56b264cab35cb5da7113a872069e93 +00571d480a562fcc84c2a8010182897eeeb63e55 diff --git a/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso index a6b20b8e4c..c51c1fe73e 100644 --- a/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.4-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -d6485a1e2c9a1e1b56fa62517f0528d2e2e16bc3 +2b35628b594b61e7c27152bad26c85c360034436 diff --git a/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso index 39c83f4224..82c9c48b57 100644 --- a/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.4-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -e2985c6622445fdabaaef56fdc5e131324163df7 +bd00906ac7bb73937ae4aee629d5b6a9a9cce3d9 diff --git a/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso index a1c992773b..6fe983db43 100644 --- a/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.6-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -0c32cadde01fafc697cb477f488c145ebc08e95a +aae8123b82632df9aafd32f9b1018cfefef276c3 diff --git a/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso index c2bef21640..608f2faad6 100644 --- a/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.6-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -88e38b729225aa28c89191344291f9cafce0b3a9 +c7b8fbf6e7730f4f5aacb76a06b1f5d55fabd493 diff --git a/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso index 7be3431f0f..e2bdd0080a 100644 --- a/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.8-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -9cced3241e993f4f249cb22c1a7bd84d13322bf4 +9d4a139b9fac93dff46482d32d0bfa0cd80db83a diff --git a/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso index e6f57c7f53..a17a5a292f 100644 --- a/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_8.8-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -50ba4d49cca940adb0a51b2ace9bf3bf623a611c +d040e256a4586532e5212f7ef8021fc16d723fef diff --git a/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso index 5629713fb6..3a57e731ed 100644 --- a/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.0-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -aad2036a69eec573f974700ea6706e0dc9db4cee +52d0286c997331f268aa6c37560195cf30b8b034 diff --git a/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso index 7765d39b78..534133a2cd 100644 --- a/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.0-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -b2fcd103f77d28b8ea301da20532f2d0fa3e0994 +0aa114e72640e6b5eb4168d90eba70303b0ad028 diff --git a/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso index b8e6361e5f..696ebfec86 100644 --- a/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.2-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -5747d8d78a749177b7a0d205e70c180c19decb86 +e2c49aea7dffa25ef03450b7a24b089ae21c73fd diff --git a/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso index 7555a4e22d..2b3b52a05b 100644 --- a/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.2-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -e0f4a2bc671b7e1ac37dbd42653c0c59fb5f1401 +b13d36fc9347e86e6304348d27d4c9acb3223ddf diff --git a/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso index ecb2f4f182..fb6606657b 100644 --- a/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.4-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -3cbc924b5be9e8123056ab96c11ae05ad219fd71 +e33b35e39d0fc28144c5d9c1ec5552ce6bd11217 diff --git a/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso index 50ca904267..e1dd028139 100644 --- a/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.4-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -be4629a703e2e4a56ed814e6c4dcbea248e85212 +4db65ba40f1f8b2197ca3cfb25856388861a9bc5 diff --git a/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso index b707aea6e9..b66b5e0205 100644 --- a/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.6-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -6000af29813b5d615ed9751b571dcd8458f8dec0 +cc226dc4872590abd5be84810c697af59251f637 diff --git a/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso index 67cb3bbbb9..efad80d120 100644 --- a/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.6-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -cbf03c43d980256e19db04304ed61d24cfa6e168 +9b665487ba9840575afd7453f8dc2b70690bae2f diff --git a/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso index 0d9f7d729f..40d38583fb 100644 --- a/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.7-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -21a99bb25bb9ef23c5b563d2380b3e9568907b14 +8f71367fb8f7f82182f57417d34527f33abb078a diff --git a/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso index 6bc9c63164..40bbe195ca 100644 --- a/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.7-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -0ceb63f168a1f8269950978c4dafc3b140f84e83 +2ffc71764d41a79143394eb3f84ccc67fa322f35 diff --git a/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso index 5032e620bf..2d3ce55c47 100644 --- a/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.8-aarch64-image_installer-unattended_iso @@ -1 +1 @@ -4b04596481e8446fea8bec9fa2b39f19251e3a4f +a9104e7a83170ad52f4c37d4b1614a75bdc632d3 diff --git a/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso b/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso index 7b65702bcd..6ca8492bc5 100644 --- a/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso +++ b/test/data/manifest-checksums/rhel_9.8-x86_64-image_installer-unattended_iso @@ -1 +1 @@ -3e8994180258c97d748a09c93810941b87917feb +f00f8fa3e71a7fba1f59668735eb4153b949e131 From 13ca05d62bdc9037aa54445549724e95f796c899 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 11:04:52 +0200 Subject: [PATCH 3/8] many: rename AdditionalKernelOpts->KernelOptionsAppend Rename the manifest.InstallerCustomizations.AdditionalKernelOpts to KernelOptionsAppend to be similar to the existing OSCustomizations that also have the same job. This makes it easier to reason that both options do the same, one for the os pipeline, one for the installer pipeline(s). --- pkg/distro/generic/images.go | 4 ++-- pkg/image/anaconda_live_installer.go | 2 +- pkg/image/anaconda_net_installer.go | 4 ++-- pkg/image/anaconda_tar_installer.go | 4 ++-- pkg/image/installer_image_test.go | 2 +- pkg/manifest/installer.go | 3 +-- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pkg/distro/generic/images.go b/pkg/distro/generic/images.go index e5000f3603..82bc305bbc 100644 --- a/pkg/distro/generic/images.go +++ b/pkg/distro/generic/images.go @@ -394,7 +394,7 @@ func installerCustomizations(t *imageType, c *blueprint.Customizations) (manifes isc.EnabledAnacondaModules = append(isc.EnabledAnacondaModules, installerCust.Modules.Enable...) isc.DisabledAnacondaModules = append(isc.DisabledAnacondaModules, installerCust.Modules.Disable...) } - isc.AdditionalKernelOpts = kernelOptions(t, c) + isc.KernelOptionsAppend = kernelOptions(t, c) return isc, nil } @@ -630,7 +630,7 @@ func imageInstallerImage(t *imageType, img.InstallerCustomizations.EnabledAnacondaModules = append(img.InstallerCustomizations.EnabledAnacondaModules, anaconda.ModuleUsers) if img.Kickstart.Unattended { - img.InstallerCustomizations.AdditionalKernelOpts = append(installerConfig.KickstartUnattendedExtraKernelOpts, img.InstallerCustomizations.AdditionalKernelOpts...) + img.InstallerCustomizations.KernelOptionsAppend = append(installerConfig.KickstartUnattendedExtraKernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) } img.RootfsCompression = "xz" // This also triggers using the bcj filter diff --git a/pkg/image/anaconda_live_installer.go b/pkg/image/anaconda_live_installer.go index 58443e9b96..e92592ac84 100644 --- a/pkg/image/anaconda_live_installer.go +++ b/pkg/image/anaconda_live_installer.go @@ -85,7 +85,7 @@ func (img *AnacondaLiveInstaller) InstantiateManifest(m *manifest.Manifest, "rhgb", } - kernelOpts = append(kernelOpts, img.InstallerCustomizations.AdditionalKernelOpts...) + kernelOpts = append(kernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) bootTreePipeline.KernelOpts = kernelOpts diff --git a/pkg/image/anaconda_net_installer.go b/pkg/image/anaconda_net_installer.go index 6b20de982f..fe4caff14b 100644 --- a/pkg/image/anaconda_net_installer.go +++ b/pkg/image/anaconda_net_installer.go @@ -84,7 +84,7 @@ func (img *AnacondaNetInstaller) InstantiateManifest(m *manifest.Manifest, if anacondaPipeline.InstallerCustomizations.FIPS { kernelOpts = append(kernelOpts, "fips=1") } - kernelOpts = append(kernelOpts, img.InstallerCustomizations.AdditionalKernelOpts...) + kernelOpts = append(kernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) bootTreePipeline.KernelOpts = kernelOpts isoTreePipeline := manifest.NewAnacondaInstallerISOTree(buildPipeline, anacondaPipeline, rootfsImagePipeline, bootTreePipeline) @@ -95,7 +95,7 @@ func (img *AnacondaNetInstaller) InstantiateManifest(m *manifest.Manifest, isoTreePipeline.RootfsCompression = img.RootfsCompression isoTreePipeline.RootfsType = img.InstallerCustomizations.ISORootfsType - isoTreePipeline.KernelOpts = img.InstallerCustomizations.AdditionalKernelOpts + isoTreePipeline.KernelOpts = img.InstallerCustomizations.KernelOptionsAppend if anacondaPipeline.InstallerCustomizations.FIPS { isoTreePipeline.KernelOpts = append(isoTreePipeline.KernelOpts, "fips=1") } diff --git a/pkg/image/anaconda_tar_installer.go b/pkg/image/anaconda_tar_installer.go index 1024d19249..650271c5eb 100644 --- a/pkg/image/anaconda_tar_installer.go +++ b/pkg/image/anaconda_tar_installer.go @@ -125,7 +125,7 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest, if img.OSCustomizations.FIPS { kernelOpts = append(kernelOpts, "fips=1") } - kernelOpts = append(kernelOpts, img.InstallerCustomizations.AdditionalKernelOpts...) + kernelOpts = append(kernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) bootTreePipeline.KernelOpts = kernelOpts osPipeline := manifest.NewOS(buildPipeline, img.platform, repos) @@ -144,7 +144,7 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest, isoTreePipeline.RootfsType = img.InstallerCustomizations.ISORootfsType isoTreePipeline.OSPipeline = osPipeline - isoTreePipeline.KernelOpts = img.InstallerCustomizations.AdditionalKernelOpts + isoTreePipeline.KernelOpts = img.InstallerCustomizations.KernelOptionsAppend if img.OSCustomizations.FIPS { isoTreePipeline.KernelOpts = append(isoTreePipeline.KernelOpts, "fips=1") } diff --git a/pkg/image/installer_image_test.go b/pkg/image/installer_image_test.go index 23efd96253..0125847d39 100644 --- a/pkg/image/installer_image_test.go +++ b/pkg/image/installer_image_test.go @@ -785,7 +785,7 @@ func TestTarInstallerKernelOpts(t *testing.T) { testOpts := []string{"foo=1", "bar=2"} - img.InstallerCustomizations.AdditionalKernelOpts = testOpts + img.InstallerCustomizations.KernelOptionsAppend = testOpts assert.NotNil(t, img) mfs := instantiateAndSerialize(t, img, mockPackageSets(), nil, nil) diff --git a/pkg/manifest/installer.go b/pkg/manifest/installer.go index 8386bfb3da..4b8bb6b9ea 100644 --- a/pkg/manifest/installer.go +++ b/pkg/manifest/installer.go @@ -5,8 +5,7 @@ package manifest type InstallerCustomizations struct { FIPS bool - // XXX: rename to "KernelOptionsAppend" to match OSCustomizations - AdditionalKernelOpts []string + KernelOptionsAppend []string EnabledAnacondaModules []string DisabledAnacondaModules []string From d7fe38d8585e422348d21e06635e43c28b9c94c2 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 26 Aug 2025 13:51:42 +0200 Subject: [PATCH 4/8] distro: add unit test for installerCustomizations() kopts This adds a missing unit test for the kernel options extraction via the installerCustomizations. --- pkg/distro/generic/images_test.go | 70 ++++++++++++++++++++++++++++++ pkg/distro/generic/options_test.go | 3 +- 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 pkg/distro/generic/images_test.go diff --git a/pkg/distro/generic/images_test.go b/pkg/distro/generic/images_test.go new file mode 100644 index 0000000000..ebd68aec4c --- /dev/null +++ b/pkg/distro/generic/images_test.go @@ -0,0 +1,70 @@ +package generic + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/osbuild/blueprint/pkg/blueprint" + "github.com/osbuild/images/pkg/distro" + "github.com/osbuild/images/pkg/distro/defs" +) + +func isoTestImageType() *imageType { + return &imageType{ + arch: &architecture{ + distro: &distribution{}, + }, + ImageTypeYAML: defs.ImageTypeYAML{ + BootISO: true, + }, + isoLabel: func(*imageType) string { return "iso-label" }, + } +} + +func TestInstallerCustomizationsHonorKernelOptions(t *testing.T) { + + for _, tc := range []struct { + imageConfig *distro.ImageConfig + kernelCustomizations *blueprint.KernelCustomization + expected []string + }{ + { + nil, + nil, + nil, + }, + { + nil, + &blueprint.KernelCustomization{ + Append: "debug", + }, + []string{"debug"}, + }, + { + &distro.ImageConfig{ + KernelOptions: []string{"default"}, + }, + nil, + []string{"default"}, + }, + { + &distro.ImageConfig{ + KernelOptions: []string{"default"}, + }, + &blueprint.KernelCustomization{ + Append: "debug", + }, + []string{"default", "debug"}, + }, + } { + it := isoTestImageType() + it.ImageConfigYAML.ImageConfig = tc.imageConfig + c := &blueprint.Customizations{Kernel: tc.kernelCustomizations} + + isc, err := installerCustomizations(it, c) + require.NoError(t, err) + assert.Equal(t, tc.expected, isc.KernelOptionsAppend) + } +} diff --git a/pkg/distro/generic/options_test.go b/pkg/distro/generic/options_test.go index 80ee2433eb..58e63e4e70 100644 --- a/pkg/distro/generic/options_test.go +++ b/pkg/distro/generic/options_test.go @@ -3,13 +3,14 @@ package generic_test import ( "testing" + "github.com/stretchr/testify/assert" + "github.com/osbuild/blueprint/pkg/blueprint" "github.com/osbuild/images/internal/common" "github.com/osbuild/images/pkg/disk/partition" "github.com/osbuild/images/pkg/distro" "github.com/osbuild/images/pkg/distro/generic" "github.com/osbuild/images/pkg/ostree" - "github.com/stretchr/testify/assert" ) func TestCheckOptions(t *testing.T) { From ec22c9de1fbe628f226b482bbd9f0519176d2e9f Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 13:12:22 +0200 Subject: [PATCH 5/8] distro: fix stray newlines in generic/images.go There are some stray newlines that visually distract from the error handling. This commit removes them. --- pkg/distro/generic/images.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/distro/generic/images.go b/pkg/distro/generic/images.go index 82bc305bbc..49ca9bbf1e 100644 --- a/pkg/distro/generic/images.go +++ b/pkg/distro/generic/images.go @@ -774,7 +774,6 @@ func iotInstallerImage(t *imageType, img.Kickstart.Timezone, _ = customizations.GetTimezoneSettings() img.InstallerCustomizations, err = installerCustomizations(t, bp.Customizations) - if err != nil { return nil, err } From 3cd232c8c21ebfa88bc6eb8215063bfa2ba50aa3 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 13:54:26 +0200 Subject: [PATCH 6/8] image: unify kernelOpts handling for AnacondaContainerInstaller This commit makes the code similar to the other installers when handling the kernelOpts options. Ideally we would have one shared helper but one step at a time. --- pkg/image/anaconda_container_installer.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/image/anaconda_container_installer.go b/pkg/image/anaconda_container_installer.go index 40a52be5b4..a7c933da77 100644 --- a/pkg/image/anaconda_container_installer.go +++ b/pkg/image/anaconda_container_installer.go @@ -100,10 +100,12 @@ func (img *AnacondaContainerInstaller) InstantiateManifest(m *manifest.Manifest, img.Kickstart.Path = osbuild.KickstartPathOSBuild } - bootTreePipeline.KernelOpts = []string{fmt.Sprintf("inst.stage2=hd:LABEL=%s", img.InstallerCustomizations.ISOLabel), fmt.Sprintf("inst.ks=hd:LABEL=%s:%s", img.InstallerCustomizations.ISOLabel, img.Kickstart.Path)} + kernelOpts := []string{fmt.Sprintf("inst.stage2=hd:LABEL=%s", img.InstallerCustomizations.ISOLabel), fmt.Sprintf("inst.ks=hd:LABEL=%s:%s", img.InstallerCustomizations.ISOLabel, img.Kickstart.Path)} if anacondaPipeline.InstallerCustomizations.FIPS { - bootTreePipeline.KernelOpts = append(bootTreePipeline.KernelOpts, "fips=1") + kernelOpts = append(kernelOpts, "fips=1") } + kernelOpts = append(kernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) + bootTreePipeline.KernelOpts = kernelOpts isoTreePipeline := manifest.NewAnacondaInstallerISOTree(buildPipeline, anacondaPipeline, rootfsImagePipeline, bootTreePipeline) isoTreePipeline.PartitionTable = efiBootPartitionTable(rng) From 2ae1dfafe5bb803c7267d42d6ca95ece5fda0f2e Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 13:55:59 +0200 Subject: [PATCH 7/8] image: fix kernel options compat in AnacondaOSTreeInstaller The fedora `iot-installer` image sets default image type kernel options that were previously not honored by the image type. With the unification of the installer kernel options it is no honored which leads to a manifest diff. It is not clear if we want these kernel options or not but this commit is conservative and keeps the old behavior by just unsetting the kernel options in the "iot-installer" image options. --- data/distrodefs/fedora/imagetypes.yaml | 2 ++ pkg/image/anaconda_ostree_installer.go | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/data/distrodefs/fedora/imagetypes.yaml b/data/distrodefs/fedora/imagetypes.yaml index 27aa1f6d9a..83e86ff29e 100644 --- a/data/distrodefs/fedora/imagetypes.yaml +++ b/data/distrodefs/fedora/imagetypes.yaml @@ -1658,6 +1658,8 @@ image_types: image_config: <<: *image_config_iot_enabled_services locale: "en_US.UTF-8" + # iot-installer is not using the default ostree kernel options + kernel_options: package_sets: installer: - *anaconda_pkgset diff --git a/pkg/image/anaconda_ostree_installer.go b/pkg/image/anaconda_ostree_installer.go index f7c8a94c11..979296c45b 100644 --- a/pkg/image/anaconda_ostree_installer.go +++ b/pkg/image/anaconda_ostree_installer.go @@ -100,10 +100,12 @@ func (img *AnacondaOSTreeInstaller) InstantiateManifest(m *manifest.Manifest, if img.Kickstart.Path == "" { img.Kickstart.Path = osbuild.KickstartPathOSBuild } - bootTreePipeline.KernelOpts = []string{fmt.Sprintf("inst.stage2=hd:LABEL=%s", img.InstallerCustomizations.ISOLabel), fmt.Sprintf("inst.ks=hd:LABEL=%s:%s", img.InstallerCustomizations.ISOLabel, img.Kickstart.Path)} + kernelOpts := []string{fmt.Sprintf("inst.stage2=hd:LABEL=%s", img.InstallerCustomizations.ISOLabel), fmt.Sprintf("inst.ks=hd:LABEL=%s:%s", img.InstallerCustomizations.ISOLabel, img.Kickstart.Path)} if anacondaPipeline.InstallerCustomizations.FIPS { - bootTreePipeline.KernelOpts = append(bootTreePipeline.KernelOpts, "fips=1") + kernelOpts = append(kernelOpts, "fips=1") } + kernelOpts = append(kernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) + bootTreePipeline.KernelOpts = kernelOpts var subscriptionPipeline *manifest.Subscription if img.Subscription != nil { From 1e5ef983c505cb8f75e010862c913a193ea7f319 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 25 Aug 2025 13:36:47 +0200 Subject: [PATCH 8/8] image: add OSTreeSimplifiedInstaller.InstallerCustomimzations The OSTreeSimplifiedInstaller is not an anaconda installer but it still uses some of the anaconda structs. So lets move it to use the same installer customizations. Note that we cannot use the InstallerCustomizations.KernelAppend with it as it will lead to a diff in the rhel-9.x edge-simplified-installer image: ```yaml --- /tmp/tmp07t_j3mj/ref/rhel_9.7-x86_64-edge_simplified_installer-edge_ostree_pull_device.json 2025-08-26 15:10:18.721496181 +0200 +++ /tmp/tmp07t_j3mj/new/rhel_9.7-x86_64-edge_simplified_installer-edge_ostree_pull_device.json 2025-08-26 15:10:21.201572008 +0200 @@ -1100,7 +1100,10 @@ "coreos.inst.isoroot=RHEL-9-7-0-BaseOS-x86_64", "coreos.inst.install_dev=/dev/sda", "coreos.inst.image_file=/run/media/iso/image.raw.xz", - "coreos.inst.insecure" + "coreos.inst.insecure", + "modprobe.blacklist=vc4", + "rw", + "coreos.no_persist_ip" ] }, "isolabel": "RHEL-9-7-0-BaseOS-x86_64", @@ -1259,7 +1262,10 @@ "coreos.inst.isoroot=RHEL-9-7-0-BaseOS-x86_64", "coreos.inst.install_dev=/dev/sda", "coreos.inst.image_file=/run/media/iso/image.raw.xz", - "coreos.inst.insecure" + "coreos.inst.insecure", + "modprobe.blacklist=vc4", + "rw", + "coreos.no_persist_ip" ] } } ``` This is because the edge-simplified-installer for rhel uses the kernel options from the base image type only for the deployed system but does not add it to the ISO kernel commandline. Its unclear if we should unify this or not but this commit errs on the side of caution. --- pkg/distro/generic/images.go | 19 +------- pkg/image/ostree_simplified_installer.go | 46 +++++++++---------- pkg/image/ostree_simplified_installer_test.go | 10 ++-- 3 files changed, 27 insertions(+), 48 deletions(-) diff --git a/pkg/distro/generic/images.go b/pkg/distro/generic/images.go index 49ca9bbf1e..671400c472 100644 --- a/pkg/distro/generic/images.go +++ b/pkg/distro/generic/images.go @@ -893,28 +893,11 @@ func iotSimplifiedInstallerImage(t *imageType, } } } - - installerConfig, err := t.getDefaultInstallerConfig() + img.InstallerCustomizations, err = installerCustomizations(t, bp.Customizations) if err != nil { return nil, err } - - if installerConfig != nil { - img.AdditionalDracutModules = append(img.AdditionalDracutModules, installerConfig.AdditionalDracutModules...) - img.AdditionalDrivers = append(img.AdditionalDrivers, installerConfig.AdditionalDrivers...) - } - - // XXX: move to use InstallerCustomizations too - d := t.arch.distro - img.Product = d.Product() - img.Variant = t.ImageTypeYAML.Variant img.OSName = t.OSTree.Name - img.OSVersion = d.OsVersion() - - img.ISOLabel, err = t.ISOLabel() - if err != nil { - return nil, err - } return img, nil } diff --git a/pkg/image/ostree_simplified_installer.go b/pkg/image/ostree_simplified_installer.go index 03599f4d49..10c028c66c 100644 --- a/pkg/image/ostree_simplified_installer.go +++ b/pkg/image/ostree_simplified_installer.go @@ -21,25 +21,15 @@ type OSTreeSimplifiedInstaller struct { // Raw image that will be created and embedded rawImage *OSTreeDiskImage - OSCustomizations manifest.OSCustomizations - Environment environment.Environment + OSCustomizations manifest.OSCustomizations + Environment environment.Environment + InstallerCustomizations manifest.InstallerCustomizations ExtraBasePackages rpmmd.PackageSet - ISOLabel string - // ISO label template (architecture-free) ISOLabelTmpl string - // Product string for ISO buildstamp - Product string - - // OSVersion string for ISO buildstamp - OSVersion string - - // Variant string for ISO buildstamp - Variant string - // OSName for ostree deployment OSName string @@ -52,9 +42,6 @@ type OSTreeSimplifiedInstaller struct { // Ignition embedded configuration options IgnitionEmbedded *ignition.EmbeddedOptions - - AdditionalDracutModules []string - AdditionalDrivers []string } func NewOSTreeSimplifiedInstaller(platform platform.Platform, filename string, rawImage *OSTreeDiskImage, installDevice string) *OSTreeSimplifiedInstaller { @@ -83,8 +70,8 @@ func (img *OSTreeSimplifiedInstaller) InstantiateManifest(m *manifest.Manifest, img.platform, repos, "kernel", - img.Product, - img.OSVersion, + img.InstallerCustomizations.Product, + img.InstallerCustomizations.OSVersion, ) coiPipeline.ExtraPackages = img.ExtraBasePackages.Include coiPipeline.ExcludePackages = img.ExtraBasePackages.Exclude @@ -92,20 +79,20 @@ func (img *OSTreeSimplifiedInstaller) InstantiateManifest(m *manifest.Manifest, coiPipeline.FDO = img.FDO coiPipeline.Ignition = img.IgnitionEmbedded coiPipeline.Biosdevname = (img.platform.GetArch() == arch.ARCH_X86_64) - coiPipeline.Variant = img.Variant - coiPipeline.AdditionalDracutModules = img.AdditionalDracutModules - coiPipeline.AdditionalDrivers = img.AdditionalDrivers + coiPipeline.Variant = img.InstallerCustomizations.Variant + coiPipeline.AdditionalDracutModules = img.InstallerCustomizations.AdditionalDracutModules + coiPipeline.AdditionalDrivers = img.InstallerCustomizations.AdditionalDrivers var isoLabel string - if len(img.ISOLabel) > 0 { - isoLabel = img.ISOLabel + if len(img.InstallerCustomizations.ISOLabel) > 0 { + isoLabel = img.InstallerCustomizations.ISOLabel } else { // TODO: replace isoLabelTmpl with more high-level properties isoLabel = fmt.Sprintf(img.ISOLabelTmpl, img.platform.GetArch()) } - bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.Product, img.OSVersion) + bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.InstallerCustomizations.Product, img.InstallerCustomizations.OSVersion) bootTreePipeline.Platform = img.platform bootTreePipeline.UEFIVendor = img.platform.GetUEFIVendor() bootTreePipeline.ISOLabel = isoLabel @@ -136,7 +123,16 @@ func (img *OSTreeSimplifiedInstaller) InstantiateManifest(m *manifest.Manifest, kernelOpts = append(kernelOpts, "fdo.di_mfg_string_type_mac_iface="+img.FDO.DiMfgStringTypeMacIface) } } - + // Note that we do not use the + // InstallerCustomizations.KernelOptionsAppend here because + // InstallerCustomizations.KernelOptionsAppend also picks up + // the kernel options from the imageConfig but we only set + // those in the rawImage.OSTreeDeploymentCustomizations and + // not in the bootTreePipeline. Its unclear if we should change + // this or not. Its inconsistent with the other installers but + // then simplifiedInstaler is special. + // + // kernelOpts = append(kernelOpts, img.InstallerCustomizations.KernelOptionsAppend...) bootTreePipeline.KernelOpts = kernelOpts // enable ISOLinux on x86_64 only diff --git a/pkg/image/ostree_simplified_installer_test.go b/pkg/image/ostree_simplified_installer_test.go index 312f6b566b..f08f3c7305 100644 --- a/pkg/image/ostree_simplified_installer_test.go +++ b/pkg/image/ostree_simplified_installer_test.go @@ -19,15 +19,15 @@ func TestSimplifiedInstallerDracut(t *testing.T) { ostreeDiskImage := image.NewOSTreeDiskImageFromCommit(platform, "filename", commit) ostreeDiskImage.PartitionTable = testdisk.MakeFakePartitionTable("/") img := image.NewOSTreeSimplifiedInstaller(testPlatform, "filename", ostreeDiskImage, "") - img.Product = product - img.OSVersion = osversion - img.ISOLabel = isolabel + img.InstallerCustomizations.Product = product + img.InstallerCustomizations.OSVersion = osversion + img.InstallerCustomizations.ISOLabel = isolabel testModules := []string{"test-module"} testDrivers := []string{"test-driver"} - img.AdditionalDracutModules = testModules - img.AdditionalDrivers = testDrivers + img.InstallerCustomizations.AdditionalDracutModules = testModules + img.InstallerCustomizations.AdditionalDrivers = testDrivers commitSpec := map[string][]ostree.CommitSpec{ "ostree-deployment": {