-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
64 lines (56 loc) · 2.01 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
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Based on: https://akos.ma/blog/vagrant-k3s-and-virtualbox/
server_ip = "192.168.56.25"
agents = { "agent1" => "192.168.56.26",
"agent2" => "192.168.56.27" }
server_script = <<-SHELL
sudo -i
apt-get install -y curl
export INSTALL_K3S_EXEC="--bind-address=#{server_ip} --node-external-ip=#{server_ip} --flannel-iface=eth1"
curl -sfL https://get.k3s.io | sh -
echo "Sleeping for 20 seconds to wait for k3s to start"
sleep 20
# Make sure kubectl is set up for the vagrant user
chown -R vagrant:vagrant /etc/rancher/k3s/k3s.yaml
mkdir -p /home/vagrant/.kube
cp /etc/rancher/k3s/k3s.yaml /home/vagrant/.kube/config
chown -R vagrant:vagrant /home/vagrant/.kube/config
cp /var/lib/rancher/k3s/server/token /vagrant_shared
cp /etc/rancher/k3s/k3s.yaml /vagrant_shared
SHELL
agent_script = <<-SHELL
sudo -i
apt-get install -y curl
export K3S_TOKEN_FILE=/vagrant_shared/token
export K3S_URL=https://#{server_ip}:6443
export INSTALL_K3S_EXEC="--flannel-iface=eth1"
curl -sfL https://get.k3s.io | sh -
SHELL
Vagrant.configure("2") do |config|
config.vm.box = "bento/debian-12"
config.vm.box_version = "202407.22.0"
config.vm.box_check_update = false
config.vm.define "server", primary: true do |server|
server.vm.network "private_network", ip: server_ip
server.vm.synced_folder "./Shared", "/vagrant_shared"
server.vm.hostname = "server"
server.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = "2"
end
server.vm.provision "shell", inline: server_script
end
agents.each do |agent_name, agent_ip|
config.vm.define agent_name do |agent|
agent.vm.network "private_network", ip: agent_ip
agent.vm.synced_folder "./Shared", "/vagrant_shared"
agent.vm.hostname = agent_name
agent.vm.provider "virtualbox" do |vb|
vb.memory = "512"
vb.cpus = "1"
end
agent.vm.provision "shell", inline: agent_script
end
end
end