blob: 4b10392fd805eea4f1a9ea26bbfa65696d256272 [file] [log] [blame]
Victor Morales89ce3212017-06-16 18:32:48 -05001# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
Manjeet Singh Bhatia972599d2018-02-28 17:45:54 -08004Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com')
5
Idan Amit46123862017-09-19 13:43:32 +03006configuration = {
7 # Generic parameters used across all ONAP components
Victor Morales89ce3212017-06-16 18:32:48 -05008 'key_name' => 'ecomp_key',
9 'pub_key' => '',
10 'nexus_repo' => 'https://nexus.onap.org/content/sites/raw',
Victor Morales6a919972017-09-28 18:29:54 -070011 'nexus_repo_root' => 'https://nexus.onap.org',
12 'nexus_url_snapshot' => 'https://nexus.onap.org/content/repositories/snapshots',
Victor Morales89ce3212017-06-16 18:32:48 -050013 'nexus_docker_repo' => 'nexus3.onap.org:10001',
14 'nexus_username' => 'docker',
15 'nexus_password' => 'docker',
16 'dmaap_topic' => 'AUTO',
17 'artifacts_version' => '1.0.0',
Victor Morales5d21f642017-12-07 11:54:59 -080018 'docker_version' => 'latest',
Victor Morales6a919972017-09-28 18:29:54 -070019 # Parameters for DCAE instantiation
Victor Morales89ce3212017-06-16 18:32:48 -050020 'dcae_zone' => 'iad4',
21 'dcae_state' => 'vi',
22 'openstack_tenant_id' => '',
23 'openstack_username' => '',
24 'openstack_api_key' => '',
25 'openstack_password' => '',
Victor Moralesdd074802017-07-26 16:06:35 -050026 'odl_version' => '0.5.3-Boron-SR3',
Victor Morales6a919972017-09-28 18:29:54 -070027 # Parameters for enabling features
Victor Morales7abf1a82017-11-06 09:20:27 -080028 'debug' => 'True',
Victor Morales6a919972017-09-28 18:29:54 -070029 'build_image' => 'True',
Idan Amit1690e082017-08-20 08:58:14 +030030 'clone_repo' => 'True',
Victor Morales2909e2e2017-08-08 15:51:52 -050031 'compile_repo' => 'False',
Victor Morales6a919972017-09-28 18:29:54 -070032 'enable_oparent' => 'True',
33 'skip_get_images' => 'False',
34 'skip_install' => 'True'
Victor Morales89ce3212017-06-16 18:32:48 -050035}
36
Idan Amit46123862017-09-19 13:43:32 +030037box = {
38 :virtualbox => 'ubuntu/trusty64',
Victor Morales9c525e42017-12-01 04:35:14 -080039 :libvirt => 'elastic/ubuntu-14.04-x86_64',
Idan Amit46123862017-09-19 13:43:32 +030040 :openstack => nil
41}
42
Idan Amit46123862017-09-19 13:43:32 +030043nodes = [
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070044 {
Idan Amit46123862017-09-19 13:43:32 +030045 :name => "aai",
46 :ips => ['10.252.0.6', "192.168.50.6"],
47 :macs => [],
48 :cpus => 2,
49 :cpu => "50",
Victor Morales472a3062018-02-02 08:26:50 -080050 :ram => 8 * 1024,
Idan Amit46123862017-09-19 13:43:32 +030051 :groups => ["individual"],
Victor Moralesbe844712018-01-22 10:07:28 -080052 :args => ["aai"],
53 :fwds => [
54 { :guest => 8446, :host => 8446, :guest_ip => '192.168.50.6' },
55 { :guest => 9446, :host => 9446, :guest_ip => '192.168.50.6' },
56 ]
Idan Amit46123862017-09-19 13:43:32 +030057 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070058 {
Idan Amit46123862017-09-19 13:43:32 +030059 :name => "all-in-one",
Victor Morales071b81c2017-11-07 14:13:07 -080060 :ips => ['10.252.1.3', "192.168.51.3"],
Idan Amit46123862017-09-19 13:43:32 +030061 :macs => [],
62 :cpus => 2,
63 :cpu => "50",
64 :ram => 12 * 1024,
65 :groups => ["all-in-one"],
66 :flavor => 'm1.xlarge',
Victor Morales9d205bc2017-12-01 17:52:07 -080067 :args => ['mr', 'sdc', 'aai', 'mso', 'robot', 'vid', 'sdnc', 'portal', 'dcae', 'policy', 'appc', 'vfc', 'ccsdk', 'multicloud', 'vnfsdk', 'vpp', 'msb'],
Idan Amit46123862017-09-19 13:43:32 +030068 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070069 {
Idan Amit46123862017-09-19 13:43:32 +030070 :name => "appc",
71 :ips => ['10.252.0.14', "192.168.50.14"],
72 :macs => [],
73 :cpus => 2,
74 :cpu => "50",
75 :ram => 4 * 1024,
76 :groups => ["individual"],
77 :args => ["appc"],
78 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070079 {
Idan Amit46123862017-09-19 13:43:32 +030080 :name => "ccsdk",
Victor Morales9d205bc2017-12-01 17:52:07 -080081 :ips => ['10.252.0.19', "192.168.50.19"],
Idan Amit46123862017-09-19 13:43:32 +030082 :macs => [],
83 :cpus => 2,
84 :cpu => "50",
85 :ram => 4 * 1024,
86 :groups => ["individual"],
87 :args => ["ccsdk"],
88 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070089 {
Idan Amit46123862017-09-19 13:43:32 +030090 :name => "dcae",
91 :ips => ['10.252.0.12', "192.168.50.12"],
92 :macs => [],
93 :cpus => 2,
94 :cpu => "50",
95 :ram => 4 * 1024,
96 :groups => ["individual"],
97 :args => ["dcae"],
98 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070099 {
Idan Amit46123862017-09-19 13:43:32 +0300100 :name => "dns",
101 :ips => ['10.252.0.3', "192.168.50.3"],
102 :macs => [],
103 :cpus => 2,
104 :cpu => "50",
105 :ram => 1 * 1024,
106 :groups => ["individual"],
107 :flavor => 'm1.small',
108 :args => [" "]
109 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700110 {
Idan Amit46123862017-09-19 13:43:32 +0300111 :name => "message-router",
112 :ips => ['10.252.0.4', "192.168.50.4"],
113 :macs => [],
114 :cpus => 2,
115 :cpu => "50",
116 :ram => 4 * 1024,
117 :groups => ["individual"],
118 :args => ["mr"],
119 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700120 {
Idan Amit46123862017-09-19 13:43:32 +0300121 :name => "mso",
Victor Morales9d205bc2017-12-01 17:52:07 -0800122 :ips => ['10.252.0.20', "192.168.50.20"],
Idan Amit46123862017-09-19 13:43:32 +0300123 :macs => [],
124 :cpus => 2,
125 :cpu => "50",
126 :ram => 4 * 1024,
127 :groups => ["individual"],
128 :args => ["mso"],
129 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700130 {
Victor Morales9d205bc2017-12-01 17:52:07 -0800131 :name => "msb",
132 :ips => ['10.252.0.7', "192.168.50.7"],
133 :macs => [],
134 :cpus => 2,
135 :cpu => "50",
136 :ram => 4 * 1024,
137 :groups => ["individual"],
138 :args => ["msb"],
139 },
140 {
Idan Amit46123862017-09-19 13:43:32 +0300141 :name => "multicloud",
142 :ips => ['10.252.0.16', "192.168.50.16"],
143 :macs => [],
144 :cpus => 2,
145 :cpu => "50",
146 :ram => 4 * 1024,
147 :groups => ["individual"],
148 :args => ["multicloud"],
Victor Morales71f7d292018-01-04 16:27:07 -0800149 :fwds => [
150 { :guest => 9003, :host => 9003, :guest_ip => '192.168.50.16' },
151 ]
Idan Amit46123862017-09-19 13:43:32 +0300152 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700153 {
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800154 :name => "oom",
155 :ips => ['10.252.0.21', "192.168.50.21"],
156 :macs => [],
157 :cpus => 16,
158 :cpu => "50",
159 :ram => 64 * 1024,
160 :groups => ["individual"],
161 :args => ["oom"],
Victor Morales472a3062018-02-02 08:26:50 -0800162 :hd => { :virtualbox => "61440", :libvirt => "60G", },
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800163 :fwds => [
164 { :guest => 8880, :host => 8880, :guest_ip => '192.168.50.21' },
165 { :guest => 8989, :host => 8989, :guest_ip => '192.168.50.21' },
166 ]
167 },
168 {
Idan Amit46123862017-09-19 13:43:32 +0300169 :name => "policy",
170 :ips => ['10.252.0.13', "192.168.50.13"],
171 :macs => [],
172 :cpus => 2,
173 :cpu => "50",
174 :ram => 4 * 1024,
175 :groups => ["individual"],
176 :args => ["policy"],
177 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700178 {
Idan Amit46123862017-09-19 13:43:32 +0300179 :name => "portal",
180 :ips => ['10.252.0.11', "192.168.50.11"],
181 :macs => [],
182 :cpus => 2,
183 :cpu => "50",
184 :ram => 4 * 1024,
185 :groups => ["individual"],
186 :args => ["portal"],
187 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700188 {
Idan Amit46123862017-09-19 13:43:32 +0300189 :name => "robot",
190 :ips => ['10.252.0.8', "192.168.50.8"],
191 :macs => [],
192 :cpus => 2,
193 :cpu => "50",
194 :ram => 4 * 1024,
195 :groups => ["individual"],
196 :args => ["robot"],
197 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700198 {
Idan Amit46123862017-09-19 13:43:32 +0300199 :name => "sdc",
200 :ips => ['10.252.0.5', "192.168.50.5"],
201 :macs => [],
202 :cpus => 2,
203 :cpu => "50",
Jimmy Forsyth97690442018-02-21 18:15:54 -0500204 :ram => 6 * 1024,
Idan Amit46123862017-09-19 13:43:32 +0300205 :groups => ["individual"],
206 :args => ["sdc"],
Victor Morales56cd8df2018-02-12 16:51:40 -0800207 :hd => { :virtualbox => "20480", :libvirt => "20G", },
208 :fwds => [
209 { :guest => 8285, :host => 8285, :guest_ip => '192.168.50.5' },
210 ]
Idan Amit46123862017-09-19 13:43:32 +0300211 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700212 {
Idan Amit46123862017-09-19 13:43:32 +0300213 :name => "sdnc",
214 :ips => ['10.252.0.10', "192.168.50.10"],
215 :macs => [],
216 :cpus => 2,
217 :cpu => "50",
218 :ram => 4 * 1024,
219 :groups => ["individual"],
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700220 :args => ["sdnc"],
Idan Amit46123862017-09-19 13:43:32 +0300221 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700222 {
Idan Amit46123862017-09-19 13:43:32 +0300223 :name => "testing",
Victor Morales071b81c2017-11-07 14:13:07 -0800224 :ips => ['10.252.2.3', "192.168.52.3"],
Idan Amit46123862017-09-19 13:43:32 +0300225 :macs => [],
226 :cpus => 2,
227 :cpu => "50",
228 :ram => 4 * 1024,
229 :groups => ["testing"],
230 :flavor => 'm1.small',
231 :args => [""],
232 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700233 {
Idan Amit46123862017-09-19 13:43:32 +0300234 :name => "vfc",
235 :ips => ['10.252.0.15', "192.168.50.15"],
236 :macs => [],
237 :cpus => 2,
238 :cpu => "50",
239 :ram => 4 * 1024,
240 :groups => ["individual"],
241 :args => ['vfc'],
242 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700243 {
Idan Amit46123862017-09-19 13:43:32 +0300244 :name => "vid",
245 :ips => ['10.252.0.9', "192.168.50.9"],
246 :macs => [],
247 :cpus => 2,
248 :cpu => "50",
249 :ram => 4 * 1024,
250 :groups => ["individual"],
251 :args => ['vid'],
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700252 },
Victor Moralesd3cbcf22017-10-25 16:01:58 -0700253 {
Victor Morales071b81c2017-11-07 14:13:07 -0800254 :name => "vnfsdk",
255 :ips => ['10.252.0.18', "192.168.50.18"],
256 :macs => [],
257 :cpus => 2,
258 :cpu => "50",
259 :ram => 4 * 1024,
260 :groups => ["individual"],
261 :args => ['vnfsdk'],
Shashank Kumar Shankarf84c9a12017-10-23 11:08:31 -0700262 },
263 {
Victor Moralesd3cbcf22017-10-25 16:01:58 -0700264 :name => "vvp",
265 :ips => ['10.252.0.17', "192.168.50.17"],
266 :macs => [],
267 :cpus => 2,
268 :cpu => "50",
269 :ram => 4 * 1024,
270 :groups => ["individual"],
271 :args => ['vvp'],
Victor Morales4ab71c12017-11-08 07:28:28 -0800272 },
273 {
274 :name => "openstack",
275 :ips => ['10.252.3.3', "192.168.53.3"],
276 :macs => [],
277 :cpus => 2,
278 :cpu => "50",
279 :ram => 8 * 1024,
280 :groups => ["individual"],
281 :args => ['openstack'],
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800282 :fwds => [
283 { :guest => 80, :host => 8888, :guest_ip => '192.168.53.4' },
284 { :guest => 6080, :host => 6080, :guest_ip => '192.168.53.4' },
285 ]
Shashank Kumar Shankarf84c9a12017-10-23 11:08:31 -0700286 }
Idan Amit46123862017-09-19 13:43:32 +0300287]
288
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700289run_path = 'vagrant_utils/postinstall.sh'
290sdc_volume = 'vol1-sdc-data.vdi'
Idan Amit46123862017-09-19 13:43:32 +0300291
Victor Moralesdd074802017-07-26 16:06:35 -0500292Vagrant.require_version ">= 1.8.6"
293
Victor Moralesdd074802017-07-26 16:06:35 -0500294# Determine the provider used
295provider = (ENV['VAGRANT_DEFAULT_PROVIDER'] || :virtualbox).to_sym
Idan Amit46123862017-09-19 13:43:32 +0300296puts "[INFO] Provider: #{provider} "
297
Victor Morales89ce3212017-06-16 18:32:48 -0500298vd_conf = ENV.fetch('VD_CONF', 'etc/settings.yaml')
299if File.exist?(vd_conf)
300 require 'yaml'
301 user_conf = YAML.load_file(vd_conf)
Idan Amit46123862017-09-19 13:43:32 +0300302 configuration.update(user_conf)
Victor Morales89ce3212017-06-16 18:32:48 -0500303end
304
Victor Morales6a919972017-09-28 18:29:54 -0700305# Set network interface
Areli Fussf57e9e72017-09-28 14:24:53 +0300306net_interface = 'vboxnet0'
Idan Amit46123862017-09-19 13:43:32 +0300307is_windows = Gem.win_platform?
308if is_windows
309 net_interface = 'VirtualBox Host-Only Ethernet Adapter #2'
Idan Amit46123862017-09-19 13:43:32 +0300310end
311puts "[INFO] Net interface: #{net_interface}"
312
313
Victor Morales6a919972017-09-28 18:29:54 -0700314# If argument is given use it. Otherwise use Env: DEPLOY_MODE else use default
Idan Amit46123862017-09-19 13:43:32 +0300315requested_machine = ARGV[1]
316
Victor Morales89ce3212017-06-16 18:32:48 -0500317deploy_mode = ENV.fetch('DEPLOY_MODE', 'individual')
Idan Amit46123862017-09-19 13:43:32 +0300318if requested_machine != nil
319 if requested_machine.include?("all-in-one") || requested_machine.include?("testing")
320 deploy_mode = requested_machine
321 end
322end
323
Victor Morales6a919972017-09-28 18:29:54 -0700324# Catch the status of all machines
Idan Amit46123862017-09-19 13:43:32 +0300325if ARGV[0] == 'status' || ARGV[0] == 'destroy'
326 deploy_mode = 'NA'
327end
328
329puts "[INFO] Deploy Mode: #{deploy_mode}"
330
Victor Morales6a919972017-09-28 18:29:54 -0700331# In case of all-in-one or testing clean the nodes list
Idan Amit46123862017-09-19 13:43:32 +0300332case deploy_mode
333 when 'all-in-one'
334 nodes.select! do |node|
335 if node[:name].include?("all-in-one")
336 true if node[:name]
337 end
338 end
339
340 when 'individual'
341 nodes.select! do |node|
342 if node[:groups][0].include?("individual")
343 true if node[:name]
Idan Amit46123862017-09-19 13:43:32 +0300344 end
345 end
346
347 when 'testing'
348 nodes.select! do |node|
349 if node[:name].include?("testing")
350 true if node[:name]
351 end
352 end
353end
Victor Morales89ce3212017-06-16 18:32:48 -0500354
355Vagrant.configure("2") do |config|
356
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800357 # PROXY definitions
358 if ENV['http_proxy'] != nil and ENV['https_proxy'] != nil
Idan Amit46123862017-09-19 13:43:32 +0300359 if not Vagrant.has_plugin?('vagrant-proxyconf')
360 system 'vagrant plugin install vagrant-proxyconf'
361 raise 'vagrant-proxyconf was installed but it requires to execute again'
362 end
Victor Morales472a3062018-02-02 08:26:50 -0800363 config.proxy.enabled = { docker: false }
Idan Amit46123862017-09-19 13:43:32 +0300364 config.proxy.http = ENV['http_proxy']
365 config.proxy.https = ENV['https_proxy']
Victor Moralescf269992017-10-18 09:29:55 -0700366 configuration['socks_proxy'] = ENV['socks_proxy']
Victor Morales89ce3212017-06-16 18:32:48 -0500367 end
Victor Morales89ce3212017-06-16 18:32:48 -0500368
Idan Amit46123862017-09-19 13:43:32 +0300369 if Vagrant.has_plugin?('vagrant-vbguest')
370 puts 'vagrant-vbguest auto_update feature will be disable to avoid sharing conflicts'
371 config.vbguest.auto_update = false
Victor Moralesf62e7b82017-07-27 17:26:06 -0500372 end
Idan Amit46123862017-09-19 13:43:32 +0300373
Victor Morales71f7d292018-01-04 16:27:07 -0800374 sync_type = "virtualbox"
Idan Amit46123862017-09-19 13:43:32 +0300375 if provider == :libvirt
376 if not Vagrant.has_plugin?('vagrant-libvirt')
377 system 'vagrant plugin install vagrant-libvirt'
378 raise 'vagrant-libvirt was installed but it requires to execute again'
379 end
Victor Morales71f7d292018-01-04 16:27:07 -0800380 sync_type = "nfs"
Victor Moralesdd074802017-07-26 16:06:35 -0500381 end
Areli Fussf57e9e72017-09-28 14:24:53 +0300382
Idan Amit46123862017-09-19 13:43:32 +0300383 if provider == :openstack
384 config.ssh.username = 'ubuntu'
385 if not Vagrant.has_plugin?('vagrant-openstack-provider')
386 system 'vagrant plugin install vagrant-openstack-provider'
387 raise 'vagrant-openstack-provider was installed but it requires to execute again'
388 end
389 end
Victor Morales89ce3212017-06-16 18:32:48 -0500390
Idan Amit46123862017-09-19 13:43:32 +0300391 nodes.each do |node|
392 config.vm.define node[:name] do |nodeconfig|
Victor Moralesdd074802017-07-26 16:06:35 -0500393
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800394 # NO_PROXY definitions
395 if ENV['no_proxy'] != nil
396 if not Vagrant.has_plugin?('vagrant-proxyconf')
397 system 'vagrant plugin install vagrant-proxyconf'
398 raise 'vagrant-proxyconf was installed but it requires to execute again'
399 end
400 config.proxy.no_proxy = node[:ips].join(",") + "," + ENV['no_proxy']
401 end
402
Idan Amit46123862017-09-19 13:43:32 +0300403 # Common Settings:
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700404
Idan Amit46123862017-09-19 13:43:32 +0300405 nodeconfig.vm.provider "virtualbox" do |vbox|
406 vbox.customize ['modifyvm', :id, '--nictype1', 'virtio']
407 vbox.customize ['modifyvm', :id, '--audio', 'none']
408 vbox.customize ['modifyvm', :id, '--vram', '1']
409 vbox.customize ['modifyvm', :id, "--cpuhotplug", "off"]
410 vbox.customize ['modifyvm', :id, "--cpuexecutioncap", node[:cpu]]
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700411 vbox.customize ['modifyvm', :id, "--cpus", node[:cpus]]
Idan Amit46123862017-09-19 13:43:32 +0300412 vbox.customize ["modifyvm", :id, "--memory", node[:ram]]
Victor Morales9c525e42017-12-01 04:35:14 -0800413
414 # Set Network
415 nodeconfig.vm.network :private_network,
416 :adapter => 2,
417 :name => net_interface,
418 :ip => node[:ips][0]
419
420 nodeconfig.vm.network :private_network,
421 :adapter => 3,
422 :ip => node[:ips][1],
423 :type => :static
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800424
425 # Set Storage
426 if node.has_key? :hd
427 volume_file = node[:name] + '-vol1-data.vdi'
428 unless File.exist?(volume_file)
Victor Morales472a3062018-02-02 08:26:50 -0800429 vbox.customize ['createmedium', 'disk', '--filename', volume_file, '--size', node[:hd][provider]]
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800430 end
431 vbox.customize ['storageattach', :id, '--storagectl', 'SATAController', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', volume_file]
432 end
Victor Morales89ce3212017-06-16 18:32:48 -0500433 end
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700434
Idan Amit46123862017-09-19 13:43:32 +0300435 nodeconfig.vm.provider "libvirt" do |lbox|
436 lbox.memory = node[:ram]
437 lbox.nested = true
Victor Morales9c525e42017-12-01 04:35:14 -0800438 lbox.cpu_mode = 'host-passthrough'
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800439 lbox.cpus = node[:cpus]
Victor Morales9c525e42017-12-01 04:35:14 -0800440
441 # Set Network
442 nodeconfig.vm.network :private_network,
443 :ip => node[:ips][0]
444
445 nodeconfig.vm.network :private_network,
446 :ip => node[:ips][1],
447 :type => :static
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800448
449 # Set Storage
450 if node.has_key? :hd
Victor Morales472a3062018-02-02 08:26:50 -0800451 lbox.storage :file, bus: 'sata', device: 'sda', size: node[:hd][provider]
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800452 end
453 end
454 if node.has_key? :fwds
455 node[:fwds].each do |fwd|
456 nodeconfig.vm.network :forwarded_port,
457 :guest => fwd[:guest],
458 :guest_ip => fwd[:guest_ip],
459 :host => fwd[:host],
460 :host_ip => "0.0.0.0"
461 end
Victor Morales89ce3212017-06-16 18:32:48 -0500462 end
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700463
Idan Amit46123862017-09-19 13:43:32 +0300464 nodeconfig.vm.provider :openstack do |obox|
465 obox.openstack_auth_url = ENV.fetch('OS_AUTH_URL', '')
466 obox.tenant_name = ENV.fetch('OS_TENANT_NAME', '')
467 obox.username = ENV.fetch('OS_USERNAME', '')
468 obox.password = ENV.fetch('OS_PASSWORD', '')
469 obox.region = ENV.fetch('OS_REGION_NAME', '')
470 obox.identity_api_version = ENV.fetch('OS_IDENTITY_API_VERSION', '')
471 obox.domain_name = ENV.fetch('OS_PROJECT_DOMAIN_ID', '')
472 obox.project_name = ENV.fetch('OS_PROJECT_NAME', '')
473 obox.floating_ip_pool = ENV.fetch('OS_FLOATING_IP_POOL', '')
474 obox.floating_ip_pool_always_allocate = (ENV['OS_FLOATING_IP_ALWAYS_ALLOCATE'] == 'true')
475 obox.image = ENV.fetch('OS_IMAGE', '')
476 obox.security_groups = [ENV.fetch('OS_SEC_GROUP', '')]
477 obox.networks = ENV.fetch('OS_NETWORK', '')
478 obox.flavor = node[:flavor]
479 obox.server_name = node[:name]
Idan Amit46123862017-09-19 13:43:32 +0300480 end
Victor Moralesd4036482017-08-15 17:54:14 -0500481
Idan Amit46123862017-09-19 13:43:32 +0300482 # Set Box type
Victor Morales4ab71c12017-11-08 07:28:28 -0800483 if "openstack" == node[:name]
Victor Morales9c525e42017-12-01 04:35:14 -0800484 box = {
485 :virtualbox => 'ubuntu/xenial64',
486 :libvirt => 'elastic/ubuntu-16.04-x86_64'
487 }
Victor Morales4ab71c12017-11-08 07:28:28 -0800488 end
Victor Morales9c525e42017-12-01 04:35:14 -0800489 nodeconfig.vm.box = box[provider]
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700490
Idan Amit46123862017-09-19 13:43:32 +0300491 # Set Node name
492 nodeconfig.vm.hostname = node[:name]
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700493
Idan Amit46123862017-09-19 13:43:32 +0300494 # Set Sync Folder
495 nodeconfig.vm.synced_folder ".", "/vagrant", disabled: true
Victor Moralesf6dbe282018-03-05 10:58:15 -0800496 nodeconfig.vm.synced_folder './opt', '/opt/onap/', create: true, type: sync_type
Victor Morales71f7d292018-01-04 16:27:07 -0800497 nodeconfig.vm.synced_folder './lib', '/var/onap/', create: true, type: sync_type
Idan Amit46123862017-09-19 13:43:32 +0300498 if !is_windows
499 nodeconfig.vm.synced_folder '~/.m2', '/root/.m2/', create: true
500 end
Victor Morales6a919972017-09-28 18:29:54 -0700501
Idan Amit46123862017-09-19 13:43:32 +0300502 # Specific settings:
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700503
Idan Amit46123862017-09-19 13:43:32 +0300504 if node[:name].include? "testing"
505 nodeconfig.vm.synced_folder './tests', '/var/onap_tests/', create: true
506 test_suite = ENV.fetch('TEST_SUITE', '*')
507 test_case = ENV.fetch('TEST_CASE', '*')
508 # Override variables
509 run_path = 'vagrant_utils/unit_testing.sh'
510 node[:args] = [test_suite, test_case]
Victor Morales6a919972017-09-28 18:29:54 -0700511 else
512 configuration['skip_get_images'] = ENV.fetch('SKIP_GET_IMAGES', configuration['skip_get_images'])
513 configuration['skip_install'] = ENV.fetch('SKIP_INSTALL', configuration['skip_install'])
Idan Amit46123862017-09-19 13:43:32 +0300514 end
515
Idan Amit46123862017-09-19 13:43:32 +0300516 if node[:name].include? "vfc"
517 nodeconfig.vm.provision 'docker'
518 end
519
520 nodeconfig.vm.provision 'shell' do |s|
521 s.path = run_path
522 s.args = node[:args]
523 s.env = configuration
524 end
525
526 end #nodeconfig
527 end #node
528end #config