-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add kpatch actor #837
Add kpatch actor #837
Conversation
Thank you for contributing to the Leapp project!Please note that every PR needs to comply with the Leapp Guidelines and must pass all tests in order to be mergable.
Please open ticket in case you experience technical problem with the CI. (RH internal only) Note: In case there are problems with tests not being triggered automatically on new PR/commit or pending for a long time, please consider rerunning the CI by commenting leapp-ci build (might require several comments). If the problem persists, contact leapp-infra. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sm00th on top of requested changes, move the actor under the kernel
directory, so we have all kernel specific actors grouped (for easier orientation in number of existing actors)
v2: addressed comments and flake8 codestyle warnings. |
/rerun |
Copr build succeeded: https://copr.fedorainfracloud.org/coprs/build/3535554 |
Testing Farm request for 7to8/3535554 regression testing has been created. Once finished, results should be available here. |
Testing Farm request for 8to9/3535554 regression testing has been created. Once finished, results should be available here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sm00th It seems good to me. However, thinking about IPU 7 -> 8, is it valid? I mean, the official supported packager on RHEL 7 is YUM only (if I am right, dnf is in extras and does not have to be configured in any way). So I am curious, whether the CONFIG_PATH
is correct in case of RHEL 7, or whether it is expected something like
SRC_CONFIG_PATH = CONFIG_PATH if rhel7 else "/etc/yum/plugins/kpatch.conf"
@sm00th pls make linter happy. You can use |
This is a great question, thanks for noticing. It turns out we do not provide kpatch-dnf on rhel7 so it looks like we don't need (can't) support 7to8. Will the right course of action be to move this actor from |
@sm00th it depends. is the yum plugin configuration compatible with the dnf plugin configuration (at least, I can see that there is a plugin for YUM on RHEL 7)? Does exist a way how to transform the original configuration to the new one for dnf if needed? if so, the actor can be still updated to support both upgrade paths. In case you want to support just 8 -> 9, it should be moved to the path you wrote. |
We don't have any yum alternative for the plugin so there is no config on rhel7. We will be only supporting 8to9 for now. O've already moved the actor in my last push. |
This PR has been linked in issue tracker (#OAMG-6556). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2022-02-23 10:50:13.702 INFO PID: 107934 leapp: Logging has been initialized
Process Process-101:
Traceback (most recent call last):
File "/usr/lib64/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib64/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.6/site-packages/leapp/repository/actor_definition.py", line 30, in inspect_actor
definition.load()
File "/usr/lib/python3.6/site-packages/leapp/repository/actor_definition.py", line 179, in load
self._module = importer.find_module(name).load_module(name)
File "<frozen importlib._bootstrap_external>", line 399, in _check_name_wrapper
File "<frozen importlib._bootstrap_external>", line 823, in load_module
File "<frozen importlib._bootstrap_external>", line 682, in load_module
File "<frozen importlib._bootstrap>", line 265, in _load_module_shim
File "<frozen importlib._bootstrap>", line 684, in _load
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/etc/leapp/repos.d/system_upgrade/el8toel9/actors/kernel/checkkpatch/actor.py", line 5, in <module>
from leapp.tags import CheckPhaseTag, IPUWorkflowTag
ImportError: cannot import name 'CheckPhaseTag'
Error: Inspection of actor in actors/kernel/checkkpatch failed
repos/system_upgrade/el8toel9/actors/kernel/checkkpatch/actor.py
Outdated
Show resolved
Hide resolved
repos/system_upgrade/el8toel9/actors/kernel/checkkpatch/actor.py
Outdated
Show resolved
Hide resolved
Add an actor that makes sure kpatch-dnf plugin and its config is carried over to the container so that it installs appropriate kpatch-patch during in-place-upgrade if needed. Signed-off-by: Artem Savkov <asavkov@redhat.com>
Sorry about that, fixed. |
@sm00th one another question, have you tested it? Is there any kpatch* rpm on RHEL 9 that is providing fixes for kernel package? I am asking because I would like to see that the upgrade will not be broken when any such package for specific kernel release will be built. Currently I haven't seen anything around kpatch on RHEL 9 what's checking the |
I tested the original version with FactsPhase.
We don't have any real-life kpatch-patches for rhel9 yet, but we can create one for any kernel version for test purposes if/when needed.
We just merged the change today, I'll send you a link internally.
We can discuss this over email. |
Anything else I can help with to get it merged in time? |
@sm00th Hi, I wrote you an email ~ 1h ago :) yes, we will need builds and I will appreciate if we sync today for the testing (builds for el9 will help!!) I want to be sure it works before we merge it. |
/rerun |
Copr build succeeded: https://copr.fedorainfracloud.org/coprs/build/3580468 |
Testing Farm request for 7to8/3580468 regression testing has been created. Once finished, results should be available here. |
Testing Farm request for 8to9/3580468 regression testing has been created. Once finished, results should be available here. |
Tested with el8 where the active patching of kernel as enabled. Some snippets:
|
## Packaging - Requires leapp-framework >= 2.2 - Bump leapp-framework-dependencies to 5 ## Upgrade handling ### Fixes - Fallback to /etc/leapp/repos.d if missing config option instead of using cwd (oamg#849) - Filter out unrelated PES data for the particular IPU path (oamg#789) - Fix bug with existing symlink when migrating YUM configuration files (oamg#811) - Fix creating invalid answerfile in "authselectcheck" actor (oamg#748) - Fix generating of instructions/data for the leapp DNF plugin during the IPU (oamg#754) - Fix generating the target initramfs when additional files and dracut modules are requested to be added (oamg#838) - Fix getting device attribute through udev on Python 3 (oamg#758) - Fix parsing of sysctl output (oamg#793) - Fix processing of merge events from PES data (oamg#768, oamg#825) - Fix random crashes when printing DNF output (oamg#745) - Fix scanning "/etc/default/grub" with empty line (oamg#845) - Fix scanning information about mounted devices (oamg#711) - Fix severities in the "targetuserspacecreator" actor (oamg#751) - Fix the "rerun" command after adding the "--channel" option (oamg#750) - Fix the execution order for the dnf dry run actor (oamg#801) - Skip checking the flavor and target_version upon leapp --resume (oamg#781) - Use more accurate tense in the SELinux messaging (oamg#614) ### Enhancements - Introduce IPU for RHEL 8 to RHEL 9 \o/ - New upgrade paths for RHEL with SAP HANA (oamg#834) - Changed upgrade paths: -- RHEL 7.9 -> [8.4, 8.6] (default: 8.6) -- RHEL 8.6 -> 9.0 -- RHEL with SAP 7.9 -> [8.2, 8.6] (default: 8.2) -- RHEL with SAP 8.6 -> 9.0 - Add 8.6, 9.0 Beta & GA product certificates (oamg#776, oamg#794) - Add detection of enabled YUM & DNF plugins (oamg#703) - Bind the /run/lock dir into the container in the upgrade initramfs env (oamg#831) - Enable RHEL 8 to RHEL 9 upgrades on RHUI for AWS (oamg#828) - Enhance handling selinux related stuff for 8 to 9 upgrade (oamg#749) - Generalize checking of device drivers (oamg#835) - Improve the performance of the leapp execution for "pre first reboot" phases (oamg#741) - Introduce DNFWorkarounds to register scripts to be executed before DNF run (oamg#841) - Introduce DNF modularity support (oamg#672, oamg#799) - Introduce the --report-schema option to control the version of the generated report format (oamg#696) - Introduce the --target option to specify the version of the target system (oamg#780) - Provide the LEAPP_IPU_IN_PROGRESS envar during the IPU (oamg#830) - [IPU 7 -> 8]: Add CUPS actors - cupsscanner, cupscheck, cupsmigrate (oamg#181) - [IPU 7 -> 8]: Convert restrictions with IPv6 mask in "migratentp" actor (oamg#756) - [IPU 7 -> 8]: Handle upgrading Satellite instances (oamg#733) - [IPU 7 -> 8]: Warn about docker deprecation when installed - [IPU 7 -> 8]: Zipl: Inhibit if boot entries share the same kernel image (oamg#816) - [IPU 7 -> 8]: bind configuration check (oamg#521) - [IPU 8 -> 9]: Add actor that ensures ifcfg files work in el9 (oamg#839) - [IPU 8 -> 9]: Add actor that scans for deprecated network settings (oamg#842) - [IPU 8 -> 9]: Add inhibitor FirewalldCheckServiceTftpClient (oamg#792) - [IPU 8 -> 9]: Add inihibtor FirewalldCheckAllowZoneDrifting (oamg#777) - [IPU 8 -> 9]: Add kpatch actor to handle live kernel patching during IPU (oamg#837) - [IPU 8 -> 9]: Add mariadbcheck actor to link upgrade documentation (oamg#836) - [IPU 8 -> 9]: Add postgresqlcheck actor to link upgrade documentation (oamg#802) - [IPU 8 -> 9]: Add scan & checks for VDO devices (oamg#821) - [IPU 8 -> 9]: Apply a new way of disabling SELinux (oamg#769) - [IPU 8 -> 9]: Check SSSD configuration for changes in RHEL9 and report them (oamg#732) - [IPU 8 -> 9]: Check the existence of the custom network-scripts (oamg#729) - [IPU 8 -> 9]: Provide upgrade inhibitor for ipa-server (oamg#765) ## Additional changes interesting for devels - Move target release and flavor specification to a separate lib (oamg#753) - Refactor "transactionworkarounds" actor and fix tests (oamg#759) - Several actors moved to the system_upgrade/common repository (oamg#800, oamg#803, oamg#805, oamg#833)
## Packaging - Requires leapp-framework >= 2.2 - Bump leapp-framework-dependencies to 5 ## Upgrade handling ### Fixes - Fallback to /etc/leapp/repos.d if missing config option instead of using cwd (oamg#849) - Filter out unrelated PES data for the particular IPU path (oamg#789) - Fix bug with existing symlink when migrating YUM configuration files (oamg#811) - Fix creating invalid answerfile in "authselectcheck" actor (oamg#748) - Fix generating of instructions/data for the leapp DNF plugin during the IPU (oamg#754) - Fix generating the target initramfs when additional files and dracut modules are requested to be added (oamg#838) - Fix getting device attribute through udev on Python 3 (oamg#758) - Fix parsing of sysctl output (oamg#793) - Fix processing of merge events from PES data (oamg#768, oamg#825) - Fix random crashes when printing DNF output (oamg#745) - Fix scanning "/etc/default/grub" with empty line (oamg#845) - Fix scanning information about mounted devices (oamg#711) - Fix severities in the "targetuserspacecreator" actor (oamg#751) - Fix the "rerun" command after adding the "--channel" option (oamg#750) - Fix the execution order for the dnf dry run actor (oamg#801) - Skip checking the flavor and target_version upon leapp --resume (oamg#781) - Use more accurate tense in the SELinux messaging (oamg#614) ### Enhancements - Introduce IPU for RHEL 8 to RHEL 9 \o/ - New upgrade paths for RHEL with SAP HANA (oamg#834) - Changed upgrade paths: -- RHEL 7.9 -> [8.4, 8.6] (default: 8.6) -- RHEL 8.6 -> 9.0 -- RHEL with SAP 7.9 -> [8.2, 8.6] (default: 8.2) -- RHEL with SAP 8.6 -> 9.0 - Add 8.6, 9.0 Beta & GA product certificates (oamg#776, oamg#794) - Add detection of enabled YUM & DNF plugins (oamg#703) - Bind the /run/lock dir into the container in the upgrade initramfs env (oamg#831) - Enable RHEL 8 to RHEL 9 upgrades on RHUI for AWS (oamg#828) - Enhance handling selinux related stuff for 8 to 9 upgrade (oamg#749) - Generalize checking of device drivers (oamg#835) - Improve the performance of the leapp execution for "pre first reboot" phases (oamg#741) - Introduce DNFWorkarounds to register scripts to be executed before DNF run (oamg#841) - Introduce DNF modularity support (oamg#672, oamg#799) - Introduce the --report-schema option to control the version of the generated report format (oamg#696) - Introduce the --target option to specify the version of the target system (oamg#780) - Provide the LEAPP_IPU_IN_PROGRESS envar during the IPU (oamg#830) - [IPU 7 -> 8]: Add CUPS actors - cupsscanner, cupscheck, cupsmigrate (oamg#181) - [IPU 7 -> 8]: Convert restrictions with IPv6 mask in "migratentp" actor (oamg#756) - [IPU 7 -> 8]: Handle upgrading Satellite instances (oamg#733) - [IPU 7 -> 8]: Warn about docker deprecation when installed - [IPU 7 -> 8]: Zipl: Inhibit if boot entries share the same kernel image (oamg#816) - [IPU 7 -> 8]: bind configuration check (oamg#521) - [IPU 8 -> 9]: Add actor that ensures ifcfg files work in el9 (oamg#839) - [IPU 8 -> 9]: Add actor that scans for deprecated network settings (oamg#842) - [IPU 8 -> 9]: Add inhibitor FirewalldCheckServiceTftpClient (oamg#792) - [IPU 8 -> 9]: Add inihibtor FirewalldCheckAllowZoneDrifting (oamg#777) - [IPU 8 -> 9]: Add kpatch actor to handle live kernel patching during IPU (oamg#837) - [IPU 8 -> 9]: Add mariadbcheck actor to link upgrade documentation (oamg#836) - [IPU 8 -> 9]: Add postgresqlcheck actor to link upgrade documentation (oamg#802) - [IPU 8 -> 9]: Add scan & checks for VDO devices (oamg#821) - [IPU 8 -> 9]: Apply a new way of disabling SELinux (oamg#769) - [IPU 8 -> 9]: Check SSSD configuration for changes in RHEL9 and report them (oamg#732) - [IPU 8 -> 9]: Check the existence of the custom network-scripts (oamg#729) - [IPU 8 -> 9]: Provide upgrade inhibitor for ipa-server (oamg#765) ## Additional changes interesting for devels - Move target release and flavor specification to a separate lib (oamg#753) - Refactor "transactionworkarounds" actor and fix tests (oamg#759) - Several actors moved to the system_upgrade/common repository (oamg#800, oamg#803, oamg#805, oamg#833) Signed-off-by: Michal Reznik <mreznik@redhat.com>
## Packaging - Requires leapp-framework >= 2.2 - Bump leapp-framework-dependencies to 5 ## Upgrade handling ### Fixes - Fallback to /etc/leapp/repos.d if missing config option instead of using cwd (#849) - Filter out unrelated PES data for the particular IPU path (#789) - Fix bug with existing symlink when migrating YUM configuration files (#811) - Fix creating invalid answerfile in "authselectcheck" actor (#748) - Fix generating of instructions/data for the leapp DNF plugin during the IPU (#754) - Fix generating the target initramfs when additional files and dracut modules are requested to be added (#838) - Fix getting device attribute through udev on Python 3 (#758) - Fix parsing of sysctl output (#793) - Fix processing of merge events from PES data (#768, #825) - Fix random crashes when printing DNF output (#745) - Fix scanning "/etc/default/grub" with empty line (#845) - Fix scanning information about mounted devices (#711) - Fix severities in the "targetuserspacecreator" actor (#751) - Fix the "rerun" command after adding the "--channel" option (#750) - Fix the execution order for the dnf dry run actor (#801) - Skip checking the flavor and target_version upon leapp --resume (#781) - Use more accurate tense in the SELinux messaging (#614) ### Enhancements - Introduce IPU for RHEL 8 to RHEL 9 \o/ - New upgrade paths for RHEL with SAP HANA (#834) - Changed upgrade paths: -- RHEL 7.9 -> [8.4, 8.6] (default: 8.6) -- RHEL 8.6 -> 9.0 -- RHEL with SAP 7.9 -> [8.2, 8.6] (default: 8.2) -- RHEL with SAP 8.6 -> 9.0 - Add 8.6, 9.0 Beta & GA product certificates (#776, #794) - Add detection of enabled YUM & DNF plugins (#703) - Bind the /run/lock dir into the container in the upgrade initramfs env (#831) - Enable RHEL 8 to RHEL 9 upgrades on RHUI for AWS (#828) - Enhance handling selinux related stuff for 8 to 9 upgrade (#749) - Generalize checking of device drivers (#835) - Improve the performance of the leapp execution for "pre first reboot" phases (#741) - Introduce DNFWorkarounds to register scripts to be executed before DNF run (#841) - Introduce DNF modularity support (#672, #799) - Introduce the --report-schema option to control the version of the generated report format (#696) - Introduce the --target option to specify the version of the target system (#780) - Provide the LEAPP_IPU_IN_PROGRESS envar during the IPU (#830) - [IPU 7 -> 8]: Add CUPS actors - cupsscanner, cupscheck, cupsmigrate (#181) - [IPU 7 -> 8]: Convert restrictions with IPv6 mask in "migratentp" actor (#756) - [IPU 7 -> 8]: Handle upgrading Satellite instances (#733) - [IPU 7 -> 8]: Warn about docker deprecation when installed - [IPU 7 -> 8]: Zipl: Inhibit if boot entries share the same kernel image (#816) - [IPU 7 -> 8]: bind configuration check (#521) - [IPU 8 -> 9]: Add actor that ensures ifcfg files work in el9 (#839) - [IPU 8 -> 9]: Add actor that scans for deprecated network settings (#842) - [IPU 8 -> 9]: Add inhibitor FirewalldCheckServiceTftpClient (#792) - [IPU 8 -> 9]: Add inihibtor FirewalldCheckAllowZoneDrifting (#777) - [IPU 8 -> 9]: Add kpatch actor to handle live kernel patching during IPU (#837) - [IPU 8 -> 9]: Add mariadbcheck actor to link upgrade documentation (#836) - [IPU 8 -> 9]: Add postgresqlcheck actor to link upgrade documentation (#802) - [IPU 8 -> 9]: Add scan & checks for VDO devices (#821) - [IPU 8 -> 9]: Apply a new way of disabling SELinux (#769) - [IPU 8 -> 9]: Check SSSD configuration for changes in RHEL9 and report them (#732) - [IPU 8 -> 9]: Check the existence of the custom network-scripts (#729) - [IPU 8 -> 9]: Provide upgrade inhibitor for ipa-server (#765) ## Additional changes interesting for devels - Move target release and flavor specification to a separate lib (#753) - Refactor "transactionworkarounds" actor and fix tests (#759) - Several actors moved to the system_upgrade/common repository (#800, #803, #805, #833) Signed-off-by: Michal Reznik <mreznik@redhat.com>
## Packaging - Requires leapp-framework >= 2.2 - Bump leapp-framework-dependencies to 5 ## Upgrade handling ### Fixes - Fallback to /etc/leapp/repos.d if missing config option instead of using cwd (oamg#849) - Filter out unrelated PES data for the particular IPU path (oamg#789) - Fix bug with existing symlink when migrating YUM configuration files (oamg#811) - Fix creating invalid answerfile in "authselectcheck" actor (oamg#748) - Fix generating of instructions/data for the leapp DNF plugin during the IPU (oamg#754) - Fix generating the target initramfs when additional files and dracut modules are requested to be added (oamg#838) - Fix getting device attribute through udev on Python 3 (oamg#758) - Fix parsing of sysctl output (oamg#793) - Fix processing of merge events from PES data (oamg#768, oamg#825) - Fix random crashes when printing DNF output (oamg#745) - Fix scanning "/etc/default/grub" with empty line (oamg#845) - Fix scanning information about mounted devices (oamg#711) - Fix severities in the "targetuserspacecreator" actor (oamg#751) - Fix the "rerun" command after adding the "--channel" option (oamg#750) - Fix the execution order for the dnf dry run actor (oamg#801) - Skip checking the flavor and target_version upon leapp --resume (oamg#781) - Use more accurate tense in the SELinux messaging (oamg#614) ### Enhancements - Introduce IPU for RHEL 8 to RHEL 9 \o/ - New upgrade paths for RHEL with SAP HANA (oamg#834) - Changed upgrade paths: -- RHEL 7.9 -> [8.4, 8.6] (default: 8.6) -- RHEL 8.6 -> 9.0 -- RHEL with SAP 7.9 -> [8.2, 8.6] (default: 8.2) -- RHEL with SAP 8.6 -> 9.0 - Add 8.6, 9.0 Beta & GA product certificates (oamg#776, oamg#794) - Add detection of enabled YUM & DNF plugins (oamg#703) - Bind the /run/lock dir into the container in the upgrade initramfs env (oamg#831) - Enable RHEL 8 to RHEL 9 upgrades on RHUI for AWS (oamg#828) - Enhance handling selinux related stuff for 8 to 9 upgrade (oamg#749) - Generalize checking of device drivers (oamg#835) - Improve the performance of the leapp execution for "pre first reboot" phases (oamg#741) - Introduce DNFWorkarounds to register scripts to be executed before DNF run (oamg#841) - Introduce DNF modularity support (oamg#672, oamg#799) - Introduce the --report-schema option to control the version of the generated report format (oamg#696) - Introduce the --target option to specify the version of the target system (oamg#780) - Provide the LEAPP_IPU_IN_PROGRESS envar during the IPU (oamg#830) - [IPU 7 -> 8]: Add CUPS actors - cupsscanner, cupscheck, cupsmigrate (oamg#181) - [IPU 7 -> 8]: Convert restrictions with IPv6 mask in "migratentp" actor (oamg#756) - [IPU 7 -> 8]: Handle upgrading Satellite instances (oamg#733) - [IPU 7 -> 8]: Warn about docker deprecation when installed - [IPU 7 -> 8]: Zipl: Inhibit if boot entries share the same kernel image (oamg#816) - [IPU 7 -> 8]: bind configuration check (oamg#521) - [IPU 8 -> 9]: Add actor that ensures ifcfg files work in el9 (oamg#839) - [IPU 8 -> 9]: Add actor that scans for deprecated network settings (oamg#842) - [IPU 8 -> 9]: Add inhibitor FirewalldCheckServiceTftpClient (oamg#792) - [IPU 8 -> 9]: Add inihibtor FirewalldCheckAllowZoneDrifting (oamg#777) - [IPU 8 -> 9]: Add kpatch actor to handle live kernel patching during IPU (oamg#837) - [IPU 8 -> 9]: Add mariadbcheck actor to link upgrade documentation (oamg#836) - [IPU 8 -> 9]: Add postgresqlcheck actor to link upgrade documentation (oamg#802) - [IPU 8 -> 9]: Add scan & checks for VDO devices (oamg#821) - [IPU 8 -> 9]: Apply a new way of disabling SELinux (oamg#769) - [IPU 8 -> 9]: Check SSSD configuration for changes in RHEL9 and report them (oamg#732) - [IPU 8 -> 9]: Check the existence of the custom network-scripts (oamg#729) - [IPU 8 -> 9]: Provide upgrade inhibitor for ipa-server (oamg#765) ## Additional changes interesting for devels - Move target release and flavor specification to a separate lib (oamg#753) - Refactor "transactionworkarounds" actor and fix tests (oamg#759) - Several actors moved to the system_upgrade/common repository (oamg#800, oamg#803, oamg#805, oamg#833) Signed-off-by: Michal Reznik <mreznik@redhat.com>
Add an actor that makes sure kpatch-dnf plugin and its config is carried
over to the container so that it installs appropriate kpatch-patch
during in-place-upgrade if needed.