From ae048a890ddd2169f3f46d9fbd1545fd65670e16 Mon Sep 17 00:00:00 2001 From: Matej Matuska Date: Mon, 6 Oct 2025 15:56:16 +0200 Subject: [PATCH 13/55] livemode: Include /etc/crypttab in upgrade initramfs The /etc/crypttab file is sometimes not picked up automatically by dracut, this change includes it unconditionally. This is required for auto-unlocking encrypted devices in upgrade environment. The upgradeinitramfsgenerator is modified to process UpgradeInitramfsTasksinclude's include_files when upgrading in livemode. Jira: RHEL-90098 --- .../common/actors/checkluks/libraries/checkluks.py | 4 +++- .../libraries/upgradeinitramfsgenerator.py | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py b/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py index aac171a7..d52b9e73 100644 --- a/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py +++ b/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py @@ -161,7 +161,9 @@ def check_invalid_luks_devices(): copy_files=[CopyFile(src="/etc/crypttab")], install_rpms=required_crypt_rpms) ) - api.produce(UpgradeInitramfsTasks(include_dracut_modules=[ + api.produce(UpgradeInitramfsTasks( + include_files=['/etc/crypttab'], + include_dracut_modules=[ DracutModule(name='clevis'), DracutModule(name='clevis-pin-tpm2') ]) 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 02c3fd9d..3ad92167 100644 --- a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py +++ b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py @@ -436,6 +436,9 @@ def _generate_livemode_initramfs(context, userspace_initramfs_dest, target_kerne '--lvmconf', '--mdadmconf', '--kver', target_kernel_ver, '-f', userspace_initramfs_dest] + # Add included files + cmd.extend(itertools.chain(*(('--install', file) for file in initramfs_includes.files))) + # Add dracut modules cmd.extend(itertools.chain(*(('--add', module) for module in dracut_modules))) -- 2.51.1