57 lines
1.6 KiB
Ruby
57 lines
1.6 KiB
Ruby
|
# Controlled by puppet
|
||
|
# -*- mode: ruby -*-
|
||
|
# vi: set ft=ruby :
|
||
|
|
||
|
ENV["VAGRANT_DEFAULT_PROVIDER"] = "libvirt"
|
||
|
|
||
|
$num_instances = 7
|
||
|
$vm_memory = 2048
|
||
|
$vm_cpus = 2
|
||
|
|
||
|
$user = "adidenko"
|
||
|
$public_subnet = "10.210.0"
|
||
|
$private_subnet = "10.210.1"
|
||
|
$mgmt_cidr = "10.210.2.0/24"
|
||
|
|
||
|
$instance_name_prefix = "#{$user}-k8s"
|
||
|
# Boxes with libvirt provider support:
|
||
|
#$box = "yk0/ubuntu-xenial" #900M
|
||
|
#$box = "centos/7"
|
||
|
$box = "nrclark/xenial64-minimal-libvirt"
|
||
|
|
||
|
Vagrant.configure("2") do |config|
|
||
|
(1..$num_instances).each do |i|
|
||
|
if i == 1
|
||
|
bootstrap_script = "bootstrap-master.sh"
|
||
|
else
|
||
|
bootstrap_script = "bootstrap-node.sh"
|
||
|
end
|
||
|
config.ssh.insert_key = false
|
||
|
vm_name = "%s-%02d" % [$instance_name_prefix, i]
|
||
|
config.vm.define vm_name do |test_vm|
|
||
|
test_vm.vm.box = $box
|
||
|
test_vm.vm.hostname = vm_name
|
||
|
test_vm.vm.provider :libvirt do |domain|
|
||
|
domain.uri = "qemu+unix:///system"
|
||
|
domain.memory = $vm_memory
|
||
|
domain.cpus = $vm_cpus
|
||
|
domain.driver = "kvm"
|
||
|
domain.host = "localhost"
|
||
|
domain.connect_via_ssh = false
|
||
|
domain.username = $user
|
||
|
domain.storage_pool_name = "default"
|
||
|
domain.nic_model_type = "e1000"
|
||
|
domain.management_network_name = "#{$instance_name_prefix}-mgmt-net"
|
||
|
domain.management_network_address = $mgmt_cidr
|
||
|
end
|
||
|
|
||
|
test_vm.vm.network :private_network, :ip => "#{$private_subnet}.#{i+10}"
|
||
|
|
||
|
# Provisioning
|
||
|
config.vm.provision "file", source: "ssh", destination: "~/ssh"
|
||
|
config.vm.provision :shell, :path => bootstrap_script
|
||
|
|
||
|
end
|
||
|
end
|
||
|
end
|