# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.provider :virtualbox do |v|
    v.memory = 2048
    v.cpus = 2
  end
  config.vm.provider :libvirt do |v|
    v.memory = 2048
    v.cpus = 2
  end
  config.vm.provision "shell", inline: <<-SHELL
    # configuration
    GO_VERSION="1.13.11"
    BATS_VERSION="v1.2.0"

    # install yum packages
    yum install -y -q epel-release
    yum install -y -q gcc git iptables jq libseccomp-devel make skopeo
    yum clean all

    # install Go
    curl -fsSL "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" | tar Cxz /usr/local

    # Install umoci
    curl -o /usr/local/bin/umoci -fsSL https://github.com/opencontainers/umoci/releases/download/v0.4.5/umoci.amd64
    chmod +x /usr/local/bin/umoci

    # install bats
    git clone https://github.com/bats-core/bats-core
    cd bats-core
    git checkout $BATS_VERSION
    ./install.sh /usr/local

    # NOTE: criu is NOT installed. criu tests are skipped.

    # set PATH (NOTE: sudo without -i ignores this PATH)
    cat >> /etc/profile.d/sh.local <<EOF
PATH=/usr/local/go/bin:/usr/local/bin:$PATH
export PATH
EOF
    source /etc/profile.d/sh.local

    # sysctl
    echo "user.max_user_namespaces=15076" > /etc/sysctl.d/userns.conf
    sysctl --system

    # Add a user for rootless tests
    useradd -u2000 -m -d/home/rootless -s/bin/bash rootless

    # Add busybox for libcontainer/integration tests
    . /vagrant/tests/integration/multi-arch.bash \
        && mkdir /busybox \
        && curl -fsSL $(get_busybox) | tar xfJC - /busybox
  SHELL
end
