Merge "Enable Multinode Subcloud in Distributed Cloud"

This commit is contained in:
Zuul 2022-11-09 22:35:13 +00:00 committed by Gerrit Code Review
commit 81142e5b00

View File

@ -904,6 +904,7 @@ HOOK_LABEL="ks-early"
export debug=0
export prefix=""
export insturl_orig=""
# Assume there is no Platform Backup (persistent) Partition
export BACKUP_PART_FOUND=0
@ -2022,6 +2023,8 @@ else
# If ostree_repo is found at the mounted backup directory,
# then set the ostree url to its location.
insturl_orig="${insturl}"
if [ -e ${backup_mount}/ostree_repo ]; then
insturl="file:///${backup_mount}/ostree_repo"
ilog "Setting insturl to ${insturl} to use prestaged ostree_repo"
@ -2692,7 +2695,16 @@ if [ "${controller}" = true ] ; then
sw_release="xxxPLATFORM_RELEASExxx" # updated by the build
feed="${IMAGE_ROOTFS}/var/www/pages/feed/rel-${sw_release}"
pxeboot="${IMAGE_ROOTFS}/var/pxeboot"
repo="${feed}/ostree_repo"
pxedir="${IMAGE_ROOTFS}/var/www/pages/iso/${sw_release}"
mkdir -p "${repo}"
mkdir -p "${feed}"
mkdir -p "${feed}/pxeboot"
mkdir -p "${feed}/kickstart"
mkdir -p "${pxeboot}/rel-${sw_release}"
mkdir -p "${pxedir}"
if [ ${OSTREE_REPO_FETCHED} -eq 0 ] ; then
if is_usb_install -eq 0 ; then
@ -2719,6 +2731,60 @@ if [ "${controller}" = true ] ; then
# This fetch is only needed once because the repo is stored in /var
set_variable "ostree_repo_fetched"
# fetch pxeboot directories
pxeurl=$(echo ${insturl_orig} | sed -e s/ostree_repo//)
# Check for noverifyssl
if grep -q noverifyssl /proc/cmdline; then
NOVERIFYSSL_WGET_OPT="--no-check-certificate"
else
NOVERIFYSSL_WGET_OPT=""
fi
# change to the pxedir. Store pxe artifacts here.
pushd ${pxedir} > /dev/null
#download the iso directory from the System Controller to here.
wget ${NOVERIFYSSL_WGET_OPT} -nH -np -r ${pxeurl}/pxeboot/ --cut-dirs=2 -o /${LAT_DIR}/wget_pxe_files.tmp
[ $? -ne 0 ] && report_failure_with_msg "Failed to download iso/${sw_release}/pxeboot from system controller"
wget ${NOVERIFYSSL_WGET_OPT} -nH -np -r ${pxeurl}/kickstart/ --cut-dirs=2 -o /${LAT_DIR}/wget_pxe_files.tmp
[ $? -ne 0 ] && report_failure_with_msg "Failed to download iso/${sw_release}/kickstart from system controller"
wget ${NOVERIFYSSL_WGET_OPT} ${pxeurl}/efi.img -o /${LAT_DIR}/wget.tmp
[ $? -ne 0 ] && report_failure_with_msg "Failed to find ${pxeurl}/pxeboot/${f}"
# copy files to relevant locations in feed/rel-id/ and /var/pxeboot
cp -a pxeboot ${feed}
cp -a pxeboot/bzImage* ${feed}/pxeboot/
cp -a pxeboot/initrd* ${feed}/pxeboot/
cp -a efi.img ${feed}
cp -a kickstart ${feed}
cp -a efi.img ${pxeboot}
cp -a pxeboot/bzImage* ${pxeboot}/rel-${sw_release}/
cp -a pxeboot/initrd* ${pxeboot}/rel-${sw_release}/
cp -a pxeboot/EFI ${pxeboot}/
# go out of this directory
popd > /dev/null
# 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.
pushd ${pxeboot}/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