blob: 80c65cf9632ba672aada75bcc9bbc6ee78f5a562 [file] [log] [blame]
#cloud-config
output:
all: '| tee -a /var/log/cloud-init-output.log /dev/tty0'
write_files:
- owner: root:root
path: /etc/cloud/mirror_environment
permissions: '0644'
content: |
[ -f /etc/cloud/mirror_environment_override ] && . /etc/cloud/mirror_environment_override
export SALT_MASTER_DEPLOY_IP=${SALT_MASTER_DEPLOY_IP:-"10.1.0.14"}
export APTLY_DEPLOY_IP=${APTLY_DEPLOY_IP:-"10.1.0.14"}
export APTLY_DEPLOY_NETMASK=${APTLY_DEPLOY_NETMASK:-"255.255.0.0"}
export APTLY_MINION_ID=${APTLY_MINION_ID:-"apt01.deploy-name.local"}
mirror_config:
- &mirror_config |
function docker_ca_wa(){
crt="/var/lib/docker/swarm/certificates/swarm-node.crt"
if ! $(openssl x509 -checkend 86400 -noout -in ${crt}); then
echo "WARNING: swarm CA not expired yet.Something wrong with docker"
echo "WARNING: docker CA WA not applied"
exit 1
fi
echo 'WARNING: re-creating docker stack services!'
systemctl stop docker || true
rm -rf /var/lib/docker/swarm/*
systemctl restart docker
sleep 5
docker swarm init --advertise-addr 127.0.0.1
sleep 5
for c in docker aptly; do
pushd /etc/docker/compose/${c}/
retry=5
i=1
while [[ $i -lt $retry ]]; do
docker stack deploy --compose-file docker-compose.yml ${c};
ret=$?;
if [[ $ret -eq 0 ]]; then
echo 'Stack created'; break;
else
echo "Stack creation failed, retrying in 3 seconds.." >&2;
sleep 3;
i=$(( i + 1 ));
fi
if [[ $i -ge $retry ]]; then
echo "Stack creation failed!"; exit 1;
fi
done
popd
sleep 1
done
}
. /etc/cloud/mirror_environment
echo "Configuring network interfaces"
find /etc/network/interfaces.d/ -type f -delete
kill $(pidof /sbin/dhclient) || /bin/true
envsubst < /root/interfaces > /etc/network/interfaces
ip a flush dev ens3
rm -f /var/run/network/ifstate.ens3
if [[ $(grep -E '^\ *gateway\ ' /etc/network/interfaces) ]]; then
(ip r s | grep ^default) && ip r d default || /bin/true
fi;
ifup ens3
echo "Configuring salt"
rm -f /etc/salt/pki/minion/minion_master.pub
envsubst < /root/minion.conf > /etc/salt/minion.d/minion.conf
service salt-minion restart
# Check for failed docker-start.
# WA PROD-21676
if [[ ! $(docker stack ls) ]] ; then
docker_ca_wa
fi
# Set bootstrap-done flag for future
mkdir -p /var/log/mcp/
touch /var/log/mcp/.bootstrap_done
runcmd:
- [bash, -cex, *mirror_config]