template.yaml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. ---
  2. kind: terraform
  3. metadata:
  4. icon:
  5. provider: selfh
  6. id: netbox
  7. name: NetBox Virtual Machine
  8. description: >
  9. Register a virtual machine in NetBox with cluster and site association.
  10. Defines VM metadata including name, cluster, site, host device, and resource allocation.
  11. Project: https://netboxlabs.com/
  12. Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/virtual_machine
  13. version: 5.0.0
  14. author: Christian Lempa
  15. date: '2025-12-02'
  16. spec:
  17. general:
  18. vars:
  19. resource_name:
  20. default: vm
  21. vm:
  22. title: Virtual Machine Configuration
  23. vars:
  24. vm_name:
  25. type: str
  26. description: Virtual machine name
  27. required: true
  28. default: srv-prod-1
  29. cluster_ref:
  30. type: str
  31. description: Cluster resource name
  32. required: true
  33. default: pve_prod_1
  34. status:
  35. type: enum
  36. description: VM status
  37. config:
  38. options:
  39. - active
  40. - planned
  41. - staged
  42. - offline
  43. - decommissioning
  44. default: active
  45. site:
  46. title: Site Assignment
  47. vars:
  48. site_ref:
  49. type: str
  50. description: Site data source name (leave empty to skip)
  51. device:
  52. title: Host Device
  53. vars:
  54. device_ref:
  55. type: str
  56. description: Device resource name for host assignment (leave empty to skip)
  57. ipam:
  58. title: IP Address Management
  59. toggle: ipam_enabled
  60. vars:
  61. ipam_enabled:
  62. type: bool
  63. description: Enable IP address assignment
  64. default: false
  65. interface_name:
  66. type: str
  67. description: Network interface name
  68. default: eth0
  69. required: true
  70. primary_ip4:
  71. type: str
  72. description: Primary IPv4 address resource name
  73. required: true
  74. dns_name:
  75. type: str
  76. description: DNS name for the IP address (leave empty to skip)
  77. resources:
  78. title: Resource Allocation
  79. toggle: resources_enabled
  80. vars:
  81. resources_enabled:
  82. type: bool
  83. description: Specify resource allocation
  84. default: false
  85. vcpus:
  86. type: int
  87. description: Number of virtual CPUs
  88. default: 2
  89. memory_mb:
  90. type: int
  91. description: Memory allocation in MB
  92. default: 4096
  93. disk_gb:
  94. type: int
  95. description: Disk size in GB
  96. default: 50
  97. description:
  98. title: Description
  99. toggle: description_enabled
  100. vars:
  101. description_enabled:
  102. type: bool
  103. description: Add VM description
  104. default: false
  105. description_text:
  106. type: str
  107. description: VM description
  108. default: Managed by Terraform