| # All the data below will be stored as a string object
  #cloud-config, see http://cloudinit.readthedocs.io/en/latest/topics/examples.html

  ssh_pwauth: True
  users:
   - name: root
     sudo: ALL=(ALL) NOPASSWD:ALL
     shell: /bin/bash
     ssh_authorized_keys:
     {% for key in config.underlay.ssh_keys %}
      - ssh-rsa {{ key['public'] }}
     {% endfor %}

  disable_root: false
  chpasswd:
   list: |
    root:r00tme
   expire: False

  bootcmd:
   # Block access to SSH while node is preparing
   - cloud-init-per once sudo iptables -A INPUT -p tcp --dport 22 -j DROP
   # Enable root access
   - sed -i -e '/^PermitRootLogin/s/^.*$/PermitRootLogin yes/' /etc/ssh/sshd_config
   - service sshd restart
  output:
    all: '| tee -a /var/log/cloud-init-output.log /dev/tty0'

  misc_bucket:
   - &runcmd_commands |
     #!/bin/bash
     set -x
     # Prepare network connection
     sudo ifup ens3
     #- sudo route add default gw {gateway} {interface_name}
     rm /etc/resolv.conf
     touch /etc/resolv.conf
     export LOCAL_DNS_IP=$(ifconfig ens3 | grep "inet addr" | cut -d ':' -f 2 | cut -d ' ' -f 1)
     echo "nameserver $LOCAL_DNS_IP" >> /etc/resolv.conf;
     echo "nameserver 172.18.208.44" >> /etc/resolv.conf;
     echo "supersede domain-name-servers $LOCAL_DNS_IP, 172.18.208.44" >> /etc/dhcp/dhclient.conf
     export TERM=linux
     export LANG=C

     # Create swap
     fallocate -l 4G /swapfile
     chmod 600 /swapfile
     mkswap /swapfile
     swapon /swapfile
     echo "/swapfile   none    swap    defaults   0   0" >> /etc/fstab

     ########################################################
     # Node is ready, allow SSH access
     echo "Allow SSH access ..."
     sudo iptables -D INPUT -p tcp --dport 22 -j DROP
     ########################################################
     # Mirror from https://github.com/Mirantis/mcp-common-scripts/blob/master/config-drive/mirror_config.sh
     echo "Configuring salt"
     service salt-minion stop
     systemctl disable salt-minion.service
     # envsubst < /root/minion.conf > /etc/salt/minion.d/minion.conf

  runcmd:
   - [ sh, -c, *runcmd_commands ]

  write_files:
   - path: /etc/network/interfaces
     content: |
          auto ens3
          iface ens3 inet dhcp

   - path: /root/.ssh/config
     owner: root:root
     permissions: '0600'
     content: |
          Host *
            ServerAliveInterval 300
            ServerAliveCountMax 10
            StrictHostKeyChecking no
            UserKnownHostsFile /dev/null
