Added alpine

This commit is contained in:
2026-02-24 20:04:14 +01:00
parent e494dd72b6
commit 8acff0b132
11 changed files with 107 additions and 107 deletions

78
Vagrantfile vendored
View File

@@ -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.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
config.vm.box = "generic/alpine318"
# 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
controlplane.vm.provider "virtualbox" do |vb|
vb.memory = 2048 # Memoria RAM asignada
vb.cpus = 2 # Número de CPUs asignades
end
server.vm.provision "shell", inline: server_script
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
View File

@@ -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

View File

@@ -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=

View File

@@ -1 +0,0 @@
K106349e1274bcf1422b73b226859adefe8a1e978dd5f43cf9422c4b77c2f336c82::server:741f508710413e9ee1d6b2fe7dc57421

18
shared/k3s.yaml Normal file
View 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
View File

@@ -0,0 +1 @@
K104df2ab6b6b17d704be68af2b1519a760609b1bde4fad270bcb90ee1f93f036df::server:732912b8e33f50d7dac6222189df941e

46
ubuntu/Vagrantfile vendored Normal file
View 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