| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  | ENV['VAGRANT_NO_PARALLEL'] = 'yes' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-17 16:32:18 -04:00
										 |  |  | num_workers = ENV['TINKERBELL_NUM_WORKERS'] || '1' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-22 21:40:51 -04:00
										 |  |  | # Returns true if `GUI` environment variable exists, value does not matter. | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  | # Defaults to false | 
					
						
							|  |  |  | def worker_gui_enabled? | 
					
						
							| 
									
										
										
										
											2020-09-22 21:40:51 -04:00
										 |  |  |   ENV.include?('VAGRANT_WORKER_GUI') | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Returns true if `SCALE` environment variable exists, value does not matter. | 
					
						
							|  |  |  | # Defaults to false | 
					
						
							|  |  |  | def worker_display_scale_enabled? | 
					
						
							|  |  |  |   ENV.include?('VAGRANT_WORKER_SCALE') | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-17 16:32:18 -04:00
										 |  |  | def configure_nat | 
					
						
							|  |  |  |   return ENV.has_key?('TINKERBELL_CONFIGURE_NAT') ? ENV['TINKERBELL_CONFIGURE_NAT'] : 'true' | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def libvirt_forward_mode | 
					
						
							|  |  |  |   return configure_nat == 'false' ? 'nat' : 'none' | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  | Vagrant.configure('2') do |config| | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config.vm.define :provisioner do |provisioner| | 
					
						
							| 
									
										
										
										
											2021-01-27 23:07:57 +01:00
										 |  |  |     provisioner.vm.box = "tinkerbelloss/sandbox-ubuntu1804" | 
					
						
							| 
									
										
										
										
											2021-05-03 18:00:39 +00:00
										 |  |  |     provisioner.vm.box_version = "0.2.0" | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |     provisioner.vm.hostname = 'provisioner' | 
					
						
							|  |  |  |     provisioner.vm.synced_folder './../../', '/vagrant' | 
					
						
							| 
									
										
										
										
											2021-03-17 16:32:18 -04:00
										 |  |  |     provisioner.vm.provision :shell, | 
					
						
							|  |  |  |                         path: './scripts/tinkerbell.sh', | 
					
						
							|  |  |  |                         env: { | 
					
						
							|  |  |  |                           'TINKERBELL_CONFIGURE_NAT': configure_nat, | 
					
						
							|  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     provisioner.vm.network :private_network, | 
					
						
							|  |  |  |                         virtualbox__intnet: "tink_network", | 
					
						
							| 
									
										
										
										
											2021-01-22 09:17:19 -05:00
										 |  |  |                         libvirt__network_name: "tink_network", | 
					
						
							|  |  |  |                         libvirt__host_ip: "192.168.1.6", | 
					
						
							|  |  |  |                         libvirt__netmask: "255.255.255.248", | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |                         libvirt__dhcp_enabled: false, | 
					
						
							| 
									
										
										
										
											2021-03-17 16:32:18 -04:00
										 |  |  |                         libvirt__forward_mode: libvirt_forward_mode, | 
					
						
							| 
									
										
										
										
											2021-01-22 09:17:19 -05:00
										 |  |  |                         libvirt__adapter: 1, | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |                         auto_config: false | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     provisioner.vm.network "forwarded_port", guest: 42113, host: 42113
 | 
					
						
							|  |  |  |     provisioner.vm.network "forwarded_port", guest: 42114, host: 42114
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     provisioner.vm.provider :libvirt do |lv, override| | 
					
						
							|  |  |  |       lv.memory = 2*1024
 | 
					
						
							|  |  |  |       lv.cpus = 2
 | 
					
						
							|  |  |  |       lv.cpu_mode = 'host-passthrough' | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     provisioner.vm.provider :virtualbox do |vb, override| | 
					
						
							|  |  |  |       vb.memory = 2*1024
 | 
					
						
							|  |  |  |       vb.cpus = 2
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-17 16:32:18 -04:00
										 |  |  |   (1..num_workers.to_i).each do |i| | 
					
						
							|  |  |  |     mac_suffix = "%02x" % i | 
					
						
							|  |  |  |     worker_suffix = i==1 ? "" : "i" | 
					
						
							|  |  |  |     config.vm.define "worker#{worker_suffix}" do |worker| | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       worker.vm.box = nil | 
					
						
							|  |  |  |       worker.vm.network :private_network, | 
					
						
							|  |  |  |                         mac: "0800270000#{mac_suffix}", | 
					
						
							|  |  |  |                         virtualbox__intnet: "tink_network", | 
					
						
							|  |  |  |                         libvirt__network_name: "tink_network", | 
					
						
							|  |  |  |                         libvirt__dhcp_enabled: false, | 
					
						
							|  |  |  |                         libvirt__forward_mode: libvirt_forward_mode, | 
					
						
							|  |  |  |                         auto_config: false | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       worker.vm.provider :libvirt do |lv| | 
					
						
							|  |  |  |         lv.memory = 4*1024
 | 
					
						
							|  |  |  |         lv.cpus = 1
 | 
					
						
							|  |  |  |         lv.boot 'network' | 
					
						
							|  |  |  |         lv.mgmt_attach = false | 
					
						
							|  |  |  |         lv.storage :file, :size => '40G' | 
					
						
							|  |  |  |         lv.random :model => 'random' | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       worker.vm.provider :virtualbox do |vb, worker| | 
					
						
							|  |  |  |         worker.vm.box = 'generic/alpine38' | 
					
						
							|  |  |  |         vb.memory = 4*1024
 | 
					
						
							|  |  |  |         vb.cpus = 1
 | 
					
						
							|  |  |  |         vb.gui = worker_gui_enabled? | 
					
						
							|  |  |  |         vb.customize [ | 
					
						
							|  |  |  |           'setextradata', :id, | 
					
						
							|  |  |  |           'GUI/ScaleFactor', '3.0' | 
					
						
							|  |  |  |         ] if worker_display_scale_enabled? | 
					
						
							|  |  |  |         vb.customize [ | 
					
						
							|  |  |  |           'modifyvm', :id, | 
					
						
							|  |  |  |           '--nic1', 'none', | 
					
						
							|  |  |  |           '--boot1', 'net', | 
					
						
							|  |  |  |           '--boot2', 'none', | 
					
						
							|  |  |  |           '--boot3', 'none', | 
					
						
							|  |  |  |           '--boot4', 'none', | 
					
						
							|  |  |  |           '--macaddress1', "0800270000#{mac_suffix}" | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |