forked from suse-edge/Factory
SLE 15.6 the container is based on does not ship Python 3.12, the next packaged release will be 3.13, so stick to 3.11 until then. Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
#!/usr/bin/bash
|
|
|
|
set -eux
|
|
|
|
# shellcheck disable=SC1091
|
|
. /bin/ironic-common.sh
|
|
# shellcheck disable=SC1091
|
|
. /bin/tls-common.sh
|
|
|
|
export HTTP_PORT=${HTTP_PORT:-80}
|
|
DNSMASQ_EXCEPT_INTERFACE=${DNSMASQ_EXCEPT_INTERFACE:-lo}
|
|
export DNS_PORT=${DNS_PORT:-0}
|
|
|
|
wait_for_interface_or_ip
|
|
if [[ "${DNS_IP:-}" == "provisioning" ]]; then
|
|
if [[ "${IPV}" == "4" ]]; then
|
|
export DNS_IP="${IRONIC_IP}"
|
|
else
|
|
export DNS_IP="[${IRONIC_IP}]"
|
|
fi
|
|
fi
|
|
|
|
mkdir -p /shared/tftpboot
|
|
mkdir -p /shared/html/images
|
|
mkdir -p /shared/html/pxelinux.cfg
|
|
|
|
# Copy files to shared mount
|
|
if [[ -r "${IPXE_CUSTOM_FIRMWARE_DIR}" ]]; then
|
|
cp "${IPXE_CUSTOM_FIRMWARE_DIR}/undionly.kpxe" \
|
|
"${IPXE_CUSTOM_FIRMWARE_DIR}/snponly.efi" \
|
|
"/shared/tftpboot"
|
|
else
|
|
cp /tftpboot/undionly.kpxe /tftpboot/snponly.efi /shared/tftpboot
|
|
fi
|
|
|
|
# Template and write dnsmasq.conf
|
|
# we template via /tmp as sed otherwise creates temp files in /etc directory
|
|
# where we can't write
|
|
python3.11 -c 'import os; import sys; import jinja2; sys.stdout.write(jinja2.Template(sys.stdin.read()).render(env=os.environ))' <"/templates/dnsmasq.conf.j2" >"${DNSMASQ_TEMP_DIR}/dnsmasq_temp.conf"
|
|
|
|
for iface in $(echo "$DNSMASQ_EXCEPT_INTERFACE" | tr ',' ' '); do
|
|
sed -i -e "/^interface=.*/ a\except-interface=${iface}" "${DNSMASQ_TEMP_DIR}/dnsmasq_temp.conf"
|
|
done
|
|
cat "${DNSMASQ_TEMP_DIR}/dnsmasq_temp.conf" > "${DNSMASQ_CONF_DIR}/dnsmasq.conf"
|
|
rm "${DNSMASQ_TEMP_DIR}/dnsmasq_temp.conf"
|
|
|
|
exec /usr/sbin/dnsmasq -d -q -C "${DNSMASQ_CONF_DIR}/dnsmasq.conf"
|