Skip to content

Terraform module built to integrate with PROXMOX On-Prem Hypervisor and deploy VMs with Cloud-Init based on an existing VM or Template. The cluster of vms are typically used to run kubernetes on-prem with kubespray.

License

Notifications You must be signed in to change notification settings

AaronForce1/terraform-proxmox-vm-cluster

Repository files navigation

Terraform
terraform-proxmox-vm-cluster

Terraform Version

Terraform module built to integrate with PROXMOX On-Prem Hypervisor and deploy VMs with Cloud-Init based on an existing VM or Template. The cluster of vms are typically used to run kubernetes on-prem with kubespray.

Requirements

Name Version
terraform >= 1.5
proxmox ~>2.9
random ~> 3.5

Providers

Name Version
proxmox 2.9.14
random 3.5.1

Modules

No modules.

Resources

Name Type
proxmox_vm_qemu.vm resource
random_integer.vm-id resource

Inputs

Name Description Type Default Required
proxmox_defaults Default Proxmox Configurations for Simplicity of Deployment
object({
cores = number
sockets = number
memory = number
hotplug = string
proxmox_clone = string
disk_configuration = list(object({
type = string
storage = string
size = string
}))
network_configuration = list(object({
model = string
bridge = string
}))
os = string
target_node = string
})
{
"cores": 1,
"disk_configuration": [
{
"size": "50G",
"storage": "local-btrfs",
"type": "virtio"
}
],
"hotplug": "network,disk,cpu,memory",
"memory": 2048,
"network_configuration": [
{
"bridge": "vmbr0",
"model": "virtio"
}
],
"os": "debian",
"proxmox_clone": "debian-12-infra-compute-template",
"sockets": 1,
"target_node": "compute-1"
}
no
proxmox_ssh SSH Keys to provision on the VM string "" no
proxmox_vms Proxmox VMs to be provisioned
list(object({
name = string
id = number
ipconfig = string
target_node = optional(string)
clone_override = optional(bool)
full_clone = optional(bool)
os = optional(string)
cores = optional(number)
sockets = optional(number)
memory = optional(number)
hotplug = optional(string)
scsihw = optional(string)
sshkeys = optional(string)
network_configuration = list(object({
model = string
bridge = string
}))
disk_configuration = list(object({
type = string
storage = string
size = string
}))
}))
[] no

Outputs

No outputs.

About

Terraform module built to integrate with PROXMOX On-Prem Hypervisor and deploy VMs with Cloud-Init based on an existing VM or Template. The cluster of vms are typically used to run kubernetes on-prem with kubespray.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages