Support deploy noble as heat base image
Related-Prod: PRODX-3456
Change-Id: Ib1f43f5f3a569cf2687a2247954a3c24c757ac91
diff --git a/de/heat-templates/scripts/functions.sh b/de/heat-templates/scripts/functions.sh
index 5fc6c28..b106bd9 100644
--- a/de/heat-templates/scripts/functions.sh
+++ b/de/heat-templates/scripts/functions.sh
@@ -535,15 +535,24 @@
}
function configure_ntp {
- echo "" > /etc/ntp.conf
+ if [[ ${CODENAME} == "bionic" ]] || [[ ${CODENAME} == "focal" ]] || [[ ${CODENAME} == "jammy" ]]; then
+ local ntp_conf="/etc/ntp.conf"
+ local ntp_driftfile="/var/lib/ntp/ntp.drift"
+ local ntp_service_name="ntp"
+ else
+ local ntp_conf="/etc/ntpsec/ntp.conf"
+ local ntp_driftfile="/var/lib/ntpsec/ntp.drift"
+ local ntp_service_name="ntpsec"
+ fi
+ echo "" > ${ntp_conf}
for server in $NTP_SERVERS; do
-cat << EOF >> /etc/ntp.conf
+cat << EOF >> ${ntp_conf}
server ${server} iburst
EOF
done
- cat << EOF >> /etc/ntp.conf
+ cat << EOF >> ${ntp_conf}
# Set general access to this service
restrict -4 default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
@@ -558,12 +567,14 @@
interface listen ${DEFAULT_INTERFACE}
# Location of drift file
-driftfile /var/lib/ntp/ntp.drift
+driftfile ${ntp_driftfile}
EOF
- systemctl disable systemd-timesyncd
- systemctl enable ntp
- systemctl restart ntp
+ if systemctl --quiet is-enabled systemd-timesyncd ; then
+ systemctl disable systemd-timesyncd
+ fi
+ systemctl enable ${ntp_service_name}
+ systemctl restart ${ntp_service_name}
}
function wait_for_external_network {
@@ -674,6 +685,9 @@
local public_interface=${1:-${PUBLIC_INTERFACE}}
local cloud_netplan_cfg="/etc/netplan/50-cloud-init.yaml"
local match_ip_line
+ # Normalize YAML indentation for consistent structure
+ cp ${cloud_netplan_cfg} ${cloud_netplan_cfg}.bak
+ yq r -I 2 ${cloud_netplan_cfg}.bak > ${cloud_netplan_cfg}
install_pkgs bridge-utils
@@ -704,18 +718,18 @@
EOF
fi
- sed -i 's/.*ethernets:.*/&\n veth-phy: {}/' ${cloud_netplan_cfg}
- sed -i 's/.*ethernets:.*/&\n veth-br: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-phy: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-br: {}/' ${cloud_netplan_cfg}
if [[ -n ${IRONIC_BAREMETAL_INTERFACE} ]]; then
- sed -i 's/.*ethernets:.*/&\n veth-bm: {}/' ${cloud_netplan_cfg}
- sed -i 's/.*ethernets:.*/&\n veth-bm-br: {}/' ${cloud_netplan_cfg}
- sed -i 's/.*ethernets:.*/&\n veth-vbmc: {}/' ${cloud_netplan_cfg}
- sed -i 's/.*ethernets:.*/&\n veth-vbmc-br: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-bm: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-bm-br: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-vbmc: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-vbmc-br: {}/' ${cloud_netplan_cfg}
if [[ "${IRONIC_MT_ENABLED,,}" == true ]] ; then
- sed -i "s/.*ethernets:.*/&\n ${IRONIC_BAREMETAL_VXLAN_INTERFACE}: {}/" ${cloud_netplan_cfg}
- sed -i 's/.*ethernets:.*/&\n veth-pxe: {}/' ${cloud_netplan_cfg}
- sed -i 's/.*ethernets:.*/&\n veth-pxe-br: {}/' ${cloud_netplan_cfg}
+ sed -i "s/.*ethernets:.*/&\n ${IRONIC_BAREMETAL_VXLAN_INTERFACE}: {}/" ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-pxe: {}/' ${cloud_netplan_cfg}
+ sed -i 's/.*ethernets:.*/&\n veth-pxe-br: {}/' ${cloud_netplan_cfg}
cat << EOF > /etc/systemd/network/13-veth-pxe.netdev
[NetDev]
Name=veth-pxe
@@ -725,12 +739,12 @@
EOF
sed -i "s/- ${IRONIC_BAREMETAL_NETWORK_PREFIX}\([0-9]*\)/- ${IRONIC_BAREMETAL_TUNNEL_NETWORK_PREFIX}\1/" ${cloud_netplan_cfg}
cat << EOF >> ${cloud_netplan_cfg}
- vlans:
- pxe.1000:
- id: 1000
- link: veth-pxe
- addresses:
- - ${IRONIC_BAREMETAL_INTERFACE_IP}/${IRONIC_BAREMETAL_NETWORK_NETMASK}
+ vlans:
+ pxe.1000:
+ id: 1000
+ link: veth-pxe
+ addresses:
+ - ${IRONIC_BAREMETAL_INTERFACE_IP}/${IRONIC_BAREMETAL_NETWORK_NETMASK}
EOF
else
ironic_baremetal_address_match_ip_line=$(grep -nm1 "${IRONIC_BAREMETAL_INTERFACE_IP}/${IRONIC_BAREMETAL_NETWORK_NETMASK}" ${cloud_netplan_cfg} | cut -d: -f1)
@@ -749,23 +763,23 @@
fi
cat << EOF >> ${cloud_netplan_cfg}
- bridges:
- br-public:
- dhcp4: false
- interfaces:
- - ${PUBLIC_INTERFACE}
- - veth-br
+ bridges:
+ br-public:
+ dhcp4: false
+ interfaces:
+ - ${PUBLIC_INTERFACE}
+ - veth-br
EOF
if [[ "${TUNGSTENFABRIC_ENABLED,,}" != true ]]; then
if [[ ${NODE_METADATA} == *"tempest"* ]]; then
cat << EOF >> ${cloud_netplan_cfg}
- addresses:
- - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
+ addresses:
+ - ${PUBLIC_NODE_IP_ADDRESS}/${PUBLIC_NODE_IP_NETMASK}
EOF
# Assign more ips for neutron dynamic routing PRODX-31417
for i in {71..76}; do
cat << EOF >> ${cloud_netplan_cfg}
- - ${PUBLIC_NODE_IP_ADDRESS%.*}.${i}/${PUBLIC_NODE_IP_NETMASK}
+ - ${PUBLIC_NODE_IP_ADDRESS%.*}.${i}/${PUBLIC_NODE_IP_NETMASK}
EOF
done
fi
@@ -773,27 +787,27 @@
# Remove Tunnel interface from netplan
if [[ $TUNNEL_INTERFACE_NETPLAN_MANAGE == false ]]; then
- sed -i "/ ${TUNNEL_INTERFACE}/,/ set-name: ${TUNNEL_INTERFACE}/d" ${cloud_netplan_cfg}
+ sed -i "/ ${TUNNEL_INTERFACE}/,/ set-name: ${TUNNEL_INTERFACE}/d" ${cloud_netplan_cfg}
fi
if [[ -n ${IRONIC_BAREMETAL_INTERFACE} ]]; then
cat << EOF >> ${cloud_netplan_cfg}
- br-baremetal:
- dhcp4: false
- interfaces:
- - veth-bm-br
- - veth-vbmc-br
+ br-baremetal:
+ dhcp4: false
+ interfaces:
+ - veth-bm-br
+ - veth-vbmc-br
EOF
if [[ "${IRONIC_MT_ENABLED,,}" != true ]] ; then
cat << EOF >> ${cloud_netplan_cfg}
- - ${IRONIC_BAREMETAL_INTERFACE}
- addresses:
- - ${IRONIC_BAREMETAL_INTERFACE_IP}/${IRONIC_BAREMETAL_NETWORK_NETMASK}
+ - ${IRONIC_BAREMETAL_INTERFACE}
+ addresses:
+ - ${IRONIC_BAREMETAL_INTERFACE_IP}/${IRONIC_BAREMETAL_NETWORK_NETMASK}
EOF
else
cat << EOF >> ${cloud_netplan_cfg}
- - ${IRONIC_BAREMETAL_VXLAN_INTERFACE}
- - veth-pxe-br
+ - ${IRONIC_BAREMETAL_VXLAN_INTERFACE}
+ - veth-pxe-br
EOF
cat << EOF > /etc/systemd/system/ironic-vxlan-tunnel.service
diff --git a/de/heat-templates/scripts/launch.sh b/de/heat-templates/scripts/launch.sh
index ef03877..060c42c 100644
--- a/de/heat-templates/scripts/launch.sh
+++ b/de/heat-templates/scripts/launch.sh
@@ -133,12 +133,12 @@
wait_for_external_network
prepare_metadata_files
disable_rp_filter
+ install_required_packages
network_config
prepare_network
if [[ "${KUBERNETES_INSTALLER}" == "ucp" ]]; then
prepare_docker_config
fi
- install_required_packages
install_kubectl
configure_ntp
configure_atop
@@ -180,12 +180,12 @@
nested_virt_config
prepare_metadata_files
disable_rp_filter
+ install_required_packages
network_config
prepare_network
if [[ "${KUBERNETES_INSTALLER}" == "ucp" ]]; then
prepare_docker_config
fi
- install_required_packages
install_kubectl
configure_ntp
configure_atop
@@ -219,12 +219,12 @@
nested_virt_config
prepare_metadata_files
disable_rp_filter
+ install_required_packages
network_config
prepare_network
if [[ "${KUBERNETES_INSTALLER}" == "ucp" ]]; then
prepare_docker_config
fi
- install_required_packages
install_kubectl
enable_iscsi
configure_ntp
@@ -258,12 +258,12 @@
wait_for_external_network
prepare_metadata_files
disable_rp_filter
+ install_required_packages
network_config
prepare_network
if [[ "${KUBERNETES_INSTALLER}" == "ucp" ]]; then
prepare_docker_config
fi
- install_required_packages
configure_ntp
configure_atop
if [[ "${KUBERNETES_INSTALLER}" == "ucp" ]]; then