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

  runcmd:
   # Configure dhclient
   - sudo echo "nameserver {gateway}" >> /etc/resolvconf/resolv.conf.d/base
   - sudo resolvconf -u

   # Prepare network connection
   - sudo ifup eth0
   #- sudo route add default gw {gateway} {interface_name}
   - sudo ifup eth1

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

   ############## TCP Cloud cfg01 node ##################
   #- sleep 120
   - echo "Preparing base OS"
   - which wget >/dev/null || (apt-get update; apt-get install -y wget)

   - echo "deb [arch=amd64] http://apt.tcpcloud.eu/nightly/ trusty main security extra tcp tcp-salt" > /etc/apt/sources.list
   - wget -O - http://apt.tcpcloud.eu/public.gpg | apt-key add -
   # saltstack repo is for minions that have the same version in the xenial and trusty (2016.3.3)
   #- echo "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest trusty main" > /etc/apt/sources.list.d/saltstack.list
   #- wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add -
   - echo "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3 trusty main" > /etc/apt/sources.list.d/saltstack.list
   - wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -

   - apt-get clean
   - apt-get update
   - apt-get -y upgrade

   # Install common packages
   - apt-get install -y python-pip git
   - apt-get install -y curl tmux byobu iputils-ping traceroute htop tree

   - apt-get install -y salt-minion

   # To be configured from inventory/fuel-devops by operator or autotests
   - 'echo "id: {hostname}" >> /etc/salt/minion'
   - 'echo "master: 172.16.10.100" >> /etc/salt/minion'

   - echo "Restarting minion service with workarounds..."
   - rm -f /etc/salt/pki/minion/minion_master.pub
   - service salt-minion restart
   - sleep 5
   - rm -f /etc/salt/pki/minion/minion_master.pub
   - service salt-minion restart

   #- echo "Showing node metadata..."
   #- salt-call pillar.data

   #- echo "Running complete state ..."
   #- salt-call state.sls linux,openssh,salt

   # Workaround for bug https://mirantis.jira.com/browse/PROD-8214
   - apt-get -y install --install-recommends linux-generic-lts-xenial
   - reboot

   ########################################################
   # Node is ready, allow SSH access
   ##- echo "Allow SSH access ..."
   ##- sudo iptables -D INPUT -p tcp --dport 22 -j DROP
   ########################################################

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