terraform { required_providers { proxmox = { source = "Telmate/proxmox" version = "3.0.2-rc04" } random = { source = "hashicorp/random" version = "3.7.2" } kubernetes = { source = "hashicorp/kubernetes" version = "2.38.0" } helm = { source = "hashicorp/helm" version = "3.0.2" } } } provider "proxmox" { pm_api_url = var.proxmox_url pm_user = var.proxmox_user pm_password = var.proxmox_password pm_tls_insecure = var.proxmox_tls_insecure } # ---------------------- # Generate k3s token # ---------------------- resource "random_password" "k3s_token" { length = 32 special = false } # ---------------------- # Controller VM # ---------------------- resource "proxmox_vm_qemu" "controller" { name = "k3s-controller" target_node = var.target_nodes["controller"] clone_id = var.template_id full_clone = true cpu { cores = 2 sockets = 1 } memory = 1024 scsihw = "virtio-scsi-pci" disks { scsi { scsi0 { disk { storage = var.storage size = "20G" } } } ide { ide1 { cloudinit { storage = var.storage } } } } network { id = 0 model = "virtio" bridge = var.bridge } ipconfig0 = "ip=${var.controller_ip}/${var.netmask},gw=${var.gateway}" ciuser = var.admin_user cipassword = var.admin_password sshkeys = var.ssh_public_key cicustom = <