#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]
