aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorMartin André <m.andre@redhat.com>2015-11-18 16:43:45 +0900
committerMartin André <m.andre@redhat.com>2015-11-18 22:39:06 +0900
commit988ee296d61166ba6523d819edc0dbaf410859a3 (patch)
tree2d92b4c6ec7f735852e7f4d3298a306c4726fe8d /dev
parentd1a0aa76eabae2a41266299ebf4ccc10f3b3a3e2 (diff)
downloadkolla-988ee296d61166ba6523d819edc0dbaf410859a3.tar.gz
kolla-988ee296d61166ba6523d819edc0dbaf410859a3.zip
Factor out definition of nodes in Vagrantfile
All the nodes, with the exception of the operator, are build the same with maybe different specs. We can remove the duplication with a bit of metaprogramming. Also pass all expected arguments to the provisionning script,and get rid of hardcoded path to it. Closes-Bug: #1517476 Change-Id: I515ef1d529d7ec49038662001a3e5345a941fea7
Diffstat (limited to 'dev')
-rw-r--r--dev/vagrant/Vagrantfile76
1 files changed, 15 insertions, 61 deletions
diff --git a/dev/vagrant/Vagrantfile b/dev/vagrant/Vagrantfile
index d8e06c25d..7c36613ec 100644
--- a/dev/vagrant/Vagrantfile
+++ b/dev/vagrant/Vagrantfile
@@ -57,7 +57,7 @@ NODE_SETTINGS = {
cpus: 1,
memory: 1024
},
- controller: {
+ control: {
cpus: 1,
memory: 2048
},
@@ -149,67 +149,21 @@ Vagrant.configure(2) do |config|
end
if MULTINODE
- # Build compute nodes
- (1..NUMBER_OF_COMPUTE_NODES).each do |i|
- config.vm.define "compute0#{i}" do |compute|
- compute.vm.hostname = "compute0#{i}.local"
- compute.vm.provision :shell, path: "bootstrap.sh"
- compute.vm.synced_folder "storage/compute/", "/data/host", create:"True", type: get_default(:sync_method)
- compute.vm.synced_folder "storage/shared/", "/data/shared", create:"True", type: get_default(:sync_method)
- compute.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
- compute.vm.provider PROVIDER do |vm|
- vm.memory = get_setting(:compute, :memory)
- vm.cpus = get_setting(:compute, :cpus)
+ ['compute', 'storage', 'network', 'control'].each do |node_type|
+ (1..self.class.const_get("NUMBER_OF_#{node_type.upcase}_NODES")).each do |i|
+ hostname = "#{node_type}0#{i}"
+ config.vm.define hostname do |node|
+ node.vm.hostname = "#{hostname}.local"
+ node.vm.provision :shell, path: get_default(:provision_script), args: "#{hostname} multinode #{get_default(:kolla_path)}"
+ node.vm.synced_folder "storage/#{node_type}/", "/data/host", create:"True", type: get_default(:sync_method)
+ node.vm.synced_folder "storage/shared/", "/data/shared", create:"True", type: get_default(:sync_method)
+ node.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
+ node.vm.provider PROVIDER do |vm|
+ vm.memory = get_setting(node_type.to_sym, :memory)
+ vm.cpus = get_setting(node_type.to_sym, :cpus)
+ end
+ node.hostmanager.aliases = hostname
end
- compute.hostmanager.aliases = "compute0#{i}"
- end
- end
-
- # Build storage nodes
- (1..NUMBER_OF_STORAGE_NODES).each do |i|
- config.vm.define "storage0#{i}" do |storage|
- storage.vm.hostname = "storage0#{i}.local"
- storage.vm.provision :shell, path: "bootstrap.sh"
- storage.vm.synced_folder "storage/storage/", "/data/host", create:"True", type: get_default(:sync_method)
- storage.vm.synced_folder "storage/shared/", "/data/shared", create:"True", type: get_default(:sync_method)
- storage.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
- storage.vm.provider PROVIDER do |vm|
- vm.memory = get_setting(:storage, :memory)
- vm.cpus = get_setting(:storage, :cpus)
- end
- storage.hostmanager.aliases = "storage0#{i}"
- end
- end
-
- # Build network nodes
- (1..NUMBER_OF_NETWORK_NODES).each do |i|
- config.vm.define "network0#{i}" do |network|
- network.vm.hostname = "network0#{i}.local"
- network.vm.provision :shell, path: "bootstrap.sh"
- network.vm.synced_folder "storage/network/", "/data/host", create:"True", type: get_default(:sync_method)
- network.vm.synced_folder "storage/shared/", "/data/shared", create:"True", type: get_default(:sync_method)
- network.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
- network.vm.provider PROVIDER do |vm|
- vm.memory = get_setting(:network, :memory)
- vm.cpus = get_setting(:network, :cpus)
- end
- network.hostmanager.aliases = "network0#{i}"
- end
- end
-
- # Build control nodes
- (1..NUMBER_OF_CONTROL_NODES).each do |i|
- config.vm.define "control0#{i}" do |control|
- control.vm.hostname = "control0#{i}.local"
- control.vm.provision :shell, path: "bootstrap.sh"
- control.vm.synced_folder "storage/control/", "/data/host", create:"True", type: get_default(:sync_method)
- control.vm.synced_folder "storage/shared/", "/data/shared", create:"True", type: get_default(:sync_method)
- control.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
- control.vm.provider PROVIDER do |vm|
- vm.memory = get_setting(:controller, :memory)
- vm.cpus = get_setting(:controller, :cpus)
- end
- control.hostmanager.aliases = "control0#{i}"
end
end
end