This commit is contained in:
cătălin 2024-02-12 17:24:17 +01:00
commit b9d8cd04d4
Signed by untrusted user: catalin
GPG key ID: 0178DF42F43E5FD2
11 changed files with 230 additions and 0 deletions

View file

@ -0,0 +1,45 @@
terraform {
required_providers {
proxmox = {
source = "thegameprofi/proxmox"
version = "2.9.15"
}
}
}
resource "proxmox_vm_qemu" "vm" {
name = var.vm_name
target_node = var.node_name
vmid = var.vm_id
clone = var.cloud_init_template
os_type = "cloudinit"
qemu_os = "other"
ipconfig0 = var.ipconfig0
cores = var.core_count
sockets = 1
pool = "k3s"
memory = var.memory
ciuser = var.ci_username
agent = 0
serial {
id = 0
type = "socket"
}
disk {
size = "50G"
storage = var.disk_storage_name
type = "scsi"
}
network {
bridge = var.network_bridge_name
firewall = false
link_down = false
model = "virtio"
mtu = 0
queues = 0
rate = 0
tag = -1
}
sshkeys = var.ssh_keys
nameserver = "192.168.1.7 192.168.1.3"
}

View file

@ -0,0 +1,66 @@
variable "vm_name" {
description = "Name of the VM"
type = string
}
variable "node_name" {
description = "Name of the Proxmox node"
type = string
}
variable "vm_id" {
description = "ID of the new VM"
type = number
}
variable "cloud_init_template" {
description = "Cloud-init enabled template to be cloned"
type = string
default = "ci-debian12"
}
variable "ipconfig0" {
description = "Default inet configuration"
type = string
}
variable "ci_username" {
description = "Cloud-init username"
type = string
default = "ci"
}
variable "memory" {
description = "Available RAM, in MB"
type = number
default = 512
}
variable "core_count" {
description = "Available cores per socket"
type = number
default = 2
}
variable "network_bridge_name" {
description = "Network bridge name"
type = string
default = "vmbr0"
}
variable "ssh_keys" {
description = "SSH public keys to be provisioned"
type = string
default = <<EOF
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL++DKyzE0+zM6A4lpjWTNvntQnmEdA6FoOh6jIdsHMT catalin@jupiter
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGreLVacZyxq2EtgievpXgC/L7czKyJa/kWpgqDoPgnA phireh@GenPhireh
EOF
}
variable "disk_storage_name" {
description = "Disk storage name"
type = string
default = "storage"
}

View file

@ -0,0 +1,8 @@
terraform {
required_providers {
truenas = {
source = "dariusbakunas/truenas"
version = "0.11.1"
}
}
}

View file