xcad пре 2 месеци
родитељ
комит
7df8606205

+ 0 - 24
library/terraform/netbox-cluster-type/netbox_cluster_type.tf.j2

@@ -1,24 +0,0 @@
-resource "netbox_cluster_type" "{{ resource_name }}" {
-  name = "{{ type_name }}"
-  slug = "{{ type_slug }}"
-{% if description_enabled %}
-  description = "{{ description_text }}"
-{% endif %}
-{% if depends_on_enabled %}
-  depends_on = [{{ dependencies }}]
-{% endif %}
-{% if lifecycle_enabled %}
-
-  lifecycle {
-{% if prevent_destroy %}
-    prevent_destroy = true
-{% endif %}
-{% if create_before_destroy %}
-    create_before_destroy = true
-{% endif %}
-{% if ignore_changes %}
-    ignore_changes = [{{ ignore_changes }}]
-{% endif %}
-  }
-{% endif %}
-}

+ 0 - 51
library/terraform/netbox-cluster-type/template.yaml

@@ -1,51 +0,0 @@
----
-kind: terraform
-schema: "1.0"
-metadata:
-  icon:
-    provider: selfh
-    id: netbox
-  name: NetBox Cluster Type
-  description: >
-    Create NetBox cluster type for categorizing virtualization clusters.
-
-
-    Defines cluster types like Proxmox, VMware, KVM, etc.
-
-
-    Project: https://netboxlabs.com/
-
-    Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/cluster_type
-  version: 5.0.0
-  author: Christian Lempa
-  date: '2025-12-02'
-spec:
-  general:
-    vars:
-      resource_name:
-        default: cluster_type
-  cluster_type:
-    title: Cluster Type Configuration
-    vars:
-      type_name:
-        type: str
-        description: Cluster type name (e.g., Proxmox, VMware, KVM)
-        required: true
-        default: Proxmox
-      type_slug:
-        type: str
-        description: Cluster type slug (lowercase, hyphens)
-        required: true
-        default: proxmox
-  description:
-    title: Description
-    toggle: description_enabled
-    vars:
-      description_enabled:
-        type: bool
-        description: Add cluster type description
-        default: false
-      description_text:
-        type: str
-        description: Cluster type description
-        default: Managed by Terraform

+ 0 - 27
library/terraform/netbox-cluster/netbox_cluster.tf.j2

@@ -1,27 +0,0 @@
-resource "netbox_cluster" "{{ resource_name }}" {
-  name             = "{{ cluster_name }}"
-  cluster_type_id  = netbox_cluster_type.{{ cluster_type_ref }}.id
-{% if site_ref %}
-  site_id          = data.netbox_site.{{ site_ref }}.id
-{% endif %}
-{% if description_enabled %}
-  description      = "{{ description_text }}"
-{% endif %}
-{% if depends_on_enabled %}
-  depends_on = [{{ dependencies }}]
-{% endif %}
-{% if lifecycle_enabled %}
-
-  lifecycle {
-{% if prevent_destroy %}
-    prevent_destroy = true
-{% endif %}
-{% if create_before_destroy %}
-    create_before_destroy = true
-{% endif %}
-{% if ignore_changes %}
-    ignore_changes = [{{ ignore_changes }}]
-{% endif %}
-  }
-{% endif %}
-}

+ 0 - 57
library/terraform/netbox-cluster/template.yaml

@@ -1,57 +0,0 @@
----
-kind: terraform
-schema: "1.0"
-metadata:
-  icon:
-    provider: selfh
-    id: netbox
-  name: NetBox Cluster
-  description: >
-    Create NetBox virtualization cluster for organizing virtual machines.
-
-
-    Defines a cluster in NetBox with cluster type and site association.
-
-
-    Project: https://netboxlabs.com/
-
-    Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/cluster
-  version: 5.0.0
-  author: Christian Lempa
-  date: '2025-12-02'
-spec:
-  general:
-    vars:
-      resource_name:
-        default: cluster
-  cluster:
-    title: Cluster Configuration
-    vars:
-      cluster_name:
-        type: str
-        description: Human-readable cluster name
-        required: true
-        default: Proxmox VE Production Cluster
-      cluster_type_ref:
-        type: str
-        description: Cluster type resource name
-        required: true
-        default: proxmox
-  site:
-    title: Site Assignment
-    vars:
-      site_ref:
-        type: str
-        description: Site data source name (leave empty to skip)
-  description:
-    title: Description
-    toggle: description_enabled
-    vars:
-      description_enabled:
-        type: bool
-        description: Add cluster description
-        default: false
-      description_text:
-        type: str
-        description: Cluster description
-        default: Managed by Terraform

+ 0 - 22
library/terraform/netbox-device-role/netbox_device_role.tf.j2

@@ -1,22 +0,0 @@
-resource "netbox_device_role" "{{ resource_name }}" {
-  name      = "{{ role_name }}"
-  slug      = "{{ role_slug }}"
-  color_hex = "{{ role_color }}"
-{% if depends_on_enabled %}
-  depends_on = [{{ dependencies }}]
-{% endif %}
-{% if lifecycle_enabled %}
-
-  lifecycle {
-{% if prevent_destroy %}
-    prevent_destroy = true
-{% endif %}
-{% if create_before_destroy %}
-    create_before_destroy = true
-{% endif %}
-{% if ignore_changes %}
-    ignore_changes = [{{ ignore_changes }}]
-{% endif %}
-  }
-{% endif %}
-}

+ 0 - 44
library/terraform/netbox-device-role/template.yaml

@@ -1,44 +0,0 @@
----
-kind: terraform
-schema: "1.0"
-metadata:
-  icon:
-    provider: selfh
-    id: netbox
-  name: NetBox Device Role
-  description: >
-    Create NetBox device role for categorizing physical devices.
-
-
-    Defines device roles like Firewall, Hypervisor, Switch, Server, etc.
-
-
-    Project: https://netboxlabs.com/
-
-    Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/device_role
-  version: 5.0.0
-  author: Christian Lempa
-  date: '2025-12-02'
-spec:
-  general:
-    vars:
-      resource_name:
-        default: device_role
-  role:
-    title: Device Role Configuration
-    vars:
-      role_name:
-        type: str
-        description: Device role name (e.g., Firewall, Hypervisor, Switch)
-        required: true
-        default: Server
-      role_slug:
-        type: str
-        description: Device role slug (lowercase, hyphens)
-        required: true
-        default: server
-      role_color:
-        type: str
-        description: Role color hex (without #)
-        required: true
-        default: 2196f3

+ 0 - 22
library/terraform/netbox-device-type/netbox_device_type.tf.j2

@@ -1,22 +0,0 @@
-resource "netbox_device_type" "{{ resource_name }}" {
-  model           = "{{ device_type_model }}"
-  slug            = "{{ device_type_slug }}"
-  manufacturer_id = netbox_manufacturer.{{ manufacturer_ref }}.id
-{% if depends_on_enabled %}
-  depends_on      = [{{ dependencies }}]
-{% endif %}
-{% if lifecycle_enabled %}
-
-  lifecycle {
-{% if prevent_destroy %}
-    prevent_destroy = true
-{% endif %}
-{% if create_before_destroy %}
-    create_before_destroy = true
-{% endif %}
-{% if ignore_changes %}
-    ignore_changes = [{{ ignore_changes }}]
-{% endif %}
-  }
-{% endif %}
-}

+ 0 - 44
library/terraform/netbox-device-type/template.yaml

@@ -1,44 +0,0 @@
----
-kind: terraform
-schema: "1.0"
-metadata:
-  icon:
-    provider: selfh
-    id: netbox
-  name: NetBox Device Type
-  description: >
-    Create NetBox device type for hardware models.
-
-
-    Defines device types with manufacturer association.
-
-
-    Project: https://netboxlabs.com/
-
-    Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/device_type
-  version: 5.0.0
-  author: Christian Lempa
-  date: '2025-12-02'
-spec:
-  general:
-    vars:
-      resource_name:
-        default: device_type
-  device_type:
-    title: Device Type Configuration
-    vars:
-      device_type_model:
-        type: str
-        description: Device type model name
-        required: true
-        default: Generic Server
-      device_type_slug:
-        type: str
-        description: Device type slug (lowercase, hyphens)
-        required: true
-        default: generic-server
-      manufacturer_ref:
-        type: str
-        description: Manufacturer resource name
-        required: true
-        default: generic

+ 0 - 50
library/terraform/netbox-device/netbox_device.tf.j2

@@ -1,50 +0,0 @@
-resource "netbox_device" "{{ resource_name }}" {
-  name           = "{{ device_name }}"
-  device_type_id = netbox_device_type.{{ device_type_ref }}.id
-  role_id        = netbox_device_role.{{ role_ref }}.id
-  site_id        = data.netbox_site.{{ site_ref }}.id
-{% if cluster_ref %}
-  cluster_id     = netbox_cluster.{{ cluster_ref }}.id
-{% endif %}
-  status         = "{{ status }}"
-{% if depends_on_enabled %}
-  depends_on     = [{{ dependencies }}]
-{% endif %}
-{% if lifecycle_enabled %}
-
-  lifecycle {
-{% if prevent_destroy %}
-    prevent_destroy = true
-{% endif %}
-{% if create_before_destroy %}
-    create_before_destroy = true
-{% endif %}
-{% if ignore_changes %}
-    ignore_changes = [{{ ignore_changes }}]
-{% endif %}
-  }
-{% endif %}
-}
-
-# Device Interface
-resource "netbox_device_interface" "{{ resource_name }}" {
-  device_id = netbox_device.{{ resource_name }}.id
-  name      = "{{ interface_name }}"
-  type      = "{{ interface_type }}"
-}
-
-# IP Address
-resource "netbox_ip_address" "{{ resource_name }}" {
-  ip_address   = "{{ ip_address }}"
-  status       = "active"
-  dns_name     = "{{ dns_name }}"
-  description  = "{{ ip_description }}"
-  interface_id = netbox_device_interface.{{ resource_name }}.id
-  object_type  = "dcim.interface"
-}
-
-# Set Primary IP
-resource "netbox_device_primary_ip" "{{ resource_name }}" {
-  device_id     = netbox_device.{{ resource_name }}.id
-  ip_address_id = netbox_ip_address.{{ resource_name }}.id
-}

+ 0 - 105
library/terraform/netbox-device/template.yaml

@@ -1,105 +0,0 @@
----
-kind: terraform
-schema: "1.0"
-metadata:
-  icon:
-    provider: selfh
-    id: netbox
-  name: NetBox Device
-  description: >
-    Register a physical device in NetBox with automatic role, type, and manufacturer creation.
-
-
-    Includes device interface, IP address assignment, and automatic primary IP configuration.
-
-
-    Project: https://netboxlabs.com/
-
-    Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/device
-  version: 5.0.0
-  author: Christian Lempa
-  date: '2025-12-02'
-spec:
-  general:
-    vars:
-      resource_name:
-        default: device
-  device:
-    title: Device Configuration
-    vars:
-      device_name:
-        type: str
-        description: Device hostname
-        required: true
-        default: fw-prod-1
-      site_ref:
-        type: str
-        description: Site data source name
-        required: true
-        default: homelab
-      status:
-        type: enum
-        description: Device status
-        options:
-          - active
-          - planned
-          - staged
-          - offline
-          - decommissioning
-        default: active
-  references:
-    title: Resource References
-    vars:
-      device_type_ref:
-        type: str
-        description: Device type resource name
-        required: true
-        default: generic_server
-      role_ref:
-        type: str
-        description: Device role resource name
-        required: true
-        default: server
-  interface:
-    title: Network Interface
-    vars:
-      interface_name:
-        type: str
-        description: Interface name (e.g., eth0, LAN, vmbr0)
-        required: true
-        default: eth0
-      interface_type:
-        type: enum
-        description: Interface type
-        required: true
-        options:
-          - virtual
-          - 1000base-t
-          - 10gbase-x-sfpp
-          - 25gbase-x-sfp28
-          - 40gbase-x-qsfpp
-          - 100gbase-x-qsfp28
-        default: virtual
-  ip:
-    title: IP Address
-    vars:
-      ip_address:
-        type: str
-        description: IP address with CIDR (e.g., 10.20.0.1/16)
-        required: true
-        default: 10.20.0.10/24
-      dns_name:
-        type: hostname
-        description: Fully qualified domain name
-        required: true
-        default: device.home.example.com
-      ip_description:
-        type: str
-        description: IP address description
-        default: Management Interface
-  cluster:
-    title: Cluster Assignment
-    vars:
-      cluster_ref:
-        type: str
-        description: Cluster resource name (leave empty to skip)

+ 0 - 21
library/terraform/netbox-manufacturer/netbox_manufacturer.tf.j2

@@ -1,21 +0,0 @@
-resource "netbox_manufacturer" "{{ resource_name }}" {
-  name = "{{ manufacturer_name }}"
-  slug = "{{ manufacturer_slug }}"
-{% if depends_on_enabled %}
-  depends_on = [{{ dependencies }}]
-{% endif %}
-{% if lifecycle_enabled %}
-
-  lifecycle {
-{% if prevent_destroy %}
-    prevent_destroy = true
-{% endif %}
-{% if create_before_destroy %}
-    create_before_destroy = true
-{% endif %}
-{% if ignore_changes %}
-    ignore_changes = [{{ ignore_changes }}]
-{% endif %}
-  }
-{% endif %}
-}

+ 0 - 39
library/terraform/netbox-manufacturer/template.yaml

@@ -1,39 +0,0 @@
----
-kind: terraform
-schema: "1.0"
-metadata:
-  icon:
-    provider: selfh
-    id: netbox
-  name: NetBox Manufacturer
-  description: >
-    Create NetBox manufacturer for device hardware vendors.
-
-
-    Defines manufacturers like Dell, HP, Cisco, Proxmox, etc.
-
-
-    Project: https://netboxlabs.com/
-
-    Documentation: https://registry.terraform.io/providers/e-breuninger/netbox/latest/docs/resources/manufacturer
-  version: 5.0.0
-  author: Christian Lempa
-  date: '2025-12-02'
-spec:
-  general:
-    vars:
-      resource_name:
-        default: manufacturer
-  manufacturer:
-    title: Manufacturer Configuration
-    vars:
-      manufacturer_name:
-        type: str
-        description: Manufacturer name
-        required: true
-        default: Generic
-      manufacturer_slug:
-        type: str
-        description: Manufacturer slug (lowercase, hyphens)
-        required: true
-        default: generic