80 lines
1.4 KiB
HCL
80 lines
1.4 KiB
HCL
terraform {
|
|
required_providers {
|
|
proxmox = {
|
|
source = "bpg/proxmox"
|
|
version = "0.70.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "proxmox_virtual_environment_container" "this" {
|
|
node_name = var.node
|
|
vm_id = var.vmid
|
|
unprivileged = var.unprivileged
|
|
|
|
description = "Terraform batch LXC — ${var.hostname}"
|
|
|
|
cpu {
|
|
cores = var.cores
|
|
}
|
|
|
|
memory {
|
|
dedicated = var.memory
|
|
}
|
|
|
|
disk {
|
|
datastore_id = var.storage
|
|
size = var.rootfs_size
|
|
}
|
|
|
|
network_interface {
|
|
name = "eth0"
|
|
bridge = "vmbr0"
|
|
}
|
|
|
|
dynamic "features" {
|
|
for_each = var.unprivileged ? [1] : []
|
|
content {
|
|
nesting = true
|
|
}
|
|
}
|
|
|
|
dynamic "device_passthrough" {
|
|
for_each = var.devices
|
|
content {
|
|
path = device_passthrough.value.path
|
|
mode = device_passthrough.value.mode
|
|
uid = device_passthrough.value.uid
|
|
gid = device_passthrough.value.gid
|
|
deny_write = device_passthrough.value.deny_write
|
|
}
|
|
}
|
|
|
|
initialization {
|
|
hostname = var.hostname
|
|
|
|
dns {
|
|
servers = var.dns_servers
|
|
}
|
|
|
|
ip_config {
|
|
ipv4 {
|
|
address = var.ipv4
|
|
gateway = var.gateway
|
|
}
|
|
}
|
|
|
|
user_account {
|
|
keys = [file(var.ssh_key_path)]
|
|
password = var.password
|
|
}
|
|
}
|
|
|
|
operating_system {
|
|
template_file_id = var.template_file_id
|
|
type = "debian"
|
|
}
|
|
|
|
tags = var.tags
|
|
}
|