| # 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:
   - if lvs vg0; then pvresize /dev/vda3; fi
   - if lvs vg0; then /usr/bin/growlvm.py --image-layout-file /usr/share/growlvm/image-layout.yml; fi

   - export TERM=linux
   - export LANG=C
   # Configure dhclient
   - sudo echo "nameserver {gateway}" >> /etc/resolvconf/resolv.conf.d/base
   - sudo resolvconf -u

   # Enable grub menu using updated config below
   - update-grub

   # Prepare network connection
   - sudo ifup {interface_name}
   #- sudo route add default gw {gateway} {interface_name}

   # 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"
   - echo "nameserver 172.18.208.44" > /etc/resolv.conf;
   #   - echo "nameserver 8.8.8.8" >> /etc/resolv.conf;
   #   - which wget >/dev/null || (apt-get update; apt-get install -y wget)

   # Configure Ubuntu mirrors
   #   - echo "deb [arch=amd64] http://mirror.mirantis.com/{{ REPOSITORY_SUITE }}/ubuntu/ xenial main restricted universe" > /etc/apt/sources.list
   #   - echo "deb [arch=amd64] http://mirror.mirantis.com/{{ REPOSITORY_SUITE }}/ubuntu/ xenial-updates main restricted universe" >> /etc/apt/sources.list
   #   - echo "deb [arch=amd64] http://mirror.mirantis.com/{{ REPOSITORY_SUITE }}/ubuntu/ xenial-security main restricted universe" >> /etc/apt/sources.list

   #   - echo "deb [arch=amd64] http://apt.mirantis.com/xenial {{ REPOSITORY_SUITE }} salt extra" > /etc/apt/sources.list.d/mcp_salt.list;
   #   - wget -O - http://apt.mirantis.com/public.gpg | apt-key add -;
   #   - echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3 xenial main" > /etc/apt/sources.list.d/saltstack.list;
   #   - wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -;

   #   - apt-get clean
   #   - eatmydata apt-get update && apt-get -y upgrade

   # Install common packages
   #   - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree mc

   # Install salt-minion and stop it until it is configured
   #   - eatmydata apt-get install -y salt-minion && service salt-minion stop

   # Install latest kernel
   #   - eatmydata apt-get install -y {{ os_env('LINUX_KERNEL_HWE_PACKAGE_NAME', 'linux-image-extra-4.10.0-42-generic') }}

   ########################################################
   # Node is ready, allow SSH access
   #- echo "Allow SSH access ..."
   #- sudo iptables -D INPUT -p tcp --dport 22 -j DROP
   #   - reboot
   ########################################################

  write_files:
   - path: /etc/default/grub.d/97-enable-grub-menu.cfg
     content: |
         GRUB_RECORDFAIL_TIMEOUT=30
         GRUB_TIMEOUT=3
         GRUB_TIMEOUT_STYLE=menu

   - path: /etc/network/interfaces
     content: |
          # The loopback network interface
          auto lo
          iface lo inet loopback
          auto {interface_name}
          iface {interface_name} inet dhcp

   - path: /usr/share/growlvm/image-layout.yml
     content: |
       root:
         size: '30%VG'
       home:
         size: '1G'
       var_log:
         size: '11%VG'
       var_log_audit:
         size: '5G'
       var_tmp:
         size: '11%VG'
       tmp:
         size: '5G'
     owner: root:root

  growpart:
    mode: auto
    devices:
      - '/'
      - '/dev/vda3'
    ignore_growroot_disabled: false
