proxmoxve.SDNZone.Qinq
Explore with Pulumi AI

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
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
const example = new proxmoxve.sdnzone.Qinq("example", {
bridge: "vmbr0",
dns: "1.1.1.1",
dnsZone: "example.com",
zoneId: "qinq1",
ipam: "pve",
mtu: 1496,
nodes: ["pve"],
reverseDns: "1.1.1.1",
serviceVlan: 100,
serviceVlanProtocol: "802.1ad",
});
import pulumi
import pulumi_proxmoxve as proxmoxve
example = proxmoxve.sdnzone.Qinq("example",
bridge="vmbr0",
dns="1.1.1.1",
dns_zone="example.com",
zone_id="qinq1",
ipam="pve",
mtu=1496,
nodes=["pve"],
reverse_dns="1.1.1.1",
service_vlan=100,
service_vlan_protocol="802.1ad")
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/sdnzone"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := sdnzone.NewQinq(ctx, "example", &sdnzone.QinqArgs{
Bridge: pulumi.String("vmbr0"),
Dns: pulumi.String("1.1.1.1"),
DnsZone: pulumi.String("example.com"),
ZoneId: pulumi.String("qinq1"),
Ipam: pulumi.String("pve"),
Mtu: pulumi.Int(1496),
Nodes: pulumi.StringArray{
pulumi.String("pve"),
},
ReverseDns: pulumi.String("1.1.1.1"),
ServiceVlan: pulumi.Int(100),
ServiceVlanProtocol: pulumi.String("802.1ad"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
var example = new ProxmoxVE.SDNZone.Qinq("example", new()
{
Bridge = "vmbr0",
Dns = "1.1.1.1",
DnsZone = "example.com",
ZoneId = "qinq1",
Ipam = "pve",
Mtu = 1496,
Nodes = new[]
{
"pve",
},
ReverseDns = "1.1.1.1",
ServiceVlan = 100,
ServiceVlanProtocol = "802.1ad",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import io.muehlbachler.pulumi.proxmoxve.SDNZone.Qinq;
import io.muehlbachler.pulumi.proxmoxve.SDNZone.QinqArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new Qinq("example", QinqArgs.builder()
.bridge("vmbr0")
.dns("1.1.1.1")
.dnsZone("example.com")
.zoneId("qinq1")
.ipam("pve")
.mtu(1496)
.nodes("pve")
.reverseDns("1.1.1.1")
.serviceVlan(100)
.serviceVlanProtocol("802.1ad")
.build());
}
}
resources:
example:
type: proxmoxve:SDNZone:Qinq
properties:
bridge: vmbr0
# Optional attributes
dns: 1.1.1.1
dnsZone: example.com
zoneId: qinq1
ipam: pve
mtu: 1496
nodes:
- pve
reverseDns: 1.1.1.1
serviceVlan: 100
serviceVlanProtocol: 802.1ad
Create Qinq Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Qinq(name: string, args: QinqArgs, opts?: CustomResourceOptions);
@overload
def Qinq(resource_name: str,
args: QinqArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Qinq(resource_name: str,
opts: Optional[ResourceOptions] = None,
bridge: Optional[str] = None,
nodes: Optional[Sequence[str]] = None,
service_vlan: Optional[int] = None,
zone_id: Optional[str] = None,
dns: Optional[str] = None,
dns_zone: Optional[str] = None,
ipam: Optional[str] = None,
mtu: Optional[int] = None,
reverse_dns: Optional[str] = None,
service_vlan_protocol: Optional[str] = None)
func NewQinq(ctx *Context, name string, args QinqArgs, opts ...ResourceOption) (*Qinq, error)
public Qinq(string name, QinqArgs args, CustomResourceOptions? opts = null)
type: proxmoxve:SDNZone:Qinq
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args QinqArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args QinqArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args QinqArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args QinqArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args QinqArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var qinqResource = new ProxmoxVE.SDNZone.Qinq("qinqResource", new()
{
Bridge = "string",
Nodes = new[]
{
"string",
},
ServiceVlan = 0,
ZoneId = "string",
Dns = "string",
DnsZone = "string",
Ipam = "string",
Mtu = 0,
ReverseDns = "string",
ServiceVlanProtocol = "string",
});
example, err := sdnzone.NewQinq(ctx, "qinqResource", &sdnzone.QinqArgs{
Bridge: pulumi.String("string"),
Nodes: pulumi.StringArray{
pulumi.String("string"),
},
ServiceVlan: pulumi.Int(0),
ZoneId: pulumi.String("string"),
Dns: pulumi.String("string"),
DnsZone: pulumi.String("string"),
Ipam: pulumi.String("string"),
Mtu: pulumi.Int(0),
ReverseDns: pulumi.String("string"),
ServiceVlanProtocol: pulumi.String("string"),
})
var qinqResource = new Qinq("qinqResource", QinqArgs.builder()
.bridge("string")
.nodes("string")
.serviceVlan(0)
.zoneId("string")
.dns("string")
.dnsZone("string")
.ipam("string")
.mtu(0)
.reverseDns("string")
.serviceVlanProtocol("string")
.build());
qinq_resource = proxmoxve.sdnzone.Qinq("qinqResource",
bridge="string",
nodes=["string"],
service_vlan=0,
zone_id="string",
dns="string",
dns_zone="string",
ipam="string",
mtu=0,
reverse_dns="string",
service_vlan_protocol="string")
const qinqResource = new proxmoxve.sdnzone.Qinq("qinqResource", {
bridge: "string",
nodes: ["string"],
serviceVlan: 0,
zoneId: "string",
dns: "string",
dnsZone: "string",
ipam: "string",
mtu: 0,
reverseDns: "string",
serviceVlanProtocol: "string",
});
type: proxmoxve:SDNZone:Qinq
properties:
bridge: string
dns: string
dnsZone: string
ipam: string
mtu: 0
nodes:
- string
reverseDns: string
serviceVlan: 0
serviceVlanProtocol: string
zoneId: string
Qinq Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Qinq resource accepts the following input properties:
- Bridge string
- A local, VLAN-aware bridge that is already configured on each local node
- Nodes List<string>
- The Proxmox nodes which the zone and associated VNets should be deployed on
- Service
Vlan int - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - Zone
Id string - The unique identifier of the SDN zone.
- 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 int
- MTU value for the zone.
- Reverse
Dns string - Reverse DNS API server address.
- Service
Vlan stringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
.
- Bridge string
- A local, VLAN-aware bridge that is already configured on each local node
- Nodes []string
- The Proxmox nodes which the zone and associated VNets should be deployed on
- Service
Vlan int - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - Zone
Id string - The unique identifier of the SDN zone.
- 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 int
- MTU value for the zone.
- Reverse
Dns string - Reverse DNS API server address.
- Service
Vlan stringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
.
- bridge String
- A local, VLAN-aware bridge that is already configured on each local node
- nodes List<String>
- The Proxmox nodes which the zone and associated VNets should be deployed on
- service
Vlan Integer - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - zone
Id String - The unique identifier of the SDN zone.
- 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 Integer
- MTU value for the zone.
- reverse
Dns String - Reverse DNS API server address.
- service
Vlan StringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
.
- bridge string
- A local, VLAN-aware bridge that is already configured on each local node
- nodes 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
and4094
. - zone
Id string - The unique identifier of the SDN zone.
- 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 stringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
.
- bridge str
- A local, VLAN-aware bridge that is already configured on each local node
- nodes Sequence[str]
- The Proxmox nodes which the zone and associated VNets should be deployed on
- service_
vlan int - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - zone_
id str - The unique identifier of the SDN zone.
- dns str
- DNS API server address.
- dns_
zone str - DNS domain name. Used to register hostnames, such as
<hostname>.<domain>
. The DNS zone must already exist on the DNS server. - ipam str
- IP Address Management system.
- mtu int
- MTU value for the zone.
- reverse_
dns str - Reverse DNS API server address.
- service_
vlan_ strprotocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
.
- bridge String
- A local, VLAN-aware bridge that is already configured on each local node
- nodes List<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
and4094
. - zone
Id String - The unique identifier of the SDN zone.
- 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 StringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
.
Outputs
All input properties are implicitly available as output properties. Additionally, the Qinq resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing Qinq Resource
Get an existing Qinq resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: QinqState, opts?: CustomResourceOptions): Qinq
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
bridge: Optional[str] = None,
dns: Optional[str] = None,
dns_zone: Optional[str] = None,
ipam: Optional[str] = None,
mtu: Optional[int] = None,
nodes: Optional[Sequence[str]] = None,
reverse_dns: Optional[str] = None,
service_vlan: Optional[int] = None,
service_vlan_protocol: Optional[str] = None,
zone_id: Optional[str] = None) -> Qinq
func GetQinq(ctx *Context, name string, id IDInput, state *QinqState, opts ...ResourceOption) (*Qinq, error)
public static Qinq Get(string name, Input<string> id, QinqState? state, CustomResourceOptions? opts = null)
public static Qinq get(String name, Output<String> id, QinqState state, CustomResourceOptions options)
resources: _: type: proxmoxve:SDNZone:Qinq get: id: ${id}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Bridge string
- A local, VLAN-aware bridge that is already configured on each local node
- 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 int
- MTU value for the zone.
- Nodes List<string>
- The Proxmox nodes which the zone and associated VNets should be deployed on
- Reverse
Dns string - Reverse DNS API server address.
- Service
Vlan int - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - Service
Vlan stringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
. - Zone
Id string - The unique identifier of the SDN zone.
- Bridge string
- A local, VLAN-aware bridge that is already configured on each local node
- 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 int
- MTU value for the zone.
- Nodes []string
- The Proxmox nodes which the zone and associated VNets should be deployed on
- Reverse
Dns string - Reverse DNS API server address.
- Service
Vlan int - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - Service
Vlan stringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
. - Zone
Id string - The unique identifier of the SDN zone.
- bridge String
- A local, VLAN-aware bridge that is already configured on each local node
- 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 Integer
- MTU value for the zone.
- nodes List<String>
- The Proxmox nodes which the zone and associated VNets should be deployed on
- reverse
Dns String - Reverse DNS API server address.
- service
Vlan Integer - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - service
Vlan StringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
. - zone
Id String - The unique identifier of the SDN zone.
- bridge string
- A local, VLAN-aware bridge that is already configured on each local node
- 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.
- nodes string[]
- The Proxmox nodes which the zone and associated VNets should be deployed on
- reverse
Dns string - Reverse DNS API server address.
- service
Vlan number - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - service
Vlan stringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
. - zone
Id string - The unique identifier of the SDN zone.
- bridge str
- A local, VLAN-aware bridge that is already configured on each local node
- dns str
- DNS API server address.
- dns_
zone str - DNS domain name. Used to register hostnames, such as
<hostname>.<domain>
. The DNS zone must already exist on the DNS server. - ipam str
- IP Address Management system.
- mtu int
- MTU value for the zone.
- nodes Sequence[str]
- The Proxmox nodes which the zone and associated VNets should be deployed on
- reverse_
dns str - Reverse DNS API server address.
- service_
vlan int - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - service_
vlan_ strprotocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
. - zone_
id str - The unique identifier of the SDN zone.
- bridge String
- A local, VLAN-aware bridge that is already configured on each local node
- 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.
- nodes List<String>
- The Proxmox nodes which the zone and associated VNets should be deployed on
- reverse
Dns String - Reverse DNS API server address.
- service
Vlan Number - Service VLAN tag for QinQ. The tag must be between
1
and4094
. - service
Vlan StringProtocol - Service VLAN protocol for QinQ. The protocol must be
802.1ad
or802.1q
. - zone
Id String - The unique identifier of the SDN zone.
Import
#!/usr/bin/env sh
QinQ SDN zone can be imported using its unique identifier (zone ID)
$ pulumi import proxmoxve:SDNZone/qinq:Qinq example qinq1
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- proxmoxve muhlba91/pulumi-proxmoxve
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
proxmox
Terraform Provider.
