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

DISKS = [
  { "name" => "home",
    "size" => 5,
    "port" => 1
  },
  { "name" => "opt",
    "size" => 5,
    "port" => 2 },
]

Vagrant.configure("2") do |config|

  config.vm.box = "geerlingguy/debian10"
  config.vm.network "private_network", ip: "10.10.0.2", adapter: 2
  config.vm.hostname = "devbox.devops.detss.corpintra.net"

  # require additional vagrant plugins
  # config.disksize.size = "20GB"
  config.proxy.http     = "http://yourproxy:8080"
  config.proxy.https    = "http://yourproxy:8080"
  config.proxy.no_proxy = "localhost,127.0.0.1"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "4096"
    vb.cpus = 4
    vb.name = "devbox"
    # Adding a SATA controller that allows 4 hard drives
    vb.customize ['storagectl', :id, '--name', 'SATA Controller', '--add', 'sata', '--portcount', 4]

    DISKS.each do |disk|
      datadisk = disk["name"] + ".vmdk"
      unless File.exist?(datadisk)
        vb.customize ['createmedium', '--filename', datadisk,'--format', 'VMDK', '--variant', 'Standard', '--size', disk["size"] * 1024]
      end
      vb.customize ['storageattach', "devbox",  '--storagectl', 'SATA Controller', '--port', disk["port"], '--device', 0, '--type', 'hdd', '--medium', datadisk]
    end
  end

  config.vm.provision "shell" do |s|
    ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
    s.inline = <<-SHELL
      echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
      mkdir -p /root/.ssh
      echo #{ssh_pub_key} >> /root/.ssh/authorized_keys
    SHELL
  end
end
