Wrap pkg install with retries
* Use common install_pkgs function when installing packages.
Related-Prod: PRODX-3456
Change-Id: I79aaf05b5b648625b8ec2f71bee82c567c006199
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index e064e28..37c90c0 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -168,6 +168,14 @@
return 0
}
+function install_pkgs {
+ local pkgs="$@"
+ function _retry_install {
+ apt update && DEBIAN_FRONTEND=noninteractive apt install -y $pkgs
+ }
+ retry 10 "Labeling node failed" _retry_install
+}
+
function setup_bind_mounts {
mkdir -p /var/lib/persistant-data
for component in nova glance cinder docker kubelet; do
@@ -219,14 +227,10 @@
pkg_list="$pkg_list linux-modules-extra-$(uname -r)"
fi
fi
- function install_retry {
- apt update
- export DEBIAN_FRONTEND=noninteractive; apt install -y $pkg_list
- # Since version 4 yq uses another syntax
- curl --retry 6 --retry-delay 5 -L ${BINARY_BASE_URL}/openstack/bin/utils/yq/yq-v3.3.2 -o /usr/bin/yq
- chmod +x /usr/bin/yq
- }
- retry 10 "Failed to install required packages" install_retry
+ install_pkgs $pkg_list
+ # Since version 4 yq uses another syntax
+ curl --retry 6 --retry-delay 5 -L ${BINARY_BASE_URL}/openstack/bin/utils/yq/yq-v3.3.2 -o /usr/bin/yq
+ chmod +x /usr/bin/yq
}
function enable_iscsi {
@@ -284,8 +288,7 @@
function install_retry {
curl --retry 6 --retry-delay 5 -fsSL "${DOCKER_URL}/gpg" | sudo apt-key add -
add-apt-repository "deb [arch=amd64] ${DOCKER_URL}/ ${OS_CODENAME} ${DOCKER_RELEASE}"
- apt update
- apt install -y ${DOCKER_PACKAGES}
+ install_pkgs ${DOCKER_PACKAGES}
}
retry 10 "Failed to install docker" install_retry
}
@@ -373,7 +376,7 @@
k0s token create --role=worker > /etc/k0s/worker_token.yaml
k0s token create --role=controller > /etc/k0s/controller_token.yaml
- apt install nginx -y
+ install_pkgs nginx
rm -f /etc/nginx/sites-enabled/default
ln -s /etc/k0s/ /var/www/k0s
cat << EOF > /etc/nginx/sites-enabled/k0s
@@ -632,7 +635,7 @@
local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
local match_ip_line
- DEBIAN_FRONTEND=noninteractive apt -y install bridge-utils
+ install_pkgs bridge-utils
cat << EOF > /etc/systemd/network/10-veth-phy-br.netdev
[NetDev]
@@ -946,8 +949,7 @@
curl -s https://deb.frrouting.org/frr/keys.asc | sudo apt-key add -
FRRVER="frr-stable"
echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | sudo tee -a /etc/apt/sources.list.d/frr.list
- apt update
- apt install -y frr frr-pythontools
+ install_pkgs frr frr-pythontools
}
retry 3 "Can't install frr packages" _install_frr_packages