Added alpine
This commit is contained in:
80
Vagrantfile
vendored
80
Vagrantfile
vendored
@@ -1,46 +1,52 @@
|
||||
# Configuració Global
|
||||
NUM_WORKER_NODES = 2
|
||||
IP_NW = "10.0.3." # Use the 10.0.3.x subnet for eth1
|
||||
IP_controlplane = "10.0.3.15" # Control plane IP for eth1
|
||||
server_ip = "192.168.33.10"
|
||||
|
||||
agents = { "agent1" => "192.168.33.11",
|
||||
"agent2" => "192.168.33.12",
|
||||
"agent3" => "192.168.33.13" }
|
||||
|
||||
server_script = <<-SHELL
|
||||
apk add --no-cache curl sudo nano
|
||||
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 10 seconds to wait for k3s to start"
|
||||
sleep 10
|
||||
sudo chown vagrant:vagrant /etc/rancher/k3s/k3s.yaml
|
||||
cp /var/lib/rancher/k3s/server/token /vagrant_shared
|
||||
cp /etc/rancher/k3s/k3s.yaml /vagrant_shared
|
||||
SHELL
|
||||
|
||||
agent_script = <<-SHELL
|
||||
apk add --no-cache 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 = "generic/alpine318"
|
||||
|
||||
config.vm.define "controlplane" do |controlplane|
|
||||
controlplane.vm.box = "bento/ubuntu-24.04"
|
||||
controlplane.vm.network "private_network", ip: IP_controlplane # eth1 IP
|
||||
controlplane.vm.hostname = "controlplane"
|
||||
controlplane.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync"
|
||||
controlplane.vm.provision :shell, :path => "k3s_control.sh"
|
||||
|
||||
# Forward necessary ports
|
||||
controlplane.vm.network :forwarded_port, guest: 80, host: 80
|
||||
controlplane.vm.network :forwarded_port, guest: 8080, host: 8080
|
||||
controlplane.vm.network :forwarded_port, guest: 6443, host: 6443
|
||||
controlplane.vm.network :forwarded_port, guest: 8472, host: 8472 # Flannel
|
||||
controlplane.vm.network :forwarded_port, guest: 10250, host: 10250 # Kubelet
|
||||
controlplane.vm.network :forwarded_port, guest: 10256, host: 10256 # Kube Proxy
|
||||
|
||||
# Forward NodePort range
|
||||
for i in 30000..32767
|
||||
controlplane.vm.network :forwarded_port, guest: i, host: i
|
||||
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
|
||||
|
||||
controlplane.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = 2048 # Memoria RAM asignada
|
||||
vb.cpus = 2 # Número de CPUs asignades
|
||||
end
|
||||
end
|
||||
|
||||
# --- Configuració dels WORKERS ---
|
||||
(1..NUM_WORKER_NODES).each do |i|
|
||||
config.vm.define "node0#{i}" do |node|
|
||||
node.vm.box = "bento/ubuntu-24.04"
|
||||
node.vm.network "private_network", ip: IP_NW + "#{15 + i}" # eth1 IPs (10.0.3.16 and 10.0.3.17)
|
||||
node.vm.hostname = "worker-node0#{i}"
|
||||
node.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = 1024 # 1GB per worker
|
||||
vb.cpus = 1
|
||||
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 = "1024"
|
||||
vb.cpus = "1"
|
||||
end
|
||||
agent.vm.provision "shell", inline: agent_script
|
||||
end
|
||||
end
|
||||
end
|
||||
52
alpine/Vagrantfile
vendored
52
alpine/Vagrantfile
vendored
@@ -1,52 +0,0 @@
|
||||
server_ip = "192.168.33.10"
|
||||
|
||||
agents = { "agent1" => "192.168.33.11",
|
||||
"agent2" => "192.168.33.12",
|
||||
"agent3" => "192.168.33.13" }
|
||||
|
||||
server_script = <<-SHELL
|
||||
apk add --no-cache curl sudo nano
|
||||
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 10 seconds to wait for k3s to start"
|
||||
sleep 10
|
||||
sudo chown vagrant:vagrant /etc/rancher/k3s/k3s.yaml
|
||||
cp /var/lib/rancher/k3s/server/token /vagrant_shared
|
||||
cp /etc/rancher/k3s/k3s.yaml /vagrant_shared
|
||||
SHELL
|
||||
|
||||
agent_script = <<-SHELL
|
||||
apk add --no-cache 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 = "generic/alpine314"
|
||||
|
||||
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 = "1024"
|
||||
vb.cpus = "1"
|
||||
end
|
||||
agent.vm.provision "shell", inline: agent_script
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,18 +0,0 @@
|
||||
apiVersion: v1
|
||||
clusters:
|
||||
- cluster:
|
||||
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTnpFNU5UZ3pNRFV3SGhjTk1qWXdNakkwTVRnek9ESTFXaGNOTXpZd01qSXlNVGd6T0RJMQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTnpFNU5UZ3pNRFV3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRTlyMG9LT0g2ZkVZaWhwVTAvRVhFNWtOSkN2djZzSU4zZ3gxczhlQUgKZGYvdmQ0cXhySnNidjVLNUdYZjcvbzhhVkNRd3dyYUhvcEJUa3pCYkJLekZvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVW1YeUpJbDdsUDV3LzFscWdZc2x3CjlkbnROeGN3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUxUdkpNQ1VyWGZDeXgzZ0wxaGhkbEo3ZG9CRkdyK3EKSDJ6NWxkUmRNTDVFQWlCSjJDd1QxZWFRV1F4aUVabWVUekdTYW4yVFZjSDJocGpGYk5RY3VjZEFZdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
server: https://192.168.33.10:6443
|
||||
name: default
|
||||
contexts:
|
||||
- context:
|
||||
cluster: default
|
||||
user: default
|
||||
name: default
|
||||
current-context: default
|
||||
kind: Config
|
||||
users:
|
||||
- name: default
|
||||
user:
|
||||
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJTmhUM3NNV0xaSEF3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOemN4T1RVNE16QTBNQjRYRFRJMk1ESXlOREU0TXpneU5Gb1hEVEkzTURJeQpOREU0TXpneU5Gb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJOdTlrWEF5VnFoYzRhenoKa2RodW8rUTlrc2J3eUNwRmM4cDY2UFhRZmhPTVVuMzNRUEZ3YTZVSDZBQWZRUkdiRFBtZk1nd2RwemxBV2kwUwpNUjZ1QVA2alNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUk5PZFR1TVBlZzVWWXdtYkFwZ2dlRU9FVndJekFLQmdncWhrak9QUVFEQWdOSUFEQkYKQWlBTUVDMG8yazZhQ3ZXZG0wZ1dkYjBJNTJ2T3h1V0JhQ09RZ3FOMVJBK2RqUUloQU5GR2VMM0VkVU5KTFk2WQp5NG5ZM3c1VGFJcytsSUk2bVZpTWtFNSs5a3BiCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTnpFNU5UZ3pNRFF3SGhjTk1qWXdNakkwTVRnek9ESTBXaGNOTXpZd01qSXlNVGd6T0RJMApXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTnpFNU5UZ3pNRFF3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFUNzcrelF0NDBSQ2duZU14eFBLV2t5dWZleStyTE9tNjhiNkZwN2ExOEEKeEd6aGpRTTNjK0VGRnpWVWV2dmZGbUMxRWpBU1psRVV2OEsxOTJOTGdqeXpvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVVRUblU3akQzb09WV01KbXdLWUlICmhEaEZjQ013Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU9jUERBNW11NXNJbHZ4cDIrcUJmRDlxaGhlVHozeUYKaUFQbHY5OEVzbUlLQWlCM0JEbWVqTXd2UExXQWZ5bDBoZ0NSeC8vTnUxTmk1aVNvb0lhTnF4MUszUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU1DT04wN3Jrb1lxNFlKc3JGem0yMHdOakZ1RnZ4QzZmSTcyUkVaS05peTBvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFMjcyUmNESldxRnpoclBPUjJHNmo1RDJTeHZESUtrVnp5bnJvOWRCK0U0eFNmZmRBOFhCcgpwUWZvQUI5QkVac00rWjh5REIybk9VQmFMUkl4SHE0QS9nPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
|
||||
@@ -1 +0,0 @@
|
||||
K106349e1274bcf1422b73b226859adefe8a1e978dd5f43cf9422c4b77c2f336c82::server:741f508710413e9ee1d6b2fe7dc57421
|
||||
18
shared/k3s.yaml
Normal file
18
shared/k3s.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
apiVersion: v1
|
||||
clusters:
|
||||
- cluster:
|
||||
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTnpFNU5UazJNelF3SGhjTk1qWXdNakkwTVRrd01ETTBXaGNOTXpZd01qSXlNVGt3TURNMApXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTnpFNU5UazJNelF3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSbWd1VGNpeDU5a1k4Mk12LzVGU1NYc2FZVzFqSVlzdmtjZWN3OUJxSU8KNHc4dEFlRk1oV1FxN1VCdDhoSU8rRUp0WUlnYWxTUWs5WVdKM3pIRmEzY0lvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVVcrcUtQeExoam1jVkFFWGFoY0N4CnNhMkhMZ013Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU9HWUtyR25zd1ZHVHBaTm5qaE5GUnNYK2t2azdUVEIKU3FYblYvRWdXd3VGQWlFQXZMY1Byb2Mwd2h0Znk4OStRWEl4cWRQM0Z1ZWN4M096TG9weTVwYm5wMlE9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
server: https://192.168.33.10:6443
|
||||
name: default
|
||||
contexts:
|
||||
- context:
|
||||
cluster: default
|
||||
user: default
|
||||
name: default
|
||||
current-context: default
|
||||
kind: Config
|
||||
users:
|
||||
- name: default
|
||||
user:
|
||||
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrRENDQVRlZ0F3SUJBZ0lJVlE4VWpFc3dFRzR3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOemN4T1RVNU5qTTBNQjRYRFRJMk1ESXlOREU1TURBek5Gb1hEVEkzTURJeQpOREU1TURBek5Gb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJPUm11NW5TZEZsMjd0REQKVHZidUlpVGJpR09kaGVpU0FGY2lnWkNESnZFWjRTbzg3djhiV0x5c1kwYnRPMFVpaHllRTdVaG53MWw4L3k5agp4dzJCK2tHalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUUptTGRPbGcwTWo0L1JxRW1SRDMvK21OT1pyVEFLQmdncWhrak9QUVFEQWdOSEFEQkUKQWlCWWZmbDZoYm1TTWlRckJEUHRzckN0ZWRoNm0zaTJucTkzYy8rUElFaldkQUlnZUZiOXNZZEdzYWo1bDVzQQpDY09VU0ZRc1cvUVVBdjBFN3RWbENLTXZaODg9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkakNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTnpFNU5UazJNelF3SGhjTk1qWXdNakkwTVRrd01ETTBXaGNOTXpZd01qSXlNVGt3TURNMApXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTnpFNU5UazJNelF3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFUNmdlY25sYzYxN3pwSW0zWUFsNTdJZ3VZbExGcU53KzVLNkhHbGVqSVcKUXdKRWtUajdyaDAwQitRcmNTZFJ5WFJDUi9FRk5sOGdhTGhDaVluK285ZFhvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVUNaaTNUcFlOREkrUDBhaEprUTkvCi9walRtYTB3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTXFPZ0JBcjl2aEx6QWErVDRJWHh6U1VVT1F0b2FXaWYKV3VXOTlUTkthdk1DSUZMQUl6blQwQXFEdTNxUXVVVWhxc1FlNU1yQUpoUHpqaU5WaHd0M3NKbkMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
|
||||
client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSURncWIzd3pGMkFuY3M3UW5YTGpTcUppd3lZcm9DQzg0bk1LVnQ3MDQwSUJvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFNUdhN21kSjBXWGJ1ME1OTzl1NGlKTnVJWTUyRjZKSUFWeUtCa0lNbThSbmhLanp1L3h0WQp2S3hqUnUwN1JTS0hKNFR0U0dmRFdYei9MMlBIRFlINlFRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
|
||||
1
shared/token
Normal file
1
shared/token
Normal file
@@ -0,0 +1 @@
|
||||
K104df2ab6b6b17d704be68af2b1519a760609b1bde4fad270bcb90ee1f93f036df::server:732912b8e33f50d7dac6222189df941e
|
||||
46
ubuntu/Vagrantfile
vendored
Normal file
46
ubuntu/Vagrantfile
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
# Configuració Global
|
||||
NUM_WORKER_NODES = 2
|
||||
IP_NW = "10.0.3." # Use the 10.0.3.x subnet for eth1
|
||||
IP_controlplane = "10.0.3.15" # Control plane IP for eth1
|
||||
|
||||
Vagrant.configure("2") do |config|
|
||||
|
||||
config.vm.define "controlplane" do |controlplane|
|
||||
controlplane.vm.box = "bento/ubuntu-24.04"
|
||||
controlplane.vm.network "private_network", ip: IP_controlplane # eth1 IP
|
||||
controlplane.vm.hostname = "controlplane"
|
||||
controlplane.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync"
|
||||
controlplane.vm.provision :shell, :path => "k3s_control.sh"
|
||||
|
||||
# Forward necessary ports
|
||||
controlplane.vm.network :forwarded_port, guest: 80, host: 80
|
||||
controlplane.vm.network :forwarded_port, guest: 8080, host: 8080
|
||||
controlplane.vm.network :forwarded_port, guest: 6443, host: 6443
|
||||
controlplane.vm.network :forwarded_port, guest: 8472, host: 8472 # Flannel
|
||||
controlplane.vm.network :forwarded_port, guest: 10250, host: 10250 # Kubelet
|
||||
controlplane.vm.network :forwarded_port, guest: 10256, host: 10256 # Kube Proxy
|
||||
|
||||
# Forward NodePort range
|
||||
for i in 30000..32767
|
||||
controlplane.vm.network :forwarded_port, guest: i, host: i
|
||||
end
|
||||
|
||||
controlplane.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = 2048 # Memoria RAM asignada
|
||||
vb.cpus = 2 # Número de CPUs asignades
|
||||
end
|
||||
end
|
||||
|
||||
# --- Configuració dels WORKERS ---
|
||||
(1..NUM_WORKER_NODES).each do |i|
|
||||
config.vm.define "node0#{i}" do |node|
|
||||
node.vm.box = "bento/ubuntu-24.04"
|
||||
node.vm.network "private_network", ip: IP_NW + "#{15 + i}" # eth1 IPs (10.0.3.16 and 10.0.3.17)
|
||||
node.vm.hostname = "worker-node0#{i}"
|
||||
node.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = 1024 # 1GB per worker
|
||||
vb.cpus = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user