From 0e141e4b27a89f03b2d0d844f8d45a428b32b6de Mon Sep 17 00:00:00 2001 From: DeveloperDurp Date: Mon, 18 Dec 2023 07:56:18 -0600 Subject: [PATCH] initial commit --- TERRAFORM.PROXMOX.RKE/defaults.tf | 18 +++++++++++ TERRAFORM.PROXMOX.RKE/main.tf | 35 ++++++++++++++++++++++ TERRAFORM.PROXMOX.RKE/variables.tf | 48 ++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 TERRAFORM.PROXMOX.RKE/defaults.tf create mode 100644 TERRAFORM.PROXMOX.RKE/main.tf create mode 100644 TERRAFORM.PROXMOX.RKE/variables.tf diff --git a/TERRAFORM.PROXMOX.RKE/defaults.tf b/TERRAFORM.PROXMOX.RKE/defaults.tf new file mode 100644 index 0000000..72fcb2d --- /dev/null +++ b/TERRAFORM.PROXMOX.RKE/defaults.tf @@ -0,0 +1,18 @@ +terraform { + backend "http" {} + required_providers { + proxmox = { + source = "TheGameProfi/proxmox" + version = "2.9.15" + } + } +} + +provider "proxmox" { + pm_parallel = 3 + pm_tls_insecure = false + pm_api_url = var.pm_api_url + pm_api_token_id = var.pm_api_token_id + pm_api_token_secret = var.pm_api_token_secret + pm_debug = false +} diff --git a/TERRAFORM.PROXMOX.RKE/main.tf b/TERRAFORM.PROXMOX.RKE/main.tf new file mode 100644 index 0000000..0fe7859 --- /dev/null +++ b/TERRAFORM.PROXMOX.RKE/main.tf @@ -0,0 +1,35 @@ +resource "proxmox_vm_qemu" "master" { + count = var.master.count + ciuser = "administrator" + vmid = "${var.vlan}${var.master.ip[count.index]}" + name = "rke-m-${var.appname}${format("%02d", count.index + 1)}" + target_node = var.master.node[count.index] + clone = var.master.template + qemu_os = "other" + full_clone = true + agent = 1 + cores = var.master.cores + sockets = 1 + cpu = "host" + memory = var.master.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.20.${var.master.ip[count.index]}/24,gw=192.168.20.1" + searchdomain = var.searchdomain + nameserver = var.dnsserver + sshkeys = var.sshkeys +} diff --git a/TERRAFORM.PROXMOX.RKE/variables.tf b/TERRAFORM.PROXMOX.RKE/variables.tf new file mode 100644 index 0000000..29fae9e --- /dev/null +++ b/TERRAFORM.PROXMOX.RKE/variables.tf @@ -0,0 +1,48 @@ +variable "dnsserver" { + type = string +} + +variable "sshkeys" { + type = string +} + +variable "vlan" { + type = number +} + +variable "bridge" { + type = string +} + +variable "appname" { + type = string +} + +variable "searchdomain" { + type = string +} + +variable "pm_api_url" { + type = string +} + +variable "pm_api_token_id" { + type = string +} + +variable "pm_api_token_secret" { + type = string +} + +variable "master" { + description = "Defaults of master nodes in K3S" + type = object({ + count = number + template = string + cores = number + memory = number + node = list(string) + ip = list(number) + }) +} +