Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ linters:
gosec:
excludes:
- G115
lll:
line-length: 150
revive:
rules:
- name: "package-comments"
Expand Down
72 changes: 72 additions & 0 deletions docs/resources/virtual_environment_sdn_zone_evpn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
layout: page
title: proxmox_virtual_environment_sdn_zone_evpn
parent: Resources
subcategory: Virtual Environment
description: |-
EVPN Zone in Proxmox SDN. The EVPN zone creates a routable Layer 3 network, capable of spanning across multiple clusters.
---

# Resource: proxmox_virtual_environment_sdn_zone_evpn

EVPN Zone in Proxmox SDN. The EVPN zone creates a routable Layer 3 network, capable of spanning across multiple clusters.

## Example Usage

```terraform
resource "proxmox_virtual_environment_sdn_zone_evpn" "example" {
id = "evpn1"
nodes = ["pve"]
controller = "evpn-controller1"
vrf_vxlan = 4000

# Optional attributes
advertise_subnets = true
disable_arp_nd_suppression = false
exit_nodes = ["pve-exit1", "pve-exit2"]
exit_nodes_local_routing = true
primary_exit_node = "pve-exit1"
rt_import = "65000:65000"
mtu = 1450

# Generic optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `controller` (String) EVPN controller address.
- `id` (String) The unique identifier of the SDN zone.
- `nodes` (Set of String) The Proxmox nodes which the zone and associated VNets should be deployed on
- `vrf_vxlan` (Number) VRF VXLAN-ID used for dedicated routing interconnect between VNets. It must be different than the VXLAN-ID of the VNets.

### Optional

- `advertise_subnets` (Boolean) Enable subnet advertisement for EVPN.
- `disable_arp_nd_suppression` (Boolean) Disable ARP/ND suppression for EVPN.
- `dns` (String) DNS API server address.
- `dns_zone` (String) DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
- `exit_nodes` (Set of String) List of exit nodes for EVPN.
- `exit_nodes_local_routing` (Boolean) Enable local routing for EVPN exit nodes.
- `ipam` (String) IP Address Management system.
- `mtu` (Number) MTU value for the zone.
- `primary_exit_node` (String) Primary exit node for EVPN.
- `reverse_dns` (String) Reverse DNS API server address.
- `rt_import` (String) Route target import for EVPN.

## Import

Import is supported using the following syntax:

```shell
#!/usr/bin/env sh
# EVPN SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_evpn.example evpn1
```
60 changes: 60 additions & 0 deletions docs/resources/virtual_environment_sdn_zone_qinq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
layout: page
title: proxmox_virtual_environment_sdn_zone_qinq
parent: Resources
subcategory: Virtual Environment
description: |-
QinQ Zone in Proxmox SDN. QinQ also known as VLAN stacking, that uses multiple layers of VLAN tags for isolation. The QinQ zone defines the outer VLAN tag (the Service VLAN) whereas the inner VLAN tag is defined by the VNet. Your physical network switches must support stacked VLANs for this configuration. Due to the double stacking of tags, you need 4 more bytes for QinQ VLANs. For example, you must reduce the MTU to 1496 if you physical interface MTU is 1500.
---

# Resource: proxmox_virtual_environment_sdn_zone_qinq

QinQ Zone in Proxmox SDN. QinQ also known as VLAN stacking, that uses multiple layers of VLAN tags for isolation. The QinQ zone defines the outer VLAN tag (the Service VLAN) whereas the inner VLAN tag is defined by the VNet. Your physical network switches must support stacked VLANs for this configuration. Due to the double stacking of tags, you need 4 more bytes for QinQ VLANs. For example, you must reduce the MTU to 1496 if you physical interface MTU is 1500.

## Example Usage

```terraform
resource "proxmox_virtual_environment_sdn_zone_qinq" "example" {
id = "qinq1"
nodes = ["pve"]
bridge = "vmbr0"
service_vlan = 100
service_vlan_protocol = "802.1ad"
mtu = 1496

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `bridge` (String) A local, VLAN-aware bridge that is already configured on each local node
- `id` (String) The unique identifier of the SDN zone.
- `nodes` (Set of String) The Proxmox nodes which the zone and associated VNets should be deployed on
- `service_vlan` (Number) Service VLAN tag for QinQ. The tag must be between `1` and `4094`.

### Optional

- `dns` (String) DNS API server address.
- `dns_zone` (String) DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
- `ipam` (String) IP Address Management system.
- `mtu` (Number) MTU value for the zone.
- `reverse_dns` (String) Reverse DNS API server address.
- `service_vlan_protocol` (String) Service VLAN protocol for QinQ. The protocol must be `802.1ad` or `802.1q`.

## Import

Import is supported using the following syntax:

```shell
#!/usr/bin/env sh
# QinQ SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_qinq.example qinq1
```
54 changes: 54 additions & 0 deletions docs/resources/virtual_environment_sdn_zone_simple.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
layout: page
title: proxmox_virtual_environment_sdn_zone_simple
parent: Resources
subcategory: Virtual Environment
description: |-
Simple Zone in Proxmox SDN. It will create an isolated VNet bridge. This bridge is not linked to a physical interface, and VM traffic is only local on each the node. It can be used in NAT or routed setups.
---

# Resource: proxmox_virtual_environment_sdn_zone_simple

Simple Zone in Proxmox SDN. It will create an isolated VNet bridge. This bridge is not linked to a physical interface, and VM traffic is only local on each the node. It can be used in NAT or routed setups.

## Example Usage

```terraform
resource "proxmox_virtual_environment_sdn_zone_simple" "example" {
id = "simple1"
nodes = ["pve"]
mtu = 1500

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) The unique identifier of the SDN zone.
- `nodes` (Set of String) The Proxmox nodes which the zone and associated VNets should be deployed on

### Optional

- `dns` (String) DNS API server address.
- `dns_zone` (String) DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
- `ipam` (String) IP Address Management system.
- `mtu` (Number) MTU value for the zone.
- `reverse_dns` (String) Reverse DNS API server address.

## Import

Import is supported using the following syntax:

```shell
#!/usr/bin/env sh
# Simple SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_simple.example simple1
```
56 changes: 56 additions & 0 deletions docs/resources/virtual_environment_sdn_zone_vlan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
layout: page
title: proxmox_virtual_environment_sdn_zone_vlan
parent: Resources
subcategory: Virtual Environment
description: |-
VLAN Zone in Proxmox SDN. It uses an existing local Linux or OVS bridge to connect to the node's physical interface. It uses VLAN tagging defined in the VNet to isolate the network segments. This allows connectivity of VMs between different nodes.
---

# Resource: proxmox_virtual_environment_sdn_zone_vlan

VLAN Zone in Proxmox SDN. It uses an existing local Linux or OVS bridge to connect to the node's physical interface. It uses VLAN tagging defined in the VNet to isolate the network segments. This allows connectivity of VMs between different nodes.

## Example Usage

```terraform
resource "proxmox_virtual_environment_sdn_zone_vlan" "example" {
id = "vlan1"
nodes = ["pve"]
bridge = "vmbr0"
mtu = 1500

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `bridge` (String) The local bridge or OVS switch, already configured on _each_ node that allows node-to-node connection.
- `id` (String) The unique identifier of the SDN zone.
- `nodes` (Set of String) The Proxmox nodes which the zone and associated VNets should be deployed on

### Optional

- `dns` (String) DNS API server address.
- `dns_zone` (String) DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
- `ipam` (String) IP Address Management system.
- `mtu` (Number) MTU value for the zone.
- `reverse_dns` (String) Reverse DNS API server address.

## Import

Import is supported using the following syntax:

```shell
#!/usr/bin/env sh
# VLAN SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_vlan.example vlan1
```
56 changes: 56 additions & 0 deletions docs/resources/virtual_environment_sdn_zone_vxlan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
layout: page
title: proxmox_virtual_environment_sdn_zone_vxlan
parent: Resources
subcategory: Virtual Environment
description: |-
VXLAN Zone in Proxmox SDN. It establishes a tunnel (overlay) on top of an existing network (underlay). This encapsulates layer 2 Ethernet frames within layer 4 UDP datagrams using the default destination port 4789. You have to configure the underlay network yourself to enable UDP connectivity between all peers. Because VXLAN encapsulation uses 50 bytes, the MTU needs to be 50 bytes lower than the outgoing physical interface.
---

# Resource: proxmox_virtual_environment_sdn_zone_vxlan

VXLAN Zone in Proxmox SDN. It establishes a tunnel (overlay) on top of an existing network (underlay). This encapsulates layer 2 Ethernet frames within layer 4 UDP datagrams using the default destination port 4789. You have to configure the underlay network yourself to enable UDP connectivity between all peers. Because VXLAN encapsulation uses 50 bytes, the MTU needs to be 50 bytes lower than the outgoing physical interface.

## Example Usage

```terraform
resource "proxmox_virtual_environment_sdn_zone_vxlan" "example" {
id = "vxlan1"
nodes = ["pve"]
peers = ["10.0.0.1", "10.0.0.2", "10.0.0.3"]
mtu = 1450

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) The unique identifier of the SDN zone.
- `nodes` (Set of String) The Proxmox nodes which the zone and associated VNets should be deployed on
- `peers` (Set of String) A list of IP addresses of each node in the VXLAN zone. This can be external nodes reachable at this IP address. All nodes in the cluster need to be mentioned here

### Optional

- `dns` (String) DNS API server address.
- `dns_zone` (String) DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
- `ipam` (String) IP Address Management system.
- `mtu` (Number) MTU value for the zone.
- `reverse_dns` (String) Reverse DNS API server address.

## Import

Import is supported using the following syntax:

```shell
#!/usr/bin/env sh
# VXLAN SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_vxlan.example vxlan1
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
# EVPN SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_evpn.example evpn1
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
resource "proxmox_virtual_environment_sdn_zone_evpn" "example" {
id = "evpn1"
nodes = ["pve"]
controller = "evpn-controller1"
vrf_vxlan = 4000

# Optional attributes
advertise_subnets = true
disable_arp_nd_suppression = false
exit_nodes = ["pve-exit1", "pve-exit2"]
exit_nodes_local_routing = true
primary_exit_node = "pve-exit1"
rt_import = "65000:65000"
mtu = 1450

# Generic optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
# QinQ SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_qinq.example qinq1
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
resource "proxmox_virtual_environment_sdn_zone_qinq" "example" {
id = "qinq1"
nodes = ["pve"]
bridge = "vmbr0"
service_vlan = 100
service_vlan_protocol = "802.1ad"
mtu = 1496

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
# Simple SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_simple.example simple1
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
resource "proxmox_virtual_environment_sdn_zone_simple" "example" {
id = "simple1"
nodes = ["pve"]
mtu = 1500

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
# VLAN SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_vlan.example vlan1
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
resource "proxmox_virtual_environment_sdn_zone_vlan" "example" {
id = "vlan1"
nodes = ["pve"]
bridge = "vmbr0"
mtu = 1500

# Optional attributes
dns = "1.1.1.1"
dns_zone = "example.com"
ipam = "pve"
reverse_dns = "1.1.1.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
# VXLAN SDN zone can be imported using its unique identifier (zone ID)
terraform import proxmox_virtual_environment_sdn_zone_vxlan.example vxlan1
Loading