diff --git a/TERRAFORM.GITLAB.RKE/main.tf b/TERRAFORM.GITLAB.RKE/main.tf index c789617..83cb048 100644 --- a/TERRAFORM.GITLAB.RKE/main.tf +++ b/TERRAFORM.GITLAB.RKE/main.tf @@ -33,3 +33,39 @@ resource "proxmox_vm_qemu" "master" { nameserver = var.dnsserver sshkeys = var.sshkeys } + +resource "proxmox_vm_qemu" "node" { + count = var.node.count + ciuser = "administrator" + vmid = "${var.vlan}${var.node.ip[count.index]}" + name = "rke-m-${var.appname}${format("%02d", count.index + 1)}" + target_node = var.node.node[count.index] + clone = var.node.template + qemu_os = "other" + full_clone = true + agent = 1 + cores = var.node.cores + sockets = 1 + cpu = "host" + memory = var.node.memory + scsihw = "virtio-scsi-pci" + bootdisk = "scsi0" + boot = "c" + onboot = false + network { + model = "virtio" + bridge = var.bridge + tag = var.vlan + firewall = false + } + lifecycle { + ignore_changes = [ + network, + ] + } + #Cloud Init Settings + ipconfig0 = "ip=192.168.${var.vlan}.${var.node.ip[count.index]}/24,gw=192.168.${var.vlan}.1" + searchdomain = var.searchdomain + nameserver = var.dnsserver + sshkeys = var.sshkeys +} diff --git a/TERRAFORM.GITLAB.RKE/variables.tf b/TERRAFORM.GITLAB.RKE/variables.tf index 45a62fe..21f8e9d 100644 --- a/TERRAFORM.GITLAB.RKE/variables.tf +++ b/TERRAFORM.GITLAB.RKE/variables.tf @@ -46,3 +46,14 @@ variable "master" { }) } +variable "node" { + description = "Defaults of worker nodes in K3S" + type = object({ + count = number + template = string + cores = number + memory = number + node = list(string) + ip = list(number) + }) +} diff --git a/TERRAFORM.GITLAB.RKE/variables.tfvars b/TERRAFORM.GITLAB.RKE/variables.tfvars index cab3faf..218a1b9 100644 --- a/TERRAFORM.GITLAB.RKE/variables.tfvars +++ b/TERRAFORM.GITLAB.RKE/variables.tfvars @@ -14,6 +14,14 @@ master = { ip = [#{master-ip}] } +node = { + count = #{node-count} + template = "#{node-template}" + cores = #{node-cores} + memory = "#{node-memory}" + node = [#{node-node}] + ip = [#{node-ip}] +} pm_api_url = "#{pm_api_url}" pm_api_token_id = "#{pm_api_token_id}" pm_api_token_secret = "#{pm_api_token_secret}"