Files
Compose-Files/Terraform/netbox-vm/template.json
T
2026-07-20 09:23:17 -04:00

223 lines
5.2 KiB
JSON

{
"slug": "netbox-vm",
"kind": "terraform",
"metadata": {
"name": "NetBox Virtual Machine",
"description": "Registers a virtual machine in NetBox with cluster, site, and host device associations. Defines VM metadata including resource allocation and optional IPAM integration.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "netbox"
},
"draft": false,
"version": {
"name": "5.0.1",
"source_dep_name": "manual/netbox-vm"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "resource_name",
"type": "str",
"title": "Resource Name",
"required": false,
"default": "vm",
"config": {
"placeholder": "vm"
}
}
]
},
{
"title": "Virtual Machine Configuration",
"name": "vm",
"items": [
{
"name": "vm_name",
"type": "str",
"title": "Virtual machine name",
"required": true,
"config": {
"placeholder": "servername"
}
},
{
"name": "cluster_name",
"type": "str",
"title": "Cluster name",
"required": true,
"default": "clustername",
"description": "Existing NetBox cluster name to resolve via data source.",
"config": {
"placeholder": "clustername"
}
},
{
"name": "status",
"type": "enum",
"title": "VM status",
"required": false,
"default": "active",
"config": {
"options": [
"active",
"planned",
"staged",
"offline",
"decommissioning"
]
}
}
]
},
{
"title": "Site Assignment",
"name": "site",
"items": [
{
"name": "site_name",
"type": "str",
"title": "Site Name",
"required": false,
"description": "Existing NetBox site name to resolve via data source (leave empty to skip)"
}
]
},
{
"title": "Host Device",
"name": "device",
"items": [
{
"name": "device_name",
"type": "str",
"title": "Device Name",
"required": false,
"description": "Existing NetBox device name for host assignment (leave empty to skip)"
}
]
},
{
"title": "IP Address Management",
"name": "ipam",
"items": [
{
"name": "ipam_enabled",
"type": "bool",
"title": "IPAM",
"required": false,
"default": false
},
{
"name": "interface_name",
"type": "str",
"title": "Network interface name",
"required": true,
"default": "eth0",
"config": {
"placeholder": "eth0"
}
},
{
"name": "primary_ip4",
"type": "str",
"title": "Primary IPv4",
"required": true,
"description": "Primary IPv4 address with CIDR notation"
},
{
"name": "dns_name",
"type": "str",
"title": "DNS Name",
"required": false,
"description": "DNS name for the IP address (leave empty to skip)"
}
]
},
{
"title": "Resource Allocation",
"name": "resources",
"items": [
{
"name": "resources_enabled",
"type": "bool",
"title": "Resources",
"required": false,
"default": false
},
{
"name": "vcpus",
"type": "int",
"title": "vCPUs",
"required": false,
"default": 2,
"config": {
"slider": true,
"min": 1,
"max": 24,
"step": 1,
"placeholder": "2",
"unit": "vCPU"
}
},
{
"name": "memory_mb",
"type": "int",
"title": "Memory",
"required": false,
"default": 4096,
"config": {
"slider": true,
"min": 512,
"max": 24576,
"step": 512,
"placeholder": "4096",
"unit": "MB"
}
},
{
"name": "disk_gb",
"type": "int",
"title": "Disk Size",
"required": false,
"default": 50,
"config": {
"slider": true,
"min": 10,
"max": 1000,
"step": 10,
"placeholder": "50",
"unit": "GB"
}
}
]
},
{
"title": "Description",
"name": "description",
"items": [
{
"name": "description_enabled",
"type": "bool",
"title": "Description",
"required": false,
"default": false
},
{
"name": "description_text",
"type": "str",
"title": "VM description",
"required": false,
"config": {
"placeholder": "Add a description here...",
"textarea": true
}
}
]
}
]
}