leapp-repository
leapp-repository copied to clipboard
feature request: support custom content inside upgrade initramfs
In the process of our efforts to support luks on c7->r8, we found that adding a custom overlay to be very helpful and require minimal changes. For the actual implementation, I would expect that this would be enabled and included via an ENV var.
LEAPP_CUSTOM_INITRAMFS_OVERLAY=<path> would turn this on and set src to CopyFile
diff --git a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/files/generate-initram.sh b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/files/generate-initram.sh
index 9648234c..205f8071 100755
--- a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/files/generate-initram.sh
+++ b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/files/generate-initram.sh
@@ -107,6 +107,7 @@ build() {
--no-hostonly \
--kver "$KERNEL_VERSION" \
--kernel-image "vmlinuz-upgrade.$KERNEL_ARCH" \
+ --include /custom-overlay /
"initramfs-upgrade.${KERNEL_ARCH}.img"
popd || {
echo "ERROR: Failed to change directory using 'popd'.";
diff --git a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py
index 5a686a47..b1dccd92 100644
--- a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py
+++ b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py
@@ -10,6 +10,7 @@ from leapp.models import RequiredUpgradeInitramPackages # deprecated
from leapp.models import UpgradeDracutModule # deprecated
from leapp.models import (
BootContent,
+ CopyFile,
TargetOSInstallationImage,
TargetUserSpaceInfo,
TargetUserSpaceUpgradeTasks,
@@ -229,6 +230,7 @@ def prepare_userspace_for_initram(context):
# install all required rpms first, so files installed/copied later
# will not be overwritten during the dnf transaction
_install_initram_deps(packages)
+ files.append(CopyFile(src="/root/overlay", dst="/custom-overlay"))
_copy_files(context, files)