blob: f0941fc0b2b89f7db1c447bb219a5e08614ee0d6 [file] [log] [blame]
Zsolt Haraszti3d163532016-09-08 15:57:32 -07001# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
Sergio Slobodrianbf77c862017-06-08 13:24:27 -04004require 'yaml'
5
David K. Bainbridgea2a46ae2017-10-24 14:05:33 -07006if ENV['VAGRANT_SETTINGS'] and ENV['VAGRANT_SETTINGS'] != ''
7 settings_file = ENV['VAGRANT_SETTINGS']
8else
9 settings_file = 'settings.vagrant.yaml'
10end
11puts("Loading vagrant settings from " + settings_file)
12settings = YAML.load_file settings_file
Sergio Slobodrianbf77c862017-06-08 13:24:27 -040013
Zsolt Haraszti3d163532016-09-08 15:57:32 -070014Vagrant.configure(2) do |config|
15
Sergio Slobodrian2f1a3f82017-05-31 10:35:00 -040016 if /cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM
17 puts("Configuring for windows")
alshabibeef9b132017-02-02 17:46:51 -080018 config.vm.synced_folder "../..", "/cord", mount_options: ["dmode=700,fmode=600"]
David K. Bainbridgee2c08102017-10-31 11:55:25 -070019 if settings['vagrant_box']
20 Box = settings['vagrant_box']
21 else
22 Box = "ubuntu/xenial64"
23 end
Sergio Slobodrian2f1a3f82017-05-31 10:35:00 -040024 Provider = "virtualbox"
25 elsif RUBY_PLATFORM =~ /linux/
26 puts("Configuring for linux")
Sergio Slobodrianbf77c862017-06-08 13:24:27 -040027 if settings['vProvider'] == "virtualbox"
28 puts("Using the virtualbox configuration");
29 config.vm.synced_folder "../..", "/cord"
David K. Bainbridgee2c08102017-10-31 11:55:25 -070030 if settings['vagrant_box']
31 Box = settings['vagrant_box']
32 else
33 Box = "ubuntu/xenial64"
34 end
Sergio Slobodrianbf77c862017-06-08 13:24:27 -040035 Provider = "virtualbox"
khenaidoo079a7762017-10-26 21:42:05 -040036 config.disksize.size = '50GB'
Sergio Slobodrianbf77c862017-06-08 13:24:27 -040037 else
38 puts("Using the QEMU/KVM configuration");
David K. Bainbridgee2c08102017-10-31 11:55:25 -070039 if settings['vagrant_box']
40 Box = settings['vagrant_box']
41 else
42 Box = "ubuntu1604"
43 end
Sergio Slobodrianbf77c862017-06-08 13:24:27 -040044 Provider = "libvirt"
Sergio Slobodrian36e16552017-06-19 11:00:45 -040045 if settings['testMode'] == "true" or settings['installMode'] == "true"
Sergio Slobodrian7c483622017-06-13 15:51:34 -040046 config.vm.synced_folder ".", "/vagrant", disabled: true
Sergio Slobodrian36e16552017-06-19 11:00:45 -040047 config.vm.synced_folder "../..", "/cord", type: "rsync", rsync__exclude: [".git", "venv-linux", "install/volthaInstaller", "install/volthaInstaller-2"], rsync__args: ["--verbose", "--archive", "--delete", "-z", "--links"]
Sergio Slobodrian7c483622017-06-13 15:51:34 -040048 else
David K. Bainbridgea2a46ae2017-10-24 14:05:33 -070049 config.vm.synced_folder ".", "/vagrant", rsync__exclude: [".git", "venv-linux", "install/volthaInstaller", "install/volthaInstaller-2"], rsync__args: ["--verbose", "--archive", "--delete", "-z", "--links"]
50 config.vm.synced_folder "../..", "/cord", type: "nfs", rsync__exclude: [".git", "venv-linux", "install/volthaInstaller", "install/volthaInstaller-2"], rsync__args: ["--verbose", "--archive", "--delete", "-z", "--links"]
Sergio Slobodrian7c483622017-06-13 15:51:34 -040051 end
Sergio Slobodrianbf77c862017-06-08 13:24:27 -040052 end
Zsolt Haraszti3d163532016-09-08 15:57:32 -070053 else
Sergio Slobodrian2f1a3f82017-05-31 10:35:00 -040054 puts("Configuring for other")
alshabibeef9b132017-02-02 17:46:51 -080055 config.vm.synced_folder "../..", "/cord"
David K. Bainbridgee2c08102017-10-31 11:55:25 -070056 if settings['vagrant_box']
57 Box = settings['vagrant_box']
58 else
59 Box = "ubuntu/xenial64"
60 end
Sergio Slobodrian2f1a3f82017-05-31 10:35:00 -040061 Provider = "virtualbox"
khenaidoo079a7762017-10-26 21:42:05 -040062 config.disksize.size = '50GB'
Zsolt Haraszti3d163532016-09-08 15:57:32 -070063 end
64
Sergio Slobodrian7c483622017-06-13 15:51:34 -040065 config.vm.define "#{settings['server_name']}" do |d|
Zsolt Haraszti3d163532016-09-08 15:57:32 -070066 d.ssh.forward_agent = true
Sergio Slobodrian2f1a3f82017-05-31 10:35:00 -040067 d.vm.box = Box
David K. Bainbridgee2c08102017-10-31 11:55:25 -070068 if settings['vagrant_box_version']
69 d.vm.box_version = settings['vagrant_box_version']
70 elsif Box == "ubuntu/xenial64"
71 d.vm.box_version = "20170207.0.0"
khenaidoo3a7a4e52017-07-14 15:31:46 -040072 end
Sergio Slobodrian7c483622017-06-13 15:51:34 -040073 d.vm.hostname = "#{settings['server_name']}"
Zsolt Haraszti3d163532016-09-08 15:57:32 -070074 d.vm.network "private_network", ip: "10.100.198.220"
75 d.vm.provision :shell, path: "ansible/scripts/bootstrap_ansible.sh"
David K. Bainbridge10a7a7e2018-01-29 09:54:40 -080076 if "docker" == "#{settings['build_mode']}"
77 d.vm.provision :shell, inline: "PYTHONUNBUFFERED=1 ansible-playbook /vagrant/ansible/voltha-docker.yml -c local"
78 else
79 d.vm.provision :shell, inline: "PYTHONUNBUFFERED=1 ansible-playbook /cord/incubator/voltha/ansible/voltha.yml -c local"
80 d.vm.provision :shell, inline: "cd /cord/incubator/voltha && source env.sh && make install-protoc && chmod 777 /tmp/fluentd"
81 end
Sergio Slobodrian2f1a3f82017-05-31 10:35:00 -040082 d.vm.provider Provider do |v|
Zsolt Haraszti9b485fb2016-12-26 23:11:15 -080083 v.memory = 6144
Sergio Slobodriancab0a392017-07-13 08:42:10 -040084 v.cpus = 4
Sergio Slobodrianfb89efa2017-08-02 14:16:14 -040085 if settings['vProvider'] == "KVM"
86 v.cpu_mode = 'host-passthrough'
87 v.cpu_fallback = 'allow'
88 end
Zsolt Haraszti3d163532016-09-08 15:57:32 -070089 end
90 end
91
92 if Vagrant.has_plugin?("vagrant-cachier")
93 config.cache.scope = :box
94 end
95
96end