# -*- mode: ruby -*-
# vi: set ft=ruby :
#
# controlkube Scenario Vagrantfile

require 'yaml'
settings = YAML.load_file('genconfig/config.yml')

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

  config.vm.box = settings["vagrant_box"]

  config.vm.synced_folder '.', '/vagrant', disabled: true

  # set the headnode VM
  config.vm.define "head1" do |h|
    h.vm.hostname = "head1"
    h.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: '0.0.0.0'
    h.vm.provider :virtualbox do |vb|
      vb.memory = settings['head_vm_mem']
      vb.cpus = settings['head_vm_cpu']
      vb.linked_clone = true
    end
    h.vm.provider :libvirt do |v, override|
      v.memory = settings['head_vm_mem']
      v.cpus = settings['head_vm_cpu']
    end
    h.vm.network "private_network", # management network, eth1
      ip: "0.1.0.0", # not used, ignore
      auto_config: false,
      virtualbox__intnet: settings['vm_management_network_name'],
      libvirt__network_name: settings['vm_management_network_name'],
      libvirt__forward_mode: "none",
      libvirt__dhcp_enabled: false
    h.vm.network "private_network", # public network, eth2
      ip: "0.2.0.0", # not used, ignore
      auto_config: false,
      virtualbox__intnet: settings['vm_public_network_name'],
      libvirt__network_name: settings['vm_public_network_name'],
      libvirt__forward_mode: "none",
      libvirt__dhcp_enabled: false
  end

  config.vm.define "compute1" do |c|
    c.vm.hostname = "compute1"
    c.vm.provider :virtualbox do |vb|
      vb.memory = settings['compute_vm_mem']
      vb.cpus = settings['compute_vm_cpu']
      vb.linked_clone = true
    end
    c.vm.provider :libvirt do |v|
      v.memory = settings['compute_vm_mem']
      v.cpus = settings['compute_vm_cpu']
    end
    c.vm.network "private_network", # management network, eth1
      ip: "0.1.0.0",
      auto_config: false,
      virtualbox__intnet: settings['vm_management_network_name'],
      libvirt__network_name: settings['vm_management_network_name'],
      libvirt__forward_mode: "none",
      libvirt__dhcp_enabled: false
    c.vm.network "private_network", # public network, eth2
      ip: "0.2.0.0", # not used, ignore
      auto_config: false,
      virtualbox__intnet: settings['vm_public_network_name'],
      libvirt__network_name: settings['vm_public_network_name'],
      libvirt__forward_mode: "none",
      libvirt__dhcp_enabled: false
  end

  config.vm.define "compute2" do |c|
    c.vm.hostname = "compute2"
    c.vm.provider :virtualbox do |vb|
      vb.memory = settings['compute_vm_mem']
      vb.cpus = settings['compute_vm_cpu']
      vb.linked_clone = true
    end
    c.vm.provider :libvirt do |v|
      v.memory = settings['compute_vm_mem']
      v.cpus = settings['compute_vm_cpu']
    end
    c.vm.network "private_network", # management network, eth1
      ip: "0.1.0.0",
      auto_config: false,
      virtualbox__intnet: settings['vm_management_network_name'],
      libvirt__network_name: settings['vm_management_network_name'],
      libvirt__forward_mode: "none",
      libvirt__dhcp_enabled: false
    c.vm.network "private_network", # public network, eth2
      ip: "0.2.0.0", # not used, ignore
      auto_config: false,
      virtualbox__intnet: settings['vm_public_network_name'],
      libvirt__network_name: settings['vm_public_network_name'],
      libvirt__forward_mode: "none",
      libvirt__dhcp_enabled: false
  end
end

