73 lines
1.6 KiB
HCL
73 lines
1.6 KiB
HCL
resource "proxmox_virtual_environment_container" "this" {
|
|
node_name = var.target_node
|
|
vm_id = var.vm_id
|
|
unprivileged = var.unprivileged
|
|
|
|
started = var.started
|
|
start_on_boot = var.start_on_boot
|
|
|
|
cpu {
|
|
cores = var.cores
|
|
units = var.cpu_units
|
|
}
|
|
|
|
memory {
|
|
dedicated = var.memory
|
|
swap = var.swap
|
|
}
|
|
|
|
disk {
|
|
datastore_id = var.rootfs_storage
|
|
size = var.rootfs_size_gib
|
|
}
|
|
|
|
features {
|
|
nesting = var.nesting
|
|
}
|
|
|
|
network_interface {
|
|
name = var.netif_name
|
|
bridge = var.bridge
|
|
enabled = true
|
|
firewall = var.firewall
|
|
}
|
|
|
|
operating_system {
|
|
template_file_id = var.template_file_id
|
|
type = var.os_type
|
|
}
|
|
|
|
initialization {
|
|
hostname = var.hostname
|
|
|
|
ip_config {
|
|
ipv4 {
|
|
address = var.ipv4_address
|
|
gateway = var.ipv4_gateway
|
|
}
|
|
}
|
|
|
|
# user_account делаем опциональным:
|
|
# - если задан пароль (не null) или есть ssh keys
|
|
dynamic "user_account" {
|
|
for_each = (var.password != null || length(var.ssh_public_keys) > 0) ? [1] : []
|
|
content {
|
|
# provider норм принимает keys list(string)
|
|
keys = var.ssh_public_keys
|
|
|
|
# password задаём только если не null
|
|
password = var.password
|
|
}
|
|
}
|
|
|
|
# DNS опционально
|
|
dynamic "dns" {
|
|
for_each = (var.dns_domain != null || length(var.dns_servers) > 0) ? [1] : []
|
|
content {
|
|
domain = var.dns_domain
|
|
servers = var.dns_servers
|
|
}
|
|
}
|
|
}
|
|
}
|