Bug 1983033

Summary: Running playbook-nics.yaml should not require a reboot
Product: Red Hat OpenStack Reporter: Jesse Pretorius <jpretori>
Component: documentationAssignee: Vlada Grosu <vgrosu>
Status: CLOSED CURRENTRELEASE QA Contact: Jesse Pretorius <jpretori>
Severity: high Docs Contact:
Priority: medium    
Version: 16.1 (Train)Keywords: Triaged
Target Milestone: z6   
Target Release: 16.1 (Train on RHEL 8.2)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-07-27 13:16:19 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jesse Pretorius 2021-07-16 09:55:39 UTC
In https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html-single/framework_for_upgrades_13_to_16.1/index#using-predictable-nic-names-preparing-undercloud there is a playbook to rename the network interfaces to use predictable names. This only implements the changes to the configuration files and therefore requires a reboot in order to activate it.

We could, and perhaps should, also rename the running interface at the same time so that we can avoid the reboot.

As seen in https://unix.stackexchange.com/a/219277 this is possible by using ip link.

<snip>
/sbin/ip link set eth1 down
/sbin/ip link set eth1 name eno1
/sbin/ip link set eno1 up
<snip>

The reboot adds a considerable amount of time to the upgrade process, so it really needs to be avoided.

Comment 1 Jesse Pretorius 2021-07-21 17:43:05 UTC
Various approaches were attempted in https://review.opendev.org/801085 which did not work. Given that this requires restarting the network stack the risk of data plane problems between renaming the network interfaces and eventually running the leapp is something that we thought we'd rather not do.

Instead, we'll opt to remove the leapp actor that blocks the upgrade. More to follow in a subsequent update once I have the details of that worked out.

Comment 2 Jesse Pretorius 2021-07-22 11:18:02 UTC
--- begin change 1 ---
In https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html-single/framework_for_upgrades_13_to_16.1/index#using-predictable-nic-names-preparing-undercloud

Remove: Reboot the undercloud node using the standard reboot procedures. For more information, see "Rebooting nodes".

In https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html-single/framework_for_upgrades_13_to_16.1/index#performing-a-leapp-upgrade-on-the-undercloud

Add:

Remove the persistent network names actor from the leapp process so that leapp will skip that check and proceed. This can be done safely due to completing the rename already in "4.3. Using predictable NIC names for the undercloud node". This step is key to avoiding a reboot before proceeding with the leapp process. NB: If the network interface renaming has not been completed, then the interface names may change after the upgrade to RHEL8.x is complete.

$ sudo rm -rf /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/persistentnetnamesdisable/actor.py

--- end change 1 ---

--- begin change 2 ---

In https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html-single/framework_for_upgrades_13_to_16.1/index#using-predictable-nic-names-overcloud-leapp

Remove: Reboot overcloud nodes using the standard reboot procedures. For more information, see "Rebooting nodes".

In https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html-single/framework_for_upgrades_13_to_16.1/index#creating-an-upgrades-environment-file-overcloud-leapp

Add another line to LeappInitCommand: sudo rm -rf /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/persistentnetnamesdisable/actor.py

--- end change 2 ---