## Base packages and setup
export DEBIAN_FRONTEND=noninteractive
echo "exit 101" > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get clean
apt-get update

# Useful tools
apt-get -y install curl wget tmux vim-nox byobu iputils-ping traceroute htop tree

# Add apt-mk repository
echo "deb [arch=amd64] http://apt-mk.mirantis.com/xenial/ nightly salt" > /etc/apt/sources.list.d/mcp_salt.list
echo "deb [arch=amd64] http://apt-mk.mirantis.com/xenial/ nightly extra" > /etc/apt/sources.list.d/mcp_extra.list
curl -sf http://apt-mk.mirantis.com/public.gpg | apt-key add -

# Cleanup old kernels, ensure latest is installed via virtual package
apt-get purge -y linux-image-* linux-headers-*
if [ ! -f /tmp/no_install_kernel ]; then
    # Use HWE kernel
    apt-get install -y linux-image-generic-hwe-16.04

    # Update grub cmdline
    sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"|g' /etc/default/grub
    sed -i 's|GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"|g' /etc/default/grub
    update-grub
fi

apt-get -y upgrade
apt-get -y dist-upgrade

apt-get autoremove --purge

# Tmux fixes
cat << 'EOF' >> /etc/tmux.conf
set -g default-terminal "screen-256color"
set -g set-titles on
set -g xterm-keys on
EOF

# Setup cloud-init
apt-get -y install cloud-init

# Motd
apt-get install -y update-motd
rm -f /etc/update-motd.d/*
cat << EOF >> /etc/update-motd.d/52-info
Ubuntu 16.04 "Xenial" Mirantis cloud image
Build date: $(date -u -R)

EOF
chmod +x /etc/update-motd.d/52-info
