e544379010
If your using configuration drive, cloud init tries to DHCP by default anyway, which delays the boot sequence as it seeks out a network attached metadata source. So instead, disable the automatic activation so the configuration drive data source is acutally leverage. Additionally add further notes to provide guidance to users of DIB. Change-Id: Ie7c522f23deb3f08ee4ec002e0e2020f382359aa
51 lines
2.0 KiB
Bash
Executable File
51 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
DIB_CLOUD_INIT_DATASOURCES=${DIB_CLOUD_INIT_DATASOURCES:-""}
|
|
|
|
# NOTE(TheJulia): If your looking at slightly more exotic configuration, the
|
|
# following links may be wortwhile to review. Specifically: ConfigDrive is just
|
|
# initial datasource configuration, and fallback network configuration basically
|
|
# always happens. Plus, cloud-init by default ignores other data in the
|
|
# configuration drive unless "openstack" is referenced. :\
|
|
# https://cloudinit.readthedocs.io/en/latest/reference/datasources/configdrive.html
|
|
# https://cloudinit.readthedocs.io/en/latest/reference/datasources/openstack.html#openstack-ironic-bare-metal
|
|
|
|
if [ -z "$DIB_CLOUD_INIT_DATASOURCES" ] ; then
|
|
echo "DIB_CLOUD_INIT_DATASOURCES must be set to a comma-separated list "
|
|
echo "of cloud-init data sources you wish to use, ie 'Ec2, NoCloud, ConfigDrive'"
|
|
exit 1
|
|
fi
|
|
if [ -d /etc/cloud/cloud.cfg.d ]; then
|
|
cat > /etc/cloud/cloud.cfg.d/91-dib-cloud-init-datasources.cfg <<EOF
|
|
datasource_list: [ $DIB_CLOUD_INIT_DATASOURCES, None ]
|
|
EOF
|
|
# Newer cloud-init versions complain by default when they should
|
|
# use the Ec2 datasource on a non-AWS cloud. If the Ec2
|
|
# datasource is desired, we need to tell cloud-init that we really
|
|
# want this. Otherwise there will be ugly warnings or worse.
|
|
#
|
|
if [[ $DIB_CLOUD_INIT_DATASOURCES =~ Ec2 ]]; then
|
|
cat > /etc/cloud/cloud.cfg.d/92-ec2-datasource.cfg <<EOF
|
|
#cloud-config
|
|
datasource:
|
|
Ec2:
|
|
strict_id: false
|
|
EOF
|
|
fi
|
|
# If we are drawing configuration from configuration drive, we *very*
|
|
# likely have network configuration there, so by default try that
|
|
# instead of trying to do DHCP out of the gate.
|
|
# https://cloudinit.readthedocs.io/en/latest/reference/network-config.html#disabling-network-activation
|
|
if [[ $DIB_CLOUD_INIT_DATASOURCES =~ ConfigDrive ]]; then
|
|
cat > /etc/cloud/cloud.cfg.d/93-dib-cloud-init-disable-datasource-network-activation.cfg <<EOF
|
|
disable_network_activation: true
|
|
EOF
|
|
fi
|
|
fi
|