Bug 1974507

Summary: [OSP 16.1] THT KernelArgs not getting set on UEFI systems
Product: Red Hat OpenStack Reporter: Matt Flusche <mflusche>
Component: tripleo-ansibleAssignee: Steve Baker <sbaker>
Status: CLOSED ERRATA QA Contact: Paras Babbar <pbabbar>
Severity: high Docs Contact:
Priority: high    
Version: 16.1 (Train)CC: aasmith, apavlovs, asalvati, atragler, bdobreli, broose, dmacpher, dmaley, dsedgmen, fgadkano, hakhande, kthakre, marjones, matteo.panella, pbabbar, pgrist, pweeks, sbaker, shtiwari, skramaja, spower, sputhenp, uemit.seren
Target Milestone: asyncKeywords: Triaged
Target Release: 16.1 (Train on RHEL 8.2)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tripleo-ansible-0.5.1-1.20210323173507.el8ost Doc Type: Bug Fix
Doc Text:
The grub2 tooling wrote Kernel argument changes to /boot/grub2/grubenv. This file was not available to UEFI boot systems. This issue caused Kernel argument changes to not persist across reboots on UEFI boot nodes. This fix changes both the /boot/grub2/grubenv file and the /boot/efi/EFI/redhat/grubenv files when you make Kernel argument changes. As a result, the director now applies persistent Kernel argument changes for UEFI boot nodes.
Story Points: ---
Clone Of:
: 1987092 (view as bug list) Environment:
Last Closed: 2021-08-23 13:16:11 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 Matt Flusche 2021-06-21 21:21:26 UTC
Description of problem:
On UEFI deployed systems, KernelArgs parameters are not applied on overcloud nodes during deployment.  This seems to impact newer version of 16.1 (16.1.5 and 16.1.6 perhaps).

We traced this down to an issue where grub2-mkconfig is not updating /boot/efi/EFI/redhat/grubenv and created the following bz: https://bugzilla.redhat.com/show_bug.cgi?id=1973289

There is discussion here that grubby should be used rather than grub2-mkconfig so I wanted to loop in deployment framework for input.


Version-Release number of selected component (if applicable):
OSP 16.1
tripleo-ansible-0.5.1-1.20201114030848.2.el8ost.noarch


rpm -qf /usr/share/ansible/roles/tripleo-kernel/tasks/kernelargs.yml
tripleo-ansible-0.5.1-1.20201114030848.2.el8ost.noarch


From /usr/share/ansible/roles/tripleo-kernel/tasks/kernelargs.yml"

    - name: Check grub config paths
      stat:
        path: "{{ item }}"
      register: grub_stat
      loop:
        - /boot/grub2/grub.cfg
        - /boot/efi/EFI/redhat/grub.cfg
        - /boot/efi/EFI/centos/grub.cfg
        - /boot/efi/EFI/fedora/grub.cfg
    - name: Generate grub config
      command: "grub2-mkconfig -o {{ item.stat.path }}"
      when: item.stat.exists|bool
      loop: "{{ grub_stat.results }}"



How reproducible:
100% in this UEFI deployment.

Steps to Reproduce:
1. deploy overcloud on UEFI systems with KernelArgs

Comment 3 Steve Baker 2021-06-22 20:01:31 UTC
I'll keep an eye on bug #1973289, but will also look into a followup ansible task which copies grubenv.

Longer term we can look into switching to grubby. This is something upstream diskimage-builder needs to consider as well.

Comment 6 Steve Baker 2021-07-28 20:40:14 UTC
The fix has landed in master upstream, I'll start the backports now.

Comment 38 errata-xmlrpc 2021-08-23 13:16:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Red Hat OpenStack Platform 16.1.6 async bug fix advisory), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:3245