-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
60 lines (55 loc) · 2.91 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
domain = "kubernetes.lab"
control_plane_endpoint = "cilium-master"
pod_network_cidr = "10.40.0.0/16"
service_cidr= "10.64.0.0/20"
pod_network_type = "cilium" # choose between cilium and calico
master_node_ip = "192.168.58.100"
version = "1.26.1"
Vagrant.configure("2") do |config|
# always use Vagrants insecure key
config.ssh.insert_key = false
# forward ssh agent to easily ssh into the different machines
config.ssh.forward_agent = true
config.vm.provision :shell, path: "kubeadm/bootstrap.sh", env: { "VERSION" => version }
config.vm.define "master", primary: true do |master|
master.vm.box = "oraclebase/oracle-9"
master.vm.hostname = "cilium-master.#{domain}"
master.vm.network "public_network", ip: "#{master_node_ip}"
master.vm.provision "shell", env: {"DOMAIN" => domain, "MASTER_NODE_IP" => master_node_ip} ,inline: <<-SHELL
echo "$MASTER_NODE_IP cilium-master.$DOMAIN cilium-master" >> /etc/hosts
SHELL
(1..2).each do |nodeIndex|
master.vm.provision "shell", env: {"DOMAIN" => domain, "NODE_INDEX" => nodeIndex}, inline: <<-SHELL
echo "192.168.58.10$NODE_INDEX cilium-worker-$NODE_INDEX.$DOMAIN cilium-worker-$NODE_INDEX" >> /etc/hosts
SHELL
end
master.vm.provision "shell", path:"kubeadm/init-master.sh", env: {"K8S_CONTROL_PLANE_ENDPOINT" => control_plane_endpoint, "K8S_POD_NETWORK_CIDR" => pod_network_cidr, "K8S_SERVICE_CIDR" => service_cidr, "K8S_POD_NETWORK_TYPE" => pod_network_type, "MASTER_NODE_IP" => master_node_ip}
end
(1..2).each do |nodeIndex|
config.vm.define "worker-#{nodeIndex}" do |worker|
worker.vm.box = "oraclebase/oracle-9"
worker.vm.hostname = "cilium-worker-#{nodeIndex}.#{domain}"
worker.vm.network "public_network", ip: "192.168.58.10#{nodeIndex}"
worker.vm.provision "shell", env: {"DOMAIN" => domain, "MASTER_NODE_IP" => master_node_ip} ,inline: <<-SHELL
echo "$MASTER_NODE_IP cilium-master.$DOMAIN cilium-master" >> /etc/hosts
SHELL
(1..2).each do |hostIndex|
worker.vm.provision "shell", env: {"DOMAIN" => domain, "NODE_INDEX" => hostIndex}, inline: <<-SHELL
echo "192.168.58.10$NODE_INDEX cilium-worker-$NODE_INDEX.$DOMAIN cilium-worker-$NODE_INDEX" >> /etc/hosts
SHELL
end
worker.vm.provision "shell", path:"kubeadm/init-worker.sh"
worker.vm.provision "shell", env: {"NODE_INDEX" => nodeIndex, "MASTER_NODE_IP" => master_node_ip}, inline: <<-SHELL
echo ">>> FIX KUBELET NODE IP"
echo "KUBELET_EXTRA_ARGS=\"--node-ip=$MASTER_NODE_IP\"" | sudo tee -a /var/lib/kubelet/kubeadm-flags.env
sudo systemctl daemon-reload
sudo systemctl restart kubelet
SHELL
end
end
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
vb.cpus = "2"
vb.customize ["modifyvm", :id, "--nic1", "nat"]
end
end