You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.6 KiB
Ruby
64 lines
1.6 KiB
Ruby
K3S_SERVER_COUNT = 3
|
|
K3S_AGENT_COUNT = 0
|
|
K3S_VERSION = "v1.21.1+k3s1"
|
|
K3S_TOKEN = "VeryCrypticToken"
|
|
|
|
Vagrant.configure("2") do |config|
|
|
|
|
# libvirt
|
|
config.vm.provider "libvirt" do |lv|
|
|
lv.cpus = 2
|
|
lv.memory = 2048
|
|
# libvirt.qemu_use_session = false
|
|
end
|
|
|
|
# virtualbox
|
|
config.vm.provider "virtualbox" do |vb|
|
|
vb.cpus = 2
|
|
vb.memory = 2048
|
|
vb.linked_clone = true
|
|
end
|
|
|
|
# hyper-v
|
|
config.vm.provider "hyperv" do |hv|
|
|
hv.cpus = 2
|
|
hv.memory = "1024"
|
|
hv.maxmemory = "2048"
|
|
hv.linked_clone = true
|
|
end
|
|
|
|
config.vm.box = "fedora/34-cloud-base"
|
|
|
|
# k3s server machines
|
|
(1..K3S_SERVER_COUNT).each do |i|
|
|
config.vm.define "k3s_server#{i}" do |server|
|
|
server.vm.hostname = "k3s-server#{i}"
|
|
end
|
|
end
|
|
|
|
# k3s agent machines
|
|
(1..K3S_AGENT_COUNT).each do |i|
|
|
config.vm.define "k3s_agent#{i}" do |agent|
|
|
agent.vm.hostname = "k3s-agent#{i}"
|
|
end
|
|
end
|
|
|
|
# provision
|
|
config.vm.provision "ansible" do |cluster|
|
|
cluster.playbook = "k3s_cluster.yml"
|
|
cluster.compatibility_mode = "2.0"
|
|
cluster.groups = {
|
|
"k3s_cluster:children" => ["k3s_servers", "k3s_agents"],
|
|
"k3s_cluster:vars" => {"k3s_token" => K3S_TOKEN,
|
|
"k3s_version" => K3S_VERSION },
|
|
"k3s_servers" => ["k3s_server[1:#{K3S_SERVER_COUNT}]"],
|
|
"k3s_servers:vars" => {"k3s_role" => "server"},
|
|
"k3s_agents" => ["k3s_agent1", "k3s_agent2", "k3s_agent3"],
|
|
"k3s_agents:vars" => {"k3s_role" => "agent"}
|
|
}
|
|
cluster.host_vars = {
|
|
"k3s_server1" => {"first_node" => true}
|
|
}
|
|
end
|
|
end
|