Copy efi.img to /var/pxeboot on subcloud for multinode support

To create a duplex subcloud with multiple nodes with different
personalites, pxeboot must be supported by controller-0 of the
subcloud.

Here, pxeboot is enabled on controller-0 by copying efi.img
from the mounted miniboot iso image to /var/pxeboot. This will
allow the installation of controller-1 and the computes of the
subcloud via pxeboot.

Test Plan:
PASSED: Verify that all nodes in the subcloud install, come online
      and are unlocked, enabled and available by the end of the
      installation process.

PASSED: Verify that multinode install completes successfully with
      prestaged ostree_repo.

Depends-On: https://review.opendev.org/c/starlingx/metal/+/862619/
Story: 2010118
Task: 46754

Signed-off-by: Shrikumar Sharma <shrikumar.sharma@windriver.com>
Change-Id: I0a6789b5a86f89da5e86581ab7b3eed950361ce7
This commit is contained in:
Shrikumar Sharma 2022-11-16 04:24:08 +00:00
parent 1132443626
commit d19af3331d

View File

@ -2740,6 +2740,7 @@ if [ "${controller}" = true ] ; then
feed="${IMAGE_ROOTFS}/var/www/pages/feed/rel-${sw_release}"
repo="${feed}/ostree_repo"
pxedir="${IMAGE_ROOTFS}/var/pxeboot"
if [ ${OSTREE_REPO_FETCHED} -eq 0 ] ; then
if is_usb_install -eq 0 ; then
@ -2766,6 +2767,34 @@ if [ "${controller}" = true ] ; then
# This fetch is only needed once because the repo is stored in /var
set_variable "ostree_repo_fetched"
# copy efi.img to /var/pxeboot to enable duplex/multinode subclouds
cp -a /instboot/efi.img ${pxedir}
rc=$?
if [ rc -ne 0 ]; then
elog "Failed to copy efi.img to ${pxedir}"
fi
# Temporary WorkAround: The current UEFI pxeboot loader does not call the
# default provisioning grub menu in /var/pxeboot/pxelinux.cfg/grub.cfg.
#
# While the above issue is investigated, to support DX and system node
# install for UEFI servers this code moves the lat grub.cfg aside and
# creates a link to the default provisioning mac based grub menu.
if [ ! -e ${pxedir}/EFI/BOOT ]; then
mkdir -p ${pxedir}/EFI/BOOT
fi
pushd ${pxedir}/EFI/BOOT > /dev/null
if [ ! -L grub.cfg ] ; then
if [ -e grub.cfg ] ; then
mv grub.cfg grub.cfg.lat
fi
ln -s ../../pxelinux.cfg/grub.cfg
fi
popd > /dev/null
fi
fi