Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2135615

Summary: [OSP17.0] Node provisioning broken with "overcloud-hardened-uefi-full" image
Product: Red Hat OpenStack Reporter: Ravi Singh <ravsingh>
Component: rhosp-director-imagesAssignee: OSP Team <rhos-maint>
Status: CLOSED DUPLICATE QA Contact: David Rosenfeld <drosenfe>
Severity: high Docs Contact:
Priority: high    
Version: 17.0 (Wallaby)CC: cjeanner, kthakre, sbaker
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2138665 (view as bug list) Environment:
Last Closed: 2022-10-30 21:45:46 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:
Attachments:
Description Flags
Console error none

Description Ravi Singh 2022-10-18 05:43:18 UTC
Created attachment 1918714 [details]
Console error

Description of problem:

Node provisioning with "overcloud-hardened-uefi-full" is broken & on console, observed error as "lvmid not found" & node went into grub rescue mode.
Attaching snip from the console.

Command ran:

+++
openstack overcloud node provision --templates /usr/share/openstack-tripleo-heat-templates --stack overcloud  --network-config  --output /home/stack/templates/overcloud-node-deployed.yaml  /home/stack/templates/overcloud-baremetal-deploy.yaml
+++

Version-Release number of selected component (if applicable):

17.0
How reproducible:

100%

Steps to Reproduce:
1. Deploy OSP17 undercloud
2. Introspect overcloud nodes & went fine.
3. Provision nodes failed with lvmid not found.

Actual results:
node provisioning failed.

Expected results:
Should pass

Additional info:

Comment 1 Steve Baker 2022-10-24 21:01:22 UTC
The default boot mode for 17.0 is now UEFI boot, so our first recommendation would be to switch the nodes from Legacy BIOS to UEFI boot so that boot modes are aligned.

We recommend boot mode UEFI where possible but there may be some environments which still need to use Legacy BIOS. If you must use Legacy BIOS you'll need to ensure that the "capabilities" attribute for each baremetal node includes  boot_mode:bios. This can be set with a command like:

  NODE=<NODE NAME OR ID> ; openstack baremetal node set --property capabilities="boot_mode:bios,$(openstack baremetal node show $NODE -f json -c properties | jq -r .properties.capabilities | sed "s/boot_mode:[^,]*,//g")" $NODE

This *might* allow overcloud-hardened-uefi-full to boot in Legacy BIOS but we may not be able to provide support if there are issues with this combination. This is why we still distribute the overcloud-full partition image, which you may need to use instead of overcloud-hardened-uefi-full.

Please let us know which approach was successful.

Comment 2 Ravi Singh 2022-10-30 12:43:19 UTC
(In reply to Steve Baker from comment #1)
> The default boot mode for 17.0 is now UEFI boot, so our first recommendation
> would be to switch the nodes from Legacy BIOS to UEFI boot so that boot
> modes are aligned.

Yes Steve you are right. I am using VM on KVM & seems it requires additional config to enable UEFI compared to bios which is default. 
overcloud-hardened image is working fine having boot_mode as UEFI.
> 
> We recommend boot mode UEFI where possible but there may be some
> environments which still need to use Legacy BIOS. If you must use Legacy
> BIOS you'll need to ensure that the "capabilities" attribute for each
> baremetal node includes  boot_mode:bios. This can be set with a command like:

> 
>   NODE=<NODE NAME OR ID> ; openstack baremetal node set --property
> capabilities="boot_mode:bios,$(openstack baremetal node show $NODE -f json
> -c properties | jq -r .properties.capabilities | sed
> "s/boot_mode:[^,]*,//g")" $NODE
> 
> This *might* allow overcloud-hardened-uefi-full to boot in Legacy BIOS but
> we may not be able to provide support if there are issues with this
> combination. 

hardened image+bios combination is not working where overcloud node was booted & stuck is rescue mode as mentioned in the description.
Anyways since there is no support for hardened+bios combination so will avoid to use.


This is why we still distribute the overcloud-full partition
> image, which you may need to use instead of overcloud-hardened-uefi-full.
> 
> Please let us know which approach was successful.

overcloud-full partition image is working fine with bios.

Comment 5 Steve Baker 2022-10-30 20:32:59 UTC
I just attempted to deploy overcloud-hardened-uefi-full+BIOS directly as a VM (no ironic, no agent deploy) and it booted fine, so I think the image artifact itself is capable of booting in Legacy BIOS mode. I think we're seeing some interaction with ironic-python-agent deploying a whole disk with Legacy BIOS. I'll get set up to try that.

Comment 7 Steve Baker 2022-10-30 21:45:46 UTC
I've just successfully deployed overcloud-hardened-uefi-full to a baremetal node in Legacy BIOS boot mode with ironic. Both the overcloud-hardened-uefi-full and ironic-python-agent images are the latest 17.0 images[1].

I'm going to close this on the basis that overcloud-hardened-uefi-full is capable of deploying with Legacy BIOS, and any specific environment where this fails can be directed to deploy either overcloud-hardened-uefi-full+UEFI or overcloud-full+BIOS.

Comment 9 Steve Baker 2022-11-02 00:22:17 UTC

*** This bug has been marked as a duplicate of bug 2138046 ***

Comment 10 Steve Baker 2022-11-02 00:23:09 UTC
Changing this to being a duplicate, bug #2138046 has lead to the root cause of overcloud-hardened-uefi-full+BIOS not working