diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2fa2b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# File di stato locali +*.tfstate +*.tfstate.* + +# Cartella che contiene i plugin +.terraform/ + +# File di crash +crash.log diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl new file mode 100644 index 0000000..c234021 --- /dev/null +++ b/.terraform.lock.hcl @@ -0,0 +1,24 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/telmate/proxmox" { + version = "3.0.1-rc2" + constraints = "3.0.1-rc2" + hashes = [ + "h1:FoQkRJvBaRnfmHbDQAuwdvd9sSoFM+UKDkX5UBg6fdc=", + "zh:0158ecead8265f79ca069fcb7e9c07283545f90a09abe8a28a5944c2c9b8dc89", + "zh:04731d141b77b0072bf650ee91670594f3ec93cf01c2612a5a3eecbda01e745e", + "zh:06460b2b32b06684f3ce8416d328868cdc26f88c1e0379522fdf797ba7072ccf", + "zh:15e9ece8a8106e32fa842f84494952298a24883b6dc164acdc375594ed4c3840", + "zh:2ff19ed9d1b36d4890b3c036fa027f831889535e9e9c6bf7aa185423e620d93c", + "zh:45efb6d48df0cab681677fa58557b964cbaec6b5a5acc5ff19f446760670c4ea", + "zh:554351399ef605a708653d7d716ecc36d39e85088c37435b7f391a841e1bee93", + "zh:5b78fe1f4e796cb56cbc6fc7e43e95d2ad0f46f86cb2a4795c617c73681f5374", + "zh:61a379c5380f69d474b8a22fedd68f34e7df57ab24fdfcd0336a3a88e9d1706a", + "zh:73cf31280728ee48b645c537de89881788c6e6aa6a9a2a9a09ec4510f594db2e", + "zh:85e2f22617fa1450deeaefffe6d455f26054ab8a9a6a1eb1a5c50b51703304ec", + "zh:a0cc2bd9581fcddc1f64692c9c431c652e4e0edc035a357aa1279788a8d580d0", + "zh:b99a25084d77075dce5b32604953e4266fc8cdda9ec00cbb06f886331743b492", + "zh:bcaace9bec999f869ecc308075c98139a5762b4a4f45541c7b59aa3df4f7484d", + ] +} diff --git a/cloud-init-control-plane.yaml b/cloud-init-control-plane.yaml new file mode 100644 index 0000000..bafdbe3 --- /dev/null +++ b/cloud-init-control-plane.yaml @@ -0,0 +1,35 @@ +#cloud-config +package_update: true +package_upgrade: true +packages: + - apt-transport-https + - ca-certificates + - curl + - containerd + +runcmd: + # Disabilita swap (richiesto da kubelet) + - swapoff -a + - sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab + + # Carica moduli del kernel e imposta sysctl + - modprobe overlay + - modprobe br_netfilter + - echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf + - echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf + - sysctl -p + + # Installa Kubernetes + - curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg + - echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | tee /etc/apt/sources.list.d/kubernetes.list + - apt-get update + - apt-get install -y kubelet=${k8s_version} kubeadm=${k8s_version} kubectl=${k8s_version} + - apt-mark hold kubelet kubeadm kubectl + + # Inizializza il cluster con kubeadm + - kubeadm init --pod-network-cidr=${pod_network_cidr} --apiserver-advertise-address=${advertise_ip} + + # Configura kubectl per l'utente 'ubuntu' (o il tuo utente di default nel template) + - mkdir -p /home/ubuntu/.kube + - cp -i /etc/kubernetes/admin.conf /home/ubuntu/.kube/config + - chown -R ubuntu:ubuntu /home/ubuntu/.kube diff --git a/cloud-init-script.yaml b/cloud-init-script.yaml new file mode 100644 index 0000000..392b74e --- /dev/null +++ b/cloud-init-script.yaml @@ -0,0 +1,25 @@ +#cloud-config +runcmd: + - swapoff -a + - sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab + - apt-get update -y + - apt-get install -y apt-transport-https ca-certificates curl containerd + - modprobe overlay + - modprobe br_netfilter + - | + cat <