From 62334a00dd0b83d86e2838beecce4ac7412c1eef Mon Sep 17 00:00:00 2001 From: JuliusFreudenberger Date: Sun, 29 Mar 2026 21:12:46 +0200 Subject: [PATCH] Add terraform module Terraform is used to manage the VMs on the Proxmox host `busch`. --- terraform/.envrc | 1 + terraform/.gitignore | 42 +++++++++++ terraform/busch/.terraform.lock.hcl | 24 +++++++ terraform/busch/main.tf | 46 ++++++++++++ terraform/busch/modules/proxmox-vm/main.tf | 66 ++++++++++++++++++ .../busch/modules/proxmox-vm/variables.tf | 64 +++++++++++++++++ terraform/busch/plan | Bin 0 -> 10451 bytes terraform/busch/variables.tf | 10 +++ 8 files changed, 253 insertions(+) create mode 100644 terraform/.envrc create mode 100644 terraform/.gitignore create mode 100644 terraform/busch/.terraform.lock.hcl create mode 100644 terraform/busch/main.tf create mode 100644 terraform/busch/modules/proxmox-vm/main.tf create mode 100644 terraform/busch/modules/proxmox-vm/variables.tf create mode 100644 terraform/busch/plan create mode 100644 terraform/busch/variables.tf diff --git a/terraform/.envrc b/terraform/.envrc new file mode 100644 index 0000000..2c8269e --- /dev/null +++ b/terraform/.envrc @@ -0,0 +1 @@ +use flake ../#opentofu diff --git a/terraform/.gitignore b/terraform/.gitignore new file mode 100644 index 0000000..8a7f7b7 --- /dev/null +++ b/terraform/.gitignore @@ -0,0 +1,42 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tofu +override.tf.json +override.tofu.json +*_override.tf +*_override.tofu +*_override.tf.json +*_override.tofu.json + +# Ignore transient lock info files created by tofu apply +.terraform.tfstate.lock.info + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf +# !example_override.tofu + +# Include tfplan files to ignore the plan output of command: tofu plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc diff --git a/terraform/busch/.terraform.lock.hcl b/terraform/busch/.terraform.lock.hcl new file mode 100644 index 0000000..6ce99f5 --- /dev/null +++ b/terraform/busch/.terraform.lock.hcl @@ -0,0 +1,24 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/telmate/proxmox" { + version = "3.0.2-rc07" + constraints = "3.0.2-rc07" + hashes = [ + "h1:zp5hpQJQ4t4zROSLqdltVpBO+Riy9VugtfFbpyTw1aM=", + "zh:2ee860cd0a368b3eaa53f4a9ea46f16dab8a97929e813ea6ef55183f8112c2ca", + "zh:415965fd915bae2040d7f79e45f64d6e3ae61149c10114efeac1b34687d7296c", + "zh:6584b2055df0e32062561c615e3b6b2c291ca8c959440adda09ef3ec1e1436bd", + "zh:65dcfad71928e0a8dd9befc22524ed686be5020b0024dc5cca5184c7420eeb6b", + "zh:7253dc29bd265d33f2791ac4f779c5413f16720bb717de8e6c5fcb2c858648ea", + "zh:7ec8993da10a47606670f9f67cfd10719a7580641d11c7aa761121c4a2bd66fb", + "zh:999a3f7a9dcf517967fc537e6ec930a8172203642fb01b8e1f78f908373db210", + "zh:a50e6df7280eb6584a5fd2456e3f5b6df13b2ec8a7fa4605511e438e1863be42", + "zh:b25b329a1e42681c509d027fee0365414f0cc5062b65690cfc3386aab16132ae", + "zh:c028877fdb438ece48f7bc02b65bbae9ca7b7befbd260e519ccab6c0cbb39f26", + "zh:cf0eaa3ea9fcc6d62793637947f1b8d7c885b6ad74695ab47e134e4ff132190f", + "zh:d5ade3fae031cc629b7c512a7b60e46570f4c41665e88a595d7efd943dde5ab2", + "zh:f388c15ad1ecfc09e7361e3b98bae9b627a3a85f7b908c9f40650969c949901c", + "zh:f415cc6f735a3971faae6ac24034afdb9ee83373ef8de19a9631c187d5adc7db", + ] +} diff --git a/terraform/busch/main.tf b/terraform/busch/main.tf new file mode 100644 index 0000000..966ec14 --- /dev/null +++ b/terraform/busch/main.tf @@ -0,0 +1,46 @@ +terraform { + required_providers { + proxmox = { + source = "telmate/proxmox" + version = "3.0.2-rc07" + } + } +} + +provider "proxmox" { + pm_api_url = var.proxmox_api_url + pm_api_token_id = var.proxmox_token_id + pm_api_token_secret = var.proxmox_token_secret + pm_tls_insecure = true +} + +module "truenas" { + source = "./modules/proxmox-vm" + + name = "truenas" + target_node = "busch" + vmid = 100 + memory = 8192 + cpu_cores = 2 + disk_storage = "local" + disk_size = "32G" + iso_path = "local:iso/TrueNAS-SCALE-25.10.2.1.iso" + startup_order = 1 + + mapped_pcie_devices = ["HBA"] +} + +module "nixos-docker" { + source = "./modules/proxmox-vm" + + name = "nixos-docker" + target_node = "busch" + vmid = 101 + memory = 4096 + cpu_cores = 2 + disk_storage = "truenas-lvm" + disk_size = "64G" + iso_path = "local:iso/latest-nixos-minimal-x86_64-linux.iso" + startup_order = 2 + startup_delay = 240 +} diff --git a/terraform/busch/modules/proxmox-vm/main.tf b/terraform/busch/modules/proxmox-vm/main.tf new file mode 100644 index 0000000..89ddcf3 --- /dev/null +++ b/terraform/busch/modules/proxmox-vm/main.tf @@ -0,0 +1,66 @@ +terraform { + required_providers { + proxmox = { + source = "telmate/proxmox" + version = "3.0.2-rc07" + } + } +} + +resource "proxmox_vm_qemu" "truenas" { + name = var.name + description = var.description + target_node = var.target_node + vmid = var.vmid + machine = length(var.mapped_pcie_devices) == 0 ? "pc" : "q35" + memory = var.memory + balloon = 1024 + scsihw = "virtio-scsi-pci" + boot = "order=scsi0;ide0" + start_at_node_boot = true + + cpu { + cores = var.cpu_cores + sockets = 1 + } + + disks { + scsi { + scsi0 { + disk { + storage = var.disk_storage + size = var.disk_size + } + } + } + ide { + ide0 { + cdrom { + iso = var.iso_path + } + } + } + } + + network { + id = 0 + bridge = "vmbr0" + model = "virtio" + } + + dynamic "pci" { + for_each = { for device in var.mapped_pcie_devices : index(var.mapped_pcie_devices, device) => device } + + content { + id = pci.key + mapping_id = pci.value + pcie = true + } + } + + startup_shutdown { + order = var.startup_order + startup_delay = var.startup_delay + } + +} diff --git a/terraform/busch/modules/proxmox-vm/variables.tf b/terraform/busch/modules/proxmox-vm/variables.tf new file mode 100644 index 0000000..fe75fcd --- /dev/null +++ b/terraform/busch/modules/proxmox-vm/variables.tf @@ -0,0 +1,64 @@ +variable "vmid" { + description = "ID of the VM to create" + type = string +} + +variable "name" { + description = "Name of the VM to create" + type = string +} + +variable "description" { + description = "Description of the VM to create" + type = string + default = null + nullable = true +} + +variable "target_node" { + description = "Name of the target node to create the VM on" + type = string +} + +variable "memory" { + description = "Memory to allocate for the VM" + type = string +} + +variable "cpu_cores" { + description = "Number of CPU cores to allocate for the VM" + type = number +} + +variable "disk_storage" { + description = "Name of the storage to store the disk on" + type = string + default = "local" +} + +variable "disk_size" { + description = "Size of the primary disk" + type = string +} + +variable "iso_path" { + description = "Path of the ISO to use to install an OS" + type = string +} + +variable "startup_order" { + description = "Order number of the VM in the startup chain" + type = number +} + +variable "startup_delay" { + description = "Startup delay in seconds" + type = number + default = -1 +} + +variable "mapped_pcie_devices" { + description = "PCI mappings" + type = list(string) + default = [] +} diff --git a/terraform/busch/plan b/terraform/busch/plan new file mode 100644 index 0000000000000000000000000000000000000000..2532f9d9b806ff918140f23ff1419387f0feefbf GIT binary patch literal 10451 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 literal 0 HcmV?d00001 diff --git a/terraform/busch/variables.tf b/terraform/busch/variables.tf new file mode 100644 index 0000000..a352dd7 --- /dev/null +++ b/terraform/busch/variables.tf @@ -0,0 +1,10 @@ +variable "proxmox_api_url" { + description = "API URL, typically ends with `/api2/json`" +} + +variable "proxmox_token_id" { + description = "Token ID" +} +variable "proxmox_token_secret" { + description = "Token Secret" +}