Skip to content
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

Refactor handling of kernel information #1107

Merged
merged 1 commit into from
Aug 22, 2023
Merged

Conversation

MichalHe
Copy link
Member

@MichalHe MichalHe commented Aug 4, 2023

Refactor the handling of kernel-related information away from using distributed ad-hoc logic based only on kernel release in IPUConfiguration. Instead, introduce the KernelInfo message providing rich information about the booted kernel. These changes also affect the information about the target kernel which previously only included target kernel's nevra that was misleadingly marked as 'version'. The new target kernel info message also contains paths to frequently used files such as the kernel image path and initramfs location. All old functionality has been kept in place, but deprecated.

Deprecated:

  • leapp.libraries.common.config.version.is_rhel_realtime (check type in msg KernelInfo, field type)
  • leapp.models.InstalledTargetKernelVersion (replaced by InstalledTargetKernelInfo)

Jira ref: OAMG-9452

@github-actions
Copy link

github-actions bot commented Aug 4, 2023

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 mergeable.
If you want to request a review or rebuild a package in copr, you can use following commands as a comment:

  • review please @oamg/developers to notify leapp developers of the review request
  • /packit copr-build to submit a public copr build using packit

Packit will automatically schedule regression tests for this PR's build and latest upstream leapp build. If you need a different version of leapp from PR#42, use /packit test oamg/leapp#42

To launch regression testing public members of oamg organization can leave the following comment:

  • /rerun to schedule basic regression tests using this pr build and latest upstream leapp build as artifacts
  • /rerun 42 to schedule basic regression tests using this pr build and leapp*PR42* as artifacts
  • /rerun-sst to schedule sst tests using this pr build and latest upstream leapp build as artifacts
  • /rerun-sst 42 to schedule sst tests using this pr build and leapp*PR42* as artifacts

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 contact leapp-infra.

@pirat89 pirat89 added this to the 8.9/9.3 milestone Aug 15, 2023
@MichalHe MichalHe force-pushed the kernel_rt_fix branch 3 times, most recently from 55996d5 to b82d803 Compare August 15, 2023 14:41
@MichalHe
Copy link
Member Author

I've done testing of this patch on 7>8, 7>8 RealTime, 8>9.3, 8>9.3 RealTime, all upgrades passed with out issues.
Here are examples of the messages produced during the (previously) problematic 8>9.3 RealTime upgrade.

[root@localhost ~]# ./leapp-inspector messages --type KernelInfo
######################################################################
                          PRODUCED MESSAGES
######################################################################
Stamp: 2023-08-15T16:20:09.149111Z
Actor: scan_source_kernel
Phase: FactsCollection
Type: KernelInfo
Message_data:
{
    "pkg": {
        "arch": "x86_64",
        "epoch": "0",
        "module": null,
        "name": "kernel-rt-core",
        "packager": "Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>",
        "pgpsig": "RSA/SHA256, Wed 17 May 2023 12:43:11 PM UTC, Key ID 199e2f91fd431d51",
        "release": "477.11.1.rt7.275.el8_8",
        "repository": "rhel-8-for-x86_64-realtime-rpms",
        "stream": null,
        "version": "4.18.0"
    },
    "type": "realtime",
    "uname_r": "4.18.0-477.11.1.rt7.275.el8_8.x86_64"
}
######################################################################
[root@localhost ~]# ./leapp-inspector messages --type InstalledTargetKernelInfo
######################################################################
                          PRODUCED MESSAGES
######################################################################
Stamp: 2023-08-15T16:45:09.071600Z
Actor: scan_installed_target_kernel_version
Phase: RPMUpgrade
Type: InstalledTargetKernelInfo
Message_data:
{
    "initramfs_path": "/boot/initramfs-5.14.0-354.el9.x86_64+rt.img",
    "kernel_img_path": "/boot/vmlinuz-5.14.0-354.el9.x86_64+rt",
    "pkg_nevra": "kernel-rt-core-5.14.0-354.el9.x86_64"
}
######################################################################

@MichalHe MichalHe force-pushed the kernel_rt_fix branch 2 times, most recently from 4c8bdae to 91b0bc3 Compare August 16, 2023 13:32
@MichalHe
Copy link
Member Author

/packit build

Copy link
Member

@pirat89 pirat89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The overall approach is good. Just some small nitpicks. Most likely we will need to do some changes in future, but right now it's ok and it's very close to resolve our future problems too. I will get to the testing tomorrow

Refactor the handling of kernel-related information away from
using distributed ad-hoc logic based only on kernel release in
IPUConfiguration. Instead, introduce the KernelInfo message providing
rich information about the booted kernel. These changes also affect
the information about the target kernel which previously only included
target kernel's nevra that was misleadingly marked as 'version'. The new
target kernel info message also contains paths to frequently used files
such as the kernel image path and initramfs location. All old
functionality has been kept in place, but deprecated.
@pirat89 pirat89 added the deprecation Any change in the set of deprecation functionality. label Aug 22, 2023
@pirat89 pirat89 mentioned this pull request Aug 22, 2023
Copy link
Member

@pirat89 pirat89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm and works as expected! Kudos \o/
tested:

  • rhel rt 7.9 -> 8.9
  • rhel rt 8.9 -> 9.3
  • rhel rt 8.8 -> 9.2
  • rhel 8.9 -> 9.3

I will update the commit msg using the squash to include the list of deprecated leapp entities. The upstream documentation is going to be updated in oamg/leapp#841

@pirat89 pirat89 merged commit 4fc0d0b into oamg:master Aug 22, 2023
11 of 15 checks passed
@pirat89 pirat89 added the changelog-checked The merger/reviewer checked the changelog draft document and updated it when relevant label Aug 22, 2023
pirat89 added a commit to pirat89/leapp that referenced this pull request Aug 23, 2023
pirat89 added a commit to pirat89/leapp-repository that referenced this pull request Aug 23, 2023
## Packaging
- Requires leapp-framework 5.0

## Upgrade handling
### Fixes
- Add el8toel9 actor to handle directory -> symlink with ruby IRB. (oamg#1076)
- Do not try to update GRUB core on IBM Z systems (oamg#1117)
- Fix failing upgrades with devtmpfs file systems specified in FSTAB (oamg#1090)
- Fix the calculation of the required free space on each partitions/volume for the upgrade transactions (oamg#1097)
- Fix the generation of the report about hybrid images (oamg#1064)
- Handle correctly the installed certificates to allow upgrades with custom repositories using HTTPs with enabled SSL verification (oamg#1106)
- Minor improvements and fixes of various reports (oamg#1066, oamg#1067, oamg#1085)
- Update error messages about leapp data files to inform user how to obtain valid data files (oamg#1121)
- Update links in various reports (oamg#1062, oamg#1086)
- Update the repomap data to cover changed repoids in RHUI Azure (oamg#1087)
- [IPU 7 -> 8] Fix false positive report about invalid symlinks on RHEL 7 (oamg#1052)
- [IPU 8 -> 9] Inhibit the upgrade when unsupported x86-64 microarchitecture is detected (oamg#1059)

### Enhancements
- Include updated leapp data files in the RPM (oamg#1046, oamg#1092, oamg#1119)
- Update the set of supported upgrade paths (oamg#1077):
  - RHEL with SAP HANA 7.9 -> 8.6, 8.8 (default: 8.6)
  - RHEL with SAP HANA 8.8 -> 9.2
- Introduce new upgrade paths:
  - RHEL 7.9 -> 8.9 (default)
  - RHEL 8.9 -> 9.3
- Correctly update grub2 when /boot resides on multiple devices aggregated in RAID (oamg#1093, oamg#1115)
- Enable upgrades for machines using RHUI on AlibabaCloud (oamg#1088)
- Introduce possibility to add kernel drivers to initramfs (oamg#1081)
- Redesign handling of information about kernel (booted and target) in preparation for new changes in RHEL 9 (oamg#1107)
- Redesign source system overlay to use disk images backed by sparse files to optimize disk space consumption (oamg#1097, oamg#1103)
- Requires leapp-framework 5.0 (oamg#1061, oamg#1116)
- Use new leapp CLI API which provides better report summary output (oamg#1061, oamg#1116)
- [IPU 8 -> 9] Detect and report use of deprecated Xorg drivers (oamg#1078)
- [IPU 8 -> 9] Introduce IPU for systems with FIPS enabled (oamg#1053)

## Additional changes interesting for devels
- Deprecated `GrubInfo.orig_device_name` field in the `GrubInfo` model (replaced by `GrubInfo.orig_devices`) (oamg#1093)
- Deprecated `InstalledTargetKernelVersion` model (replaced by `InstalledTargetKernelInfo`) (oamg#1107)
- Deprecated `leapp.libraries.common.config.version.is_rhel_realtime` (check the type in msg `KernelInfo`, field `type`) (oamg#1107)
- Deprecated `leapp.libraries.common.grub.get_grub_device()` (replaced by `leapp.libraries.common.grub.get_grub_devices()`) (oamg#1093)
- Introduced new devel envar LEAPP_DEVEL_KEEP_DISK_IMGS=1 to skip the removal of the created disk images for OVL. That's sometimes handy for the debugging. (oamg#1097)
@pirat89 pirat89 mentioned this pull request Aug 23, 2023
pirat89 added a commit to pirat89/leapp that referenced this pull request Aug 23, 2023
Rezney pushed a commit that referenced this pull request Aug 23, 2023
## Packaging
- Requires leapp-framework 5.0

## Upgrade handling
### Fixes
- Add el8toel9 actor to handle directory -> symlink with ruby IRB. (#1076)
- Do not try to update GRUB core on IBM Z systems (#1117)
- Fix failing upgrades with devtmpfs file systems specified in FSTAB (#1090)
- Fix the calculation of the required free space on each partitions/volume for the upgrade transactions (#1097)
- Fix the generation of the report about hybrid images (#1064)
- Handle correctly the installed certificates to allow upgrades with custom repositories using HTTPs with enabled SSL verification (#1106)
- Minor improvements and fixes of various reports (#1066, #1067, #1085)
- Update error messages about leapp data files to inform user how to obtain valid data files (#1121)
- Update links in various reports (#1062, #1086)
- Update the repomap data to cover changed repoids in RHUI Azure (#1087)
- [IPU 7 -> 8] Fix false positive report about invalid symlinks on RHEL 7 (#1052)
- [IPU 8 -> 9] Inhibit the upgrade when unsupported x86-64 microarchitecture is detected (#1059)

### Enhancements
- Include updated leapp data files in the RPM (#1046, #1092, #1119)
- Update the set of supported upgrade paths (#1077):
  - RHEL with SAP HANA 7.9 -> 8.6, 8.8 (default: 8.6)
  - RHEL with SAP HANA 8.8 -> 9.2
- Introduce new upgrade paths:
  - RHEL 7.9 -> 8.9 (default)
  - RHEL 8.9 -> 9.3
- Correctly update grub2 when /boot resides on multiple devices aggregated in RAID (#1093, #1115)
- Enable upgrades for machines using RHUI on AlibabaCloud (#1088)
- Introduce possibility to add kernel drivers to initramfs (#1081)
- Redesign handling of information about kernel (booted and target) in preparation for new changes in RHEL 9 (#1107)
- Redesign source system overlay to use disk images backed by sparse files to optimize disk space consumption (#1097, #1103)
- Requires leapp-framework 5.0 (#1061, #1116)
- Use new leapp CLI API which provides better report summary output (#1061, #1116)
- [IPU 8 -> 9] Detect and report use of deprecated Xorg drivers (#1078)
- [IPU 8 -> 9] Introduce IPU for systems with FIPS enabled (#1053)

## Additional changes interesting for devels
- Deprecated `GrubInfo.orig_device_name` field in the `GrubInfo` model (replaced by `GrubInfo.orig_devices`) (#1093)
- Deprecated `InstalledTargetKernelVersion` model (replaced by `InstalledTargetKernelInfo`) (#1107)
- Deprecated `leapp.libraries.common.config.version.is_rhel_realtime` (check the type in msg `KernelInfo`, field `type`) (#1107)
- Deprecated `leapp.libraries.common.grub.get_grub_device()` (replaced by `leapp.libraries.common.grub.get_grub_devices()`) (#1093)
- Introduced new devel envar LEAPP_DEVEL_KEEP_DISK_IMGS=1 to skip the removal of the created disk images for OVL. That's sometimes handy for the debugging. (#1097)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-checked The merger/reviewer checked the changelog draft document and updated it when relevant deprecation Any change in the set of deprecation functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants