-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathVagrantfile
67 lines (62 loc) · 2.36 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
IMAGE_NAME = "bento/ubuntu-18.04"
IMAGE_VERSION = "202012.21.0"
N = 1
CNI_PLUGIN = "calico"
DOCKER_VERSION = "5:18.09"
K8S_VERSION = "1.17"
$kubeadmConfigCopy = <<-SCRIPT
echo "copy /etc/kubernetes/admin.conf"
cp /etc/kubernetes/admin.conf /vagrant
SCRIPT
$k8sAutocomplete = <<-SCRIPT
sudo apt-get install bash-completion
echo 'source <(kubectl completion bash)' >>/home/vagrant/.bashrc
echo 'alias k=kubectl' >>/home/vagrant/.bashrc
echo 'complete -F __start_kubectl k' >>/home/vagrant/.bashrc
SCRIPT
Vagrant.configure("2") do |config|
config.ssh.insert_key = false
config.vm.define "k8s-master" do |master|
master.vm.provider "virtualbox" do |v|
v.memory = 1500
v.cpus = 2
end
master.vm.box = IMAGE_NAME
master.vm.box_version = IMAGE_VERSION
master.vm.network "private_network", ip: "192.168.50.10"
master.vm.hostname = "k8s-master"
master.vm.provision "ansible_local" do |ansible|
ansible.playbook_command = "sudo ANSIBLE_FORCE_COLOR=true ansible-playbook"
ansible.playbook = "provision/kubernetes-setup/master-playbook.yml"
ansible.extra_vars = {
node_ip: "192.168.50.10",
cni_plugin: CNI_PLUGIN,
docker_version: DOCKER_VERSION,
k8s_version: K8S_VERSION,
}
end
master.vm.provision "shell", inline: $kubeadmConfigCopy
master.vm.provision "shell", inline: $k8sAutocomplete
end
(1..N).each do |i|
config.vm.define "node-#{i}" do |node|
node.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
end
node.vm.box = IMAGE_NAME
node.vm.box_version = IMAGE_VERSION
node.vm.network "private_network", ip: "192.168.50.#{i + 10}"
node.vm.hostname = "node-#{i}"
node.vm.provision "ansible_local" do |ansible|
ansible.playbook_command = "sudo ANSIBLE_FORCE_COLOR=true ansible-playbook"
ansible.playbook = "provision/kubernetes-setup/node-playbook.yml"
ansible.extra_vars = {
node_ip: "192.168.50.#{i + 10}",
docker_version: DOCKER_VERSION,
k8s_version: K8S_VERSION,
}
end
end
end
end