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

Make sure nobody is trying to make NetworkManager use dhclient in RHEL 10 #1268

Merged
merged 3 commits into from
Aug 6, 2024

Conversation

lkundrak
Copy link
Contributor

dhclient is going away. NetworkManager uses a different DHCP client library even if there's a configuration that would previously make it use dhclient. Make sure the users know what are they doing on upgrade to RHEL 10.

lkundrak added 2 commits July 21, 2024 00:36
We'd like to read and eventually check NetworkManager configuration on
upgrade from RHEL 9 to RHEL 10.
We'd like to read and eventually check NetworkManager configuration on
upgrade from RHEL 9 to RHEL 10.
Copy link

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.
However, here are additional useful commands for packit:

  • /packit test to re-run manually the default tests
  • /packit retest-failed to re-run failed tests manually
  • /packit test oamg/leapp#42 to run tests with leapp builds for the leapp PR#42 (default is latest upstream - master - build)

Note that first time contributors cannot run tests automatically - they need to be started by a reviewer.

It is possible to schedule specific on-demand tests as well. Currently 2 test sets are supported, beaker-minimal and kernel-rt, both can be used to be run on all upgrade paths or just a couple of specific ones.
To launch on-demand tests with packit:

  • /packit test --labels kernel-rt to schedule kernel-rt tests set for all upgrade paths
  • /packit test --labels beaker-minimal-8.10to9.4,kernel-rt-8.10to9.4 to schedule kernel-rt and beaker-minimal test sets for 8.10->9.4 upgrade path

See other labels for particular jobs defined in the .packit.yaml file.

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.

@MichalHe
Copy link
Member

MichalHe commented Jul 24, 2024

Hi! Thank you for your patch. Although it is obvious what the code does, but would you mind adding a unit test? I am not a fan of testing a code that is obvious, however, since it is a piece that can inhibit the entire upgrade, it should be covered.

@MichalHe
Copy link
Member

/packit build

@lkundrak
Copy link
Contributor Author

Hi! Thank you for your patch. Although it is obvious what the code does, but would you mind adding a unit test? I am not a fan of testing a code that is obvious, however, since it is a piece that can inhibit the entire upgrade, it should be covered.

Absolutely. I think I need a little help tho, I'm not sure what to test here. Should I just synthesize NetworkManagerConfig somehow and test that the right inhibitor report gets emitted?

Is there an example that does something similar I could steal from? (no shame!)

@lkundrak lkundrak force-pushed the lr/dhcp-clienticide branch from b3e96dd to 333f05c Compare July 30, 2024 10:25
RHEL 10 is going to no longer support configuring NetworkManager
to use the dhclient DHCP client (in fact, dhclient will not
be present at all).

Let's add an actor to deal with this sort of configuration.
In particulare, make sure the users review their configuration,
on chance they configured NM this way intentionally and they
actually rely on some dhclient configuration or behavior.

Jira: https://issues.redhat.com/browse/RHEL-46975
@lkundrak lkundrak force-pushed the lr/dhcp-clienticide branch from 333f05c to 82aa02b Compare July 30, 2024 10:29
@lkundrak
Copy link
Contributor Author

Hi! Thank you for your patch. Although it is obvious what the code does, but would you mind adding a unit test? I am not a fan of testing a code that is obvious, however, since it is a piece that can inhibit the entire upgrade, it should be covered.

Absolutely. I think I need a little help tho, I'm not sure what to test here. Should I just synthesize NetworkManagerConfig somehow and test that the right inhibitor report gets emitted?

Is there an example that does something similar I could steal from? (no shame!)

Managed to do it all without any help from an adult and even the linter is happy woo hoo

@pirat89
Copy link
Member

pirat89 commented Aug 1, 2024

/packit copr-build

Copy link
Member

@MichalHe MichalHe left a comment

Choose a reason for hiding this comment

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

Nice job! Tests are passing, and I gave this patch a go manually:

  • having dhcp=dhclient in the [main] section of the NetworkManager config inhibits the upgrade
  • not having dhcp=dhclient does not inhibit the upgrade

I will keep this unmerged until tomorrow to get a confirmation that this PR is clear from QE perspective.

Thank you for your wonderful contribution 🙇‍♂️

@MichalHe MichalHe merged commit 95ce086 into oamg:master Aug 6, 2024
20 checks passed
@MichalHe MichalHe added the changelog-checked The merger/reviewer checked the changelog draft document and updated it when relevant label Aug 6, 2024
@pirat89 pirat89 added the report Any reports have been added / removed / changed in the PR label Aug 6, 2024
@pirat89 pirat89 added this to the 8.10/9.5 milestone Aug 6, 2024
pirat89 added a commit to pirat89/leapp-repository that referenced this pull request Aug 16, 2024
## Packaging
- .. names of packages, dependencies, changes in provided capabilities....

## Upgrade handling
### Fixes
- Add missing RHUI GCP config info for RHEL for SAP (oamg#1253)
- Fix creation of the post upgrade report about changes in states of systemd services (oamg#1210)
- Fix detection of valid sshd config with internal-sftp subsystem in Leapp (oamg#1212)
- Fix evaluation of PES data (oamg#1194)
- Fix failing "update-ca-trust" command caused by missing util-linux package (oamg#1169)
- Fix handling of versions in RHUI configuration for ELS and SAP upgrades (oamg#1240)
- Fix the parsing of the lscpu output (oamg#1184, oamg#1208)
- Fix the upgrade of systems using RHUI on AWS after changes in RHUI client package (oamg#1178)
- Fix upgrade on aarch64 via RHUI on AWS (oamg#1240)
- Handle a false positive GPG check error when TargetUserSpaceInfo is missing  (oamg#1269)
- Target by default always "GA" channel repositories unless a different channel is specified for the leapp execution (oamg#1205)
- Update the default kernel cmdline (oamg#1193, oamg#1216)
- Update the device driver deprecation data, fixing invalid fields for some AMD CPUs (oamg#1211)
- Wait for the storage initialization when /usr is on separate file system - covering SAN (oamg#1218, oamg#1219)
- [IPU 7 -> 8] Drop enforced tomcat removal for satellite when upgrading to RHEL 8.10 (oamg#1243)
- [IPU 7 -> 8] Fix detection of bootable device on RAID (oamg#1260)
- [IPU 8 -> 9] Inhibit the upgrade to RHEL 9.5 on ARM architecture due to incompatibility of the RHEL 8 bootloader and RHEL 9.5 kernel (oamg#1270)

### Enhancements
- [IPU 8 -> 9] Introduce upgrade path 8.10 -> 9.5 (oamg#1245, oamg#1246)
- Apply solutions for leftover rpms for all major upgrade paths - including experimental actors (oamg#1199)
- Do not terminate the upgrade dracut module execution anymore if /sysroot/root/tmp_leapp_py3/.leapp_upgrade_failed exists (oamg#1197)
- Improve set_systemd_services_states logging (oamg#1213)
- Include leapp command execution and defined leapp envars inside leapp.db - (oamg#1152)
- Introduce experimental upgrades in 'live' mode for the testing (oamg#1248)
- Load obsoleted GPG keys from gpg-signatures.json file instead of hardcoding them (oamg#1241)
- Several minor improvements in messages printed in console output (oamg#1173, oamg#1214, oamg#1274)
- Several minor improvements in report and error messages (oamg#1207, oamg#1217, oamg#1234, oamg#1235, oamg#1242)
- Sort lists in dnf-plugin-data for easier overview (oamg#1231)
- [IPU 7 -> 8] Allow upgrade of content from ELS repositories (oamg#1198)
- [IPU 7 -> 8] Inhibit the upgrade when Legacy GRUB is detected (oamg#1206)
- [IPU 7 -> 8] Inhibit the upgrade when embedding area is small to prevent failed bootloader update (oamg#1195)
- [IPU 8 -> 9] Enable EL 8 > 9 upgrades on Alibaba cloud (oamg#1249)
- [IPU 8 -> 9] Enable EL 8 to 9 upgrade of Satellite/Foreman server (oamg#1181)
- [IPU 9 -> 10] Introduced number of changes to enable experimental IPU 9 -> 10 (oamg#1169)
- [IPU 9 -> 10] Prevent upgrading if NetworkManager is configured with dhcp=dhclient (oamg#1268)
- [IPU 9 -> 10] Update URLs in reports to reflect the next planned major upgrade path (oamg#1169, oamg#1273)

## Additional changes interesting for devels
- drop unused `packager` field from gpg-signatures.json (oamg#1233)
- [IPU 9 -> 10] make system_upgrade/common leapp repo Python 3.12 compatible
- [IPU 9 -> 10] introduced system_upgrade/el9toel10 leapp repo
@pirat89 pirat89 mentioned this pull request Aug 16, 2024
pirat89 added a commit that referenced this pull request Aug 16, 2024
## Packaging
- Start building for EL 9 in the upstream repository on COPR (#1169)

## Upgrade handling
### Fixes
- Add missing RHUI GCP config info for RHEL for SAP (#1253)
- Fix creation of the post upgrade report about changes in states of systemd services (#1210)
- Fix detection of valid sshd config with internal-sftp subsystem in Leapp (#1212)
- Fix evaluation of PES data (#1194)
- Fix failing "update-ca-trust" command caused by missing util-linux package (#1169)
- Fix handling of versions in RHUI configuration for ELS and SAP upgrades (#1240)
- Fix the parsing of the lscpu output (#1184, #1208)
- Fix the upgrade of systems using RHUI on AWS after changes in RHUI client package (#1178)
- Fix upgrade on aarch64 via RHUI on AWS (#1240)
- Handle a false positive GPG check error when TargetUserSpaceInfo is missing  (#1269)
- Target by default always "GA" channel repositories unless a different channel is specified for the leapp execution (#1205)
- Update the default kernel cmdline (#1193, #1216)
- Update the device driver deprecation data, fixing invalid fields for some AMD CPUs (#1211)
- Wait for the storage initialization when /usr is on separate file system - covering SAN (#1218, #1219)
- [IPU 7 -> 8] Drop enforced tomcat removal for satellite when upgrading to RHEL 8.10 (#1243)
- [IPU 7 -> 8] Fix detection of bootable device on RAID (#1260)
- [IPU 8 -> 9] Inhibit the upgrade to RHEL 9.5 on ARM architecture due to incompatibility of the RHEL 8 bootloader and RHEL 9.5 kernel (#1270)

### Enhancements
- [IPU 8 -> 9] Introduce upgrade path 8.10 -> 9.5 (#1245, #1246)
- Update leapp data files (#1280)
- Apply solutions for leftover rpms for all major upgrade paths - including experimental actors (#1199)
- Do not terminate the upgrade dracut module execution anymore if /sysroot/root/tmp_leapp_py3/.leapp_upgrade_failed exists (#1197)
- Improve set_systemd_services_states logging (#1213)
- Include leapp command execution and defined leapp envars inside leapp.db - (#1152)
- Introduce experimental upgrades in 'live' mode for the testing (#1248)
- Load obsoleted GPG keys from gpg-signatures.json file instead of hardcoding them (#1241)
- Several minor improvements in messages printed in console output (#1173, #1214, #1274)
- Several minor improvements in report and error messages (#1207, #1217, #1234, #1235, #1242)
- Sort lists in dnf-plugin-data for easier overview (#1231)
- [IPU 7 -> 8] Allow upgrade of content from ELS repositories (#1198)
- [IPU 7 -> 8] Inhibit the upgrade when Legacy GRUB is detected (#1206)
- [IPU 7 -> 8] Inhibit the upgrade when embedding area is small to prevent failed bootloader update (#1195)
- [IPU 8 -> 9] Enable EL 8 > 9 upgrades on Alibaba cloud (#1249)
- [IPU 8 -> 9] Enable EL 8 to 9 upgrade of Satellite/Foreman server (#1181)
- [IPU 9 -> 10] Introduced number of changes to enable IPU 9 -> 10 for testing (#1169)
- [IPU 9 -> 10] Prevent upgrading if NetworkManager is configured with dhcp=dhclient (#1268)
- [IPU 9 -> 10] Update URLs in reports to reflect the next planned major upgrade path (#1169, #1273)

## Additional changes interesting for devels
- drop unused `packager` field from gpg-signatures.json (#1233)
- [IPU 9 -> 10] make system_upgrade/common leapp repo Python 3.12 compatible
- [IPU 9 -> 10] introduced system_upgrade/el9toel10 leapp repo
yuravk pushed a commit to yuravk/leapp-repository that referenced this pull request Aug 20, 2024
## Packaging
- Start building for EL 9 in the upstream repository on COPR (oamg#1169)

## Upgrade handling
### Fixes
- Add missing RHUI GCP config info for RHEL for SAP (oamg#1253)
- Fix creation of the post upgrade report about changes in states of systemd services (oamg#1210)
- Fix detection of valid sshd config with internal-sftp subsystem in Leapp (oamg#1212)
- Fix evaluation of PES data (oamg#1194)
- Fix failing "update-ca-trust" command caused by missing util-linux package (oamg#1169)
- Fix handling of versions in RHUI configuration for ELS and SAP upgrades (oamg#1240)
- Fix the parsing of the lscpu output (oamg#1184, oamg#1208)
- Fix the upgrade of systems using RHUI on AWS after changes in RHUI client package (oamg#1178)
- Fix upgrade on aarch64 via RHUI on AWS (oamg#1240)
- Handle a false positive GPG check error when TargetUserSpaceInfo is missing  (oamg#1269)
- Target by default always "GA" channel repositories unless a different channel is specified for the leapp execution (oamg#1205)
- Update the default kernel cmdline (oamg#1193, oamg#1216)
- Update the device driver deprecation data, fixing invalid fields for some AMD CPUs (oamg#1211)
- Wait for the storage initialization when /usr is on separate file system - covering SAN (oamg#1218, oamg#1219)
- [IPU 7 -> 8] Drop enforced tomcat removal for satellite when upgrading to RHEL 8.10 (oamg#1243)
- [IPU 7 -> 8] Fix detection of bootable device on RAID (oamg#1260)
- [IPU 8 -> 9] Inhibit the upgrade to RHEL 9.5 on ARM architecture due to incompatibility of the RHEL 8 bootloader and RHEL 9.5 kernel (oamg#1270)

### Enhancements
- [IPU 8 -> 9] Introduce upgrade path 8.10 -> 9.5 (oamg#1245, oamg#1246)
- Update leapp data files (oamg#1280)
- Apply solutions for leftover rpms for all major upgrade paths - including experimental actors (oamg#1199)
- Do not terminate the upgrade dracut module execution anymore if /sysroot/root/tmp_leapp_py3/.leapp_upgrade_failed exists (oamg#1197)
- Improve set_systemd_services_states logging (oamg#1213)
- Include leapp command execution and defined leapp envars inside leapp.db - (oamg#1152)
- Introduce experimental upgrades in 'live' mode for the testing (oamg#1248)
- Load obsoleted GPG keys from gpg-signatures.json file instead of hardcoding them (oamg#1241)
- Several minor improvements in messages printed in console output (oamg#1173, oamg#1214, oamg#1274)
- Several minor improvements in report and error messages (oamg#1207, oamg#1217, oamg#1234, oamg#1235, oamg#1242)
- Sort lists in dnf-plugin-data for easier overview (oamg#1231)
- [IPU 7 -> 8] Allow upgrade of content from ELS repositories (oamg#1198)
- [IPU 7 -> 8] Inhibit the upgrade when Legacy GRUB is detected (oamg#1206)
- [IPU 7 -> 8] Inhibit the upgrade when embedding area is small to prevent failed bootloader update (oamg#1195)
- [IPU 8 -> 9] Enable EL 8 > 9 upgrades on Alibaba cloud (oamg#1249)
- [IPU 8 -> 9] Enable EL 8 to 9 upgrade of Satellite/Foreman server (oamg#1181)
- [IPU 9 -> 10] Introduced number of changes to enable IPU 9 -> 10 for testing (oamg#1169)
- [IPU 9 -> 10] Prevent upgrading if NetworkManager is configured with dhcp=dhclient (oamg#1268)
- [IPU 9 -> 10] Update URLs in reports to reflect the next planned major upgrade path (oamg#1169, oamg#1273)

## Additional changes interesting for devels
- drop unused `packager` field from gpg-signatures.json (oamg#1233)
- [IPU 9 -> 10] make system_upgrade/common leapp repo Python 3.12 compatible
- [IPU 9 -> 10] introduced system_upgrade/el9toel10 leapp repo

(cherry picked from commit 03c257b)
yuravk pushed a commit to yuravk/leapp-repository that referenced this pull request Aug 20, 2024
## Packaging
- Start building for EL 9 in the upstream repository on COPR (oamg#1169)

## Upgrade handling
### Fixes
- Add missing RHUI GCP config info for RHEL for SAP (oamg#1253)
- Fix creation of the post upgrade report about changes in states of systemd services (oamg#1210)
- Fix detection of valid sshd config with internal-sftp subsystem in Leapp (oamg#1212)
- Fix evaluation of PES data (oamg#1194)
- Fix failing "update-ca-trust" command caused by missing util-linux package (oamg#1169)
- Fix handling of versions in RHUI configuration for ELS and SAP upgrades (oamg#1240)
- Fix the parsing of the lscpu output (oamg#1184, oamg#1208)
- Fix the upgrade of systems using RHUI on AWS after changes in RHUI client package (oamg#1178)
- Fix upgrade on aarch64 via RHUI on AWS (oamg#1240)
- Handle a false positive GPG check error when TargetUserSpaceInfo is missing  (oamg#1269)
- Target by default always "GA" channel repositories unless a different channel is specified for the leapp execution (oamg#1205)
- Update the default kernel cmdline (oamg#1193, oamg#1216)
- Update the device driver deprecation data, fixing invalid fields for some AMD CPUs (oamg#1211)
- Wait for the storage initialization when /usr is on separate file system - covering SAN (oamg#1218, oamg#1219)
- [IPU 7 -> 8] Drop enforced tomcat removal for satellite when upgrading to RHEL 8.10 (oamg#1243)
- [IPU 7 -> 8] Fix detection of bootable device on RAID (oamg#1260)
- [IPU 8 -> 9] Inhibit the upgrade to RHEL 9.5 on ARM architecture due to incompatibility of the RHEL 8 bootloader and RHEL 9.5 kernel (oamg#1270)

### Enhancements
- [IPU 8 -> 9] Introduce upgrade path 8.10 -> 9.5 (oamg#1245, oamg#1246)
- Update leapp data files (oamg#1280)
- Apply solutions for leftover rpms for all major upgrade paths - including experimental actors (oamg#1199)
- Do not terminate the upgrade dracut module execution anymore if /sysroot/root/tmp_leapp_py3/.leapp_upgrade_failed exists (oamg#1197)
- Improve set_systemd_services_states logging (oamg#1213)
- Include leapp command execution and defined leapp envars inside leapp.db - (oamg#1152)
- Introduce experimental upgrades in 'live' mode for the testing (oamg#1248)
- Load obsoleted GPG keys from gpg-signatures.json file instead of hardcoding them (oamg#1241)
- Several minor improvements in messages printed in console output (oamg#1173, oamg#1214, oamg#1274)
- Several minor improvements in report and error messages (oamg#1207, oamg#1217, oamg#1234, oamg#1235, oamg#1242)
- Sort lists in dnf-plugin-data for easier overview (oamg#1231)
- [IPU 7 -> 8] Allow upgrade of content from ELS repositories (oamg#1198)
- [IPU 7 -> 8] Inhibit the upgrade when Legacy GRUB is detected (oamg#1206)
- [IPU 7 -> 8] Inhibit the upgrade when embedding area is small to prevent failed bootloader update (oamg#1195)
- [IPU 8 -> 9] Enable EL 8 > 9 upgrades on Alibaba cloud (oamg#1249)
- [IPU 8 -> 9] Enable EL 8 to 9 upgrade of Satellite/Foreman server (oamg#1181)
- [IPU 9 -> 10] Introduced number of changes to enable IPU 9 -> 10 for testing (oamg#1169)
- [IPU 9 -> 10] Prevent upgrading if NetworkManager is configured with dhcp=dhclient (oamg#1268)
- [IPU 9 -> 10] Update URLs in reports to reflect the next planned major upgrade path (oamg#1169, oamg#1273)

## Additional changes interesting for devels
- drop unused `packager` field from gpg-signatures.json (oamg#1233)
- [IPU 9 -> 10] make system_upgrade/common leapp repo Python 3.12 compatible
- [IPU 9 -> 10] introduced system_upgrade/el9toel10 leapp repo

(cherry picked from commit 03c257b)
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 report Any reports have been added / removed / changed in the PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants