diff options
Diffstat (limited to 'opentofu/main.tf')
-rw-r--r-- | opentofu/main.tf | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/opentofu/main.tf b/opentofu/main.tf index ff9f945..1cbd21f 100644 --- a/opentofu/main.tf +++ b/opentofu/main.tf @@ -59,4 +59,109 @@ module "ansible_provision_docker_server" { ansible_playbook_path = var.docker_ansible_playbook_path depends_on = [proxmox_virtual_environment_vm.docker_server] } + +# Master Node (Control Plane) +resource "proxmox_virtual_environment_vm" "k3s_master" { + count = 1 + name = "k3s-master-${count.index}" + node_name = var.proxmox_node + tags = ["ubuntu", "k8s", "k3s_master"] + + clone { + vm_id = var.ubuntu_server_noble_packer_image_id + full = true + } + + agent { + enabled = true # Qemu Guest Agent + } + + cpu { + cores = 2 + sockets = 1 + type = "host" + } + + memory { + dedicated = 4096 + } + + disk { + interface = "virtio0" + datastore_id = "local-lvm" + size = 20 + discard = "on" + iothread = true + } + + network_device { + bridge = "vmbr0" + model = "virtio" + } + + initialization { + ip_config { + ipv4 { + address = "dhcp" + } + } + + user_account { + username = var.vm_username + keys = [var.ssh_public_key] + } + } +} + +# Worker Nodes +resource "proxmox_virtual_environment_vm" "k3s_worker" { + count = 2 + name = "k3s-worker-${count.index}" + node_name = var.proxmox_node + tags = ["debian", "k8s", "k3s_worker"] + + clone { + vm_id = var.debian_server_bookworm_packer_image_id + full = true + } + + agent { + enabled = true # Qemu Guest Agent + } + + cpu { + cores = 1 + sockets = 1 + type = "host" + } + + memory { + dedicated = 2048 + } + + disk { + interface = "virtio0" + datastore_id = "local-lvm" + size = 20 + discard = "on" + iothread = true + } + + network_device { + bridge = "vmbr0" + model = "virtio" + } + + initialization { + ip_config { + ipv4 { + address = "dhcp" + } + } + + user_account { + username = var.vm_username + keys = [var.ssh_public_key] + } + } } |