Compare commits

...

10 Commits

Author SHA1 Message Date
c7fca3d29c update 2024-06-30 09:31:12 -05:00
3dd8e5ad77 update 2024-06-30 08:17:34 -05:00
ed9d99f25d update 2024-06-30 08:15:52 -05:00
28228cb305 update 2024-06-30 08:15:05 -05:00
36821e3176 update 2024-06-30 07:57:57 -05:00
a8533355c5 update 2024-06-30 07:55:04 -05:00
d2e8188327 update 2024-06-30 07:46:33 -05:00
5552715093 update 2024-06-30 07:37:47 -05:00
6176f6b9b2 update 2024-06-30 07:32:50 -05:00
a17d0c516c update 2024-06-30 07:31:41 -05:00
2 changed files with 59 additions and 80 deletions

View File

@@ -9,7 +9,7 @@ terraform {
} }
provider "proxmox" { provider "proxmox" {
pm_parallel = 3 pm_parallel = 1
pm_tls_insecure = true pm_tls_insecure = true
pm_api_url = var.pm_api_url pm_api_url = var.pm_api_url
pm_user = var.pm_user pm_user = var.pm_user

View File

@@ -3,61 +3,55 @@ locals {
prd = { prd = {
dnsserver = "192.168.11.1" dnsserver = "192.168.11.1"
tags = "k3s_prd" tags = "k3s_prd"
vlan = 11
k3master = { k3master = {
count = 1 count = 1
name = ["master-prd"] name = ["master-prd"]
cores = 4 cores = 4
memory = "4096" memory = "4096"
drive = "20G" drive = 20
storage = "cache-domains"
template = ["Debian12-Template"]
node = ["overlord"] node = ["overlord"]
ip = ["10"] ip = ["10"]
vlan = 11
} }
k3server = { k3server = {
count = 2 count = 2
name = ["node01-prd", "node02-prd"] name = ["node01-prd", "node02-prd"]
cores = 4 cores = 4
memory = "4096" memory = "4096"
drive = "80G" drive = 80
storage = "cache-domains"
template = ["Debian12-Template", "Debian12-Template"]
node = ["mothership", "mothership"] node = ["mothership", "mothership"]
ip = ["20", "21"] ip = ["20", "21"]
vlan = 11
} }
} }
dev = { dev = {
dnsserver = "192.168.10.1" dnsserver = "192.168.10.1"
tags = "k3s_dev" tags = "k3s_dev"
vlan = 10
k3master = { k3master = {
count = 1 count = 1
name = ["master-dev"] name = ["master-dev"]
cores = 4 cores = 4
memory = "4096" memory = "4096"
drive = "20G" drive = 20
storage = "cache-domains"
template = ["Debian12-Template"]
node = ["overlord"] node = ["overlord"]
ip = ["10"] ip = ["10"]
vlan = 10
} }
k3server = { k3server = {
count = 2 count = 2
name = ["node01-dev", "node02-dev"] name = ["node01-dev", "node02-dev"]
cores = 4 cores = 4
memory = "4096" memory = "4096"
drive = "60G" drive = 60
storage = "cache-domains"
template = ["Debian12-Template", "Debian12-Template"]
node = ["mothership", "mothership"] node = ["mothership", "mothership"]
ip = ["20", "21"] ip = ["20", "21"]
vlan = 10
} }
} }
default = { default = {
sshkeys = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL88nWIyxN4aYTJCxz2/MiorLeNtoVwir995tOXzdzCr laptop" sshkeys = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL88nWIyxN4aYTJCxz2/MiorLeNtoVwir995tOXzdzCr laptop"
template = "Debian12-Template"
storage = "cache-domains"
emulatessd = true
format = "raw"
} }
} }
} }
@@ -65,57 +59,49 @@ locals {
resource "proxmox_vm_qemu" "k3master" { resource "proxmox_vm_qemu" "k3master" {
count = local.config.k3master.count count = local.config.k3master.count
ciuser = "administrator" ciuser = "administrator"
vmid = "${local.config.k3master.vlan}${local.config.k3master.ip[count.index]}" vmid = "${local.config.vlan}${local.config.k3master.ip[count.index]}"
name = local.config.k3master.name[count.index] name = local.config.k3master.name[count.index]
target_node = local.config.k3master.node[count.index] target_node = local.config.k3master.node[count.index]
clone = local.config.k3master.template[count.index] clone = local.config.template
tags = local.config.tags tags = local.config.tags
qemu_os = "l26" qemu_os = "l26"
full_clone = true full_clone = true
os_type = "cloud-init" os_type = "cloud-init"
agent = 1 agent = 1
cores = local.config.k3master.cores cores = local.config.k3master.cores
numa = true
hotplug = "network,disk,usb,cpu,memory"
sockets = 1 sockets = 1
cpu = "host" cpu = "host"
memory = local.config.k3master.memory memory = local.config.k3master.memory
scsihw = "virtio-scsi-pci" scsihw = "virtio-scsi-pci"
#bootdisk = "scsi0" #bootdisk = "scsi0"
boot = "order=scsi0" boot = "order=virtio0"
onboot = true onboot = true
sshkeys = local.config.sshkeys sshkeys = local.config.sshkeys
disks { disks {
ide { ide {
ide2 { ide2 {
cloudinit { cloudinit {
storage = local.config.k3master.storage storage = local.config.storage
} }
} }
} }
scsi { virtio {
scsi0 { virtio0 {
disk { disk {
size = local.config.k3master.drive size = local.config.k3master.drive
format = "raw" format = local.config.format
storage = local.config.k3master.storage storage = local.config.storage
emulatessd = true
} }
} }
} }
} }
network { network {
model = "virtio" model = "virtio"
bridge = "vmbr1" bridge = "vmbr0"
tag = local.config.vlan tag = local.config.vlan
} }
lifecycle {
ignore_changes = [
network,
]
}
#Cloud Init Settings #Cloud Init Settings
ipconfig0 = "ip=192.168.${local.config.k3master.vlan}.${local.config.k3master.ip[count.index]}/24,gw=192.168.10.1" ipconfig0 = "ip=192.168.${local.config.vlan}.${local.config.k3master.ip[count.index]}/24,gw=${local.config.dnsserver}"
searchdomain = "durp.loc" searchdomain = "durp.loc"
nameserver = local.config.dnsserver nameserver = local.config.dnsserver
} }
@@ -123,56 +109,49 @@ resource "proxmox_vm_qemu" "k3master" {
resource "proxmox_vm_qemu" "k3server" { resource "proxmox_vm_qemu" "k3server" {
count = local.config.k3server.count count = local.config.k3server.count
ciuser = "administrator" ciuser = "administrator"
vmid = "${local.config.k3server.vlan}${local.config.k3server.ip[count.index]}" vmid = "${local.config.vlan}${local.config.k3server.ip[count.index]}"
name = local.config.k3server.name[count.index] name = local.config.k3server.name[count.index]
target_node = local.config.k3server.node[count.index] target_node = local.config.k3server.node[count.index]
clone = local.config.k3server.template[count.index] clone = local.config.template
tags = local.config.tags tags = local.config.tags
qemu_os = "l26" qemu_os = "l26"
full_clone = true full_clone = true
os_type = "cloud-init" os_type = "cloud-init"
agent = 1 agent = 1
cores = local.config.k3server.cores cores = local.config.k3server.cores
numa = true
hotplug = "network,disk,usb,cpu,memory"
sockets = 1 sockets = 1
cpu = "host" cpu = "host"
memory = local.config.k3server.memory memory = local.config.k3server.memory
scsihw = "virtio-scsi-pci" scsihw = "virtio-scsi-pci"
#bootdisk = "scsi0" #bootdisk = "scsi0"
boot = "order=scsi0" boot = "order=virtio0"
onboot = true onboot = true
sshkeys = local.config.sshkeys sshkeys = local.config.sshkeys
disks { disks {
ide { ide {
ide2 { ide2 {
cloudinit { cloudinit {
storage = local.config.k3master.storage storage = local.config.storage
} }
} }
} }
scsi { virtio {
scsi0 { virtio0 {
disk { disk {
size = local.config.k3master.drive size = local.config.k3server.drive
format = "raw" format = local.config.format
storage = local.config.k3master.storage storage = local.config.storage
emulatessd = true
} }
} }
} }
} }
network { network {
model = "virtio" model = "virtio"
bridge = "vmbr1" bridge = "vmbr0"
} tag = local.config.vlan
lifecycle {
ignore_changes = [
network,
]
} }
#Cloud Init Settings #Cloud Init Settings
ipconfig0 = "ip=192.168.${local.config.k3server.vlan}.${local.config.k3server.ip[count.index]}/24,gw=192.168.10.1" ipconfig0 = "ip=192.168.${local.config.vlan}.${local.config.k3server.ip[count.index]}/24,gw=${local.config.dnsserver}"
searchdomain = "durp.loc" searchdomain = "durp.loc"
nameserver = local.config.dnsserver nameserver = local.config.dnsserver
} }