published on Sunday, Apr 5, 2026 by Daniel Muehlbachler-Pietrzykowski
published on Sunday, Apr 5, 2026 by Daniel Muehlbachler-Pietrzykowski
Deprecated: Use
proxmoxve.sdn.Vnetinstead. This resource will be removed in v1.0.
Manages Proxmox VE SDN VNet.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
const finalizer = new proxmoxve.sdn.ApplierLegacy("finalizer", {});
// SDN Zone (Simple) - Basic zone for simple vnets
const exampleZone1 = new proxmoxve.sdn.zone.SimpleLegacy("example_zone_1", {
resourceId: "zone1",
mtu: 1500,
dns: "1.1.1.1",
dnsZone: "example.com",
ipam: "pve",
reverseDns: "1.1.1.1",
}, {
dependsOn: [finalizer],
});
// SDN Zone (Simple) - Second zone for demonstration
const exampleZone2 = new proxmoxve.sdn.zone.SimpleLegacy("example_zone_2", {
resourceId: "zone2",
mtu: 1500,
}, {
dependsOn: [finalizer],
});
// Basic VNet (Simple)
const basicVnet = new proxmoxve.sdn.VnetLegacy("basic_vnet", {
resourceId: "vnet1",
zone: exampleZone1.resourceId,
}, {
dependsOn: [finalizer],
});
// VNet with Alias and Port Isolation
const isolatedVnet = new proxmoxve.sdn.VnetLegacy("isolated_vnet", {
resourceId: "vnet2",
zone: exampleZone2.resourceId,
alias: "Isolated VNet",
isolatePorts: true,
vlanAware: false,
}, {
dependsOn: [finalizer],
});
// SDN Applier for all resources
const vnetApplier = new proxmoxve.sdn.ApplierLegacy("vnet_applier", {}, {
dependsOn: [
exampleZone1,
exampleZone2,
basicVnet,
isolatedVnet,
],
});
import pulumi
import pulumi_proxmoxve as proxmoxve
finalizer = proxmoxve.sdn.ApplierLegacy("finalizer")
# SDN Zone (Simple) - Basic zone for simple vnets
example_zone1 = proxmoxve.sdn.zone.SimpleLegacy("example_zone_1",
resource_id="zone1",
mtu=1500,
dns="1.1.1.1",
dns_zone="example.com",
ipam="pve",
reverse_dns="1.1.1.1",
opts = pulumi.ResourceOptions(depends_on=[finalizer]))
# SDN Zone (Simple) - Second zone for demonstration
example_zone2 = proxmoxve.sdn.zone.SimpleLegacy("example_zone_2",
resource_id="zone2",
mtu=1500,
opts = pulumi.ResourceOptions(depends_on=[finalizer]))
# Basic VNet (Simple)
basic_vnet = proxmoxve.sdn.VnetLegacy("basic_vnet",
resource_id="vnet1",
zone=example_zone1.resource_id,
opts = pulumi.ResourceOptions(depends_on=[finalizer]))
# VNet with Alias and Port Isolation
isolated_vnet = proxmoxve.sdn.VnetLegacy("isolated_vnet",
resource_id="vnet2",
zone=example_zone2.resource_id,
alias="Isolated VNet",
isolate_ports=True,
vlan_aware=False,
opts = pulumi.ResourceOptions(depends_on=[finalizer]))
# SDN Applier for all resources
vnet_applier = proxmoxve.sdn.ApplierLegacy("vnet_applier", opts = pulumi.ResourceOptions(depends_on=[
example_zone1,
example_zone2,
basic_vnet,
isolated_vnet,
]))
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve/sdn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
finalizer, err := sdn.NewApplierLegacy(ctx, "finalizer", nil)
if err != nil {
return err
}
// SDN Zone (Simple) - Basic zone for simple vnets
exampleZone1, err := sdn.NewSimpleLegacy(ctx, "example_zone_1", &sdn.SimpleLegacyArgs{
ResourceId: pulumi.String("zone1"),
Mtu: pulumi.Int(1500),
Dns: pulumi.String("1.1.1.1"),
DnsZone: pulumi.String("example.com"),
Ipam: pulumi.String("pve"),
ReverseDns: pulumi.String("1.1.1.1"),
}, pulumi.DependsOn([]pulumi.Resource{
finalizer,
}))
if err != nil {
return err
}
// SDN Zone (Simple) - Second zone for demonstration
exampleZone2, err := sdn.NewSimpleLegacy(ctx, "example_zone_2", &sdn.SimpleLegacyArgs{
ResourceId: pulumi.String("zone2"),
Mtu: pulumi.Int(1500),
}, pulumi.DependsOn([]pulumi.Resource{
finalizer,
}))
if err != nil {
return err
}
// Basic VNet (Simple)
basicVnet, err := sdn.NewVnetLegacy(ctx, "basic_vnet", &sdn.VnetLegacyArgs{
ResourceId: pulumi.String("vnet1"),
Zone: exampleZone1.ResourceId,
}, pulumi.DependsOn([]pulumi.Resource{
finalizer,
}))
if err != nil {
return err
}
// VNet with Alias and Port Isolation
isolatedVnet, err := sdn.NewVnetLegacy(ctx, "isolated_vnet", &sdn.VnetLegacyArgs{
ResourceId: pulumi.String("vnet2"),
Zone: exampleZone2.ResourceId,
Alias: pulumi.String("Isolated VNet"),
IsolatePorts: pulumi.Bool(true),
VlanAware: pulumi.Bool(false),
}, pulumi.DependsOn([]pulumi.Resource{
finalizer,
}))
if err != nil {
return err
}
// SDN Applier for all resources
_, err = sdn.NewApplierLegacy(ctx, "vnet_applier", nil, pulumi.DependsOn([]pulumi.Resource{
exampleZone1,
exampleZone2,
basicVnet,
isolatedVnet,
}))
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 finalizer = new ProxmoxVE.Sdn.ApplierLegacy("finalizer");
// SDN Zone (Simple) - Basic zone for simple vnets
var exampleZone1 = new ProxmoxVE.Sdn.Zone.SimpleLegacy("example_zone_1", new()
{
ResourceId = "zone1",
Mtu = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1500) (example.pp:7,16-20)),
Dns = "1.1.1.1",
DnsZone = "example.com",
Ipam = "pve",
ReverseDns = "1.1.1.1",
}, new CustomResourceOptions
{
DependsOn =
{
finalizer,
},
});
// SDN Zone (Simple) - Second zone for demonstration
var exampleZone2 = new ProxmoxVE.Sdn.Zone.SimpleLegacy("example_zone_2", new()
{
ResourceId = "zone2",
Mtu = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1500) (example.pp:25,16-20)),
}, new CustomResourceOptions
{
DependsOn =
{
finalizer,
},
});
// Basic VNet (Simple)
var basicVnet = new ProxmoxVE.Sdn.VnetLegacy("basic_vnet", new()
{
ResourceId = "vnet1",
Zone = exampleZone1.ResourceId,
}, new CustomResourceOptions
{
DependsOn =
{
finalizer,
},
});
// VNet with Alias and Port Isolation
var isolatedVnet = new ProxmoxVE.Sdn.VnetLegacy("isolated_vnet", new()
{
ResourceId = "vnet2",
Zone = exampleZone2.ResourceId,
Alias = "Isolated VNet",
IsolatePorts = true,
VlanAware = false,
}, new CustomResourceOptions
{
DependsOn =
{
finalizer,
},
});
// SDN Applier for all resources
var vnetApplier = new ProxmoxVE.Sdn.ApplierLegacy("vnet_applier", new()
{
}, new CustomResourceOptions
{
DependsOn =
{
exampleZone1,
exampleZone2,
basicVnet,
isolatedVnet,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import io.muehlbachler.pulumi.proxmoxve.sdn.ApplierLegacy;
import io.muehlbachler.pulumi.proxmoxve.sdn.SimpleLegacy;
import io.muehlbachler.pulumi.proxmoxve.sdn.SimpleLegacyArgs;
import io.muehlbachler.pulumi.proxmoxve.sdn.VnetLegacy;
import io.muehlbachler.pulumi.proxmoxve.sdn.VnetLegacyArgs;
import io.muehlbachler.pulumi.proxmoxve.sdn.ApplierLegacyArgs;
import com.pulumi.resources.CustomResourceOptions;
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 finalizer = new ApplierLegacy("finalizer");
// SDN Zone (Simple) - Basic zone for simple vnets
var exampleZone1 = new SimpleLegacy("exampleZone1", SimpleLegacyArgs.builder()
.resourceId("zone1")
.mtu(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1500) (example.pp:7,16-20)))
.dns("1.1.1.1")
.dnsZone("example.com")
.ipam("pve")
.reverseDns("1.1.1.1")
.build(), CustomResourceOptions.builder()
.dependsOn(finalizer)
.build());
// SDN Zone (Simple) - Second zone for demonstration
var exampleZone2 = new SimpleLegacy("exampleZone2", SimpleLegacyArgs.builder()
.resourceId("zone2")
.mtu(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1500) (example.pp:25,16-20)))
.build(), CustomResourceOptions.builder()
.dependsOn(finalizer)
.build());
// Basic VNet (Simple)
var basicVnet = new VnetLegacy("basicVnet", VnetLegacyArgs.builder()
.resourceId("vnet1")
.zone(exampleZone1.resourceId())
.build(), CustomResourceOptions.builder()
.dependsOn(finalizer)
.build());
// VNet with Alias and Port Isolation
var isolatedVnet = new VnetLegacy("isolatedVnet", VnetLegacyArgs.builder()
.resourceId("vnet2")
.zone(exampleZone2.resourceId())
.alias("Isolated VNet")
.isolatePorts(true)
.vlanAware(false)
.build(), CustomResourceOptions.builder()
.dependsOn(finalizer)
.build());
// SDN Applier for all resources
var vnetApplier = new ApplierLegacy("vnetApplier", ApplierLegacyArgs.Empty, CustomResourceOptions.builder()
.dependsOn(
exampleZone1,
exampleZone2,
basicVnet,
isolatedVnet)
.build());
}
}
resources:
# SDN Zone (Simple) - Basic zone for simple vnets
exampleZone1:
type: proxmoxve:sdn/zone:SimpleLegacy
name: example_zone_1
properties:
resourceId: zone1
mtu: 1500 # Optional attributes
dns: 1.1.1.1
dnsZone: example.com
ipam: pve
reverseDns: 1.1.1.1
options:
dependsOn:
- ${finalizer}
# SDN Zone (Simple) - Second zone for demonstration
exampleZone2:
type: proxmoxve:sdn/zone:SimpleLegacy
name: example_zone_2
properties:
resourceId: zone2
mtu: 1500
options:
dependsOn:
- ${finalizer}
# Basic VNet (Simple)
basicVnet:
type: proxmoxve:sdn:VnetLegacy
name: basic_vnet
properties:
resourceId: vnet1
zone: ${exampleZone1.resourceId}
options:
dependsOn:
- ${finalizer}
# VNet with Alias and Port Isolation
isolatedVnet:
type: proxmoxve:sdn:VnetLegacy
name: isolated_vnet
properties:
resourceId: vnet2
zone: ${exampleZone2.resourceId}
alias: Isolated VNet
isolatePorts: true
vlanAware: false
options:
dependsOn:
- ${finalizer}
# SDN Applier for all resources
vnetApplier:
type: proxmoxve:sdn:ApplierLegacy
name: vnet_applier
options:
dependsOn:
- ${exampleZone1}
- ${exampleZone2}
- ${basicVnet}
- ${isolatedVnet}
finalizer:
type: proxmoxve:sdn:ApplierLegacy
Create VnetLegacy Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new VnetLegacy(name: string, args: VnetLegacyArgs, opts?: CustomResourceOptions);@overload
def VnetLegacy(resource_name: str,
args: VnetLegacyArgs,
opts: Optional[ResourceOptions] = None)
@overload
def VnetLegacy(resource_name: str,
opts: Optional[ResourceOptions] = None,
resource_id: Optional[str] = None,
zone: Optional[str] = None,
alias: Optional[str] = None,
isolate_ports: Optional[bool] = None,
tag: Optional[int] = None,
vlan_aware: Optional[bool] = None)func NewVnetLegacy(ctx *Context, name string, args VnetLegacyArgs, opts ...ResourceOption) (*VnetLegacy, error)public VnetLegacy(string name, VnetLegacyArgs args, CustomResourceOptions? opts = null)
public VnetLegacy(String name, VnetLegacyArgs args)
public VnetLegacy(String name, VnetLegacyArgs args, CustomResourceOptions options)
type: proxmoxve:sdn:VnetLegacy
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 VnetLegacyArgs
- 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 VnetLegacyArgs
- 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 VnetLegacyArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args VnetLegacyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args VnetLegacyArgs
- 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 vnetLegacyResource = new ProxmoxVE.Sdn.VnetLegacy("vnetLegacyResource", new()
{
ResourceId = "string",
Zone = "string",
Alias = "string",
IsolatePorts = false,
Tag = 0,
VlanAware = false,
});
example, err := sdn.NewVnetLegacy(ctx, "vnetLegacyResource", &sdn.VnetLegacyArgs{
ResourceId: pulumi.String("string"),
Zone: pulumi.String("string"),
Alias: pulumi.String("string"),
IsolatePorts: pulumi.Bool(false),
Tag: pulumi.Int(0),
VlanAware: pulumi.Bool(false),
})
var vnetLegacyResource = new VnetLegacy("vnetLegacyResource", VnetLegacyArgs.builder()
.resourceId("string")
.zone("string")
.alias("string")
.isolatePorts(false)
.tag(0)
.vlanAware(false)
.build());
vnet_legacy_resource = proxmoxve.sdn.VnetLegacy("vnetLegacyResource",
resource_id="string",
zone="string",
alias="string",
isolate_ports=False,
tag=0,
vlan_aware=False)
const vnetLegacyResource = new proxmoxve.sdn.VnetLegacy("vnetLegacyResource", {
resourceId: "string",
zone: "string",
alias: "string",
isolatePorts: false,
tag: 0,
vlanAware: false,
});
type: proxmoxve:sdn:VnetLegacy
properties:
alias: string
isolatePorts: false
resourceId: string
tag: 0
vlanAware: false
zone: string
VnetLegacy 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 VnetLegacy resource accepts the following input properties:
- Resource
Id string - The unique identifier of the SDN VNet.
- Zone string
- The zone to which this VNet belongs.
- Alias string
- An optional alias for this VNet.
- Isolate
Ports bool - Isolate ports within this VNet.
- Tag int
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- Vlan
Aware bool - Allow VM VLANs to pass through this VNet.
- Resource
Id string - The unique identifier of the SDN VNet.
- Zone string
- The zone to which this VNet belongs.
- Alias string
- An optional alias for this VNet.
- Isolate
Ports bool - Isolate ports within this VNet.
- Tag int
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- Vlan
Aware bool - Allow VM VLANs to pass through this VNet.
- resource
Id String - The unique identifier of the SDN VNet.
- zone String
- The zone to which this VNet belongs.
- alias String
- An optional alias for this VNet.
- isolate
Ports Boolean - Isolate ports within this VNet.
- tag Integer
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan
Aware Boolean - Allow VM VLANs to pass through this VNet.
- resource
Id string - The unique identifier of the SDN VNet.
- zone string
- The zone to which this VNet belongs.
- alias string
- An optional alias for this VNet.
- isolate
Ports boolean - Isolate ports within this VNet.
- tag number
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan
Aware boolean - Allow VM VLANs to pass through this VNet.
- resource_
id str - The unique identifier of the SDN VNet.
- zone str
- The zone to which this VNet belongs.
- alias str
- An optional alias for this VNet.
- isolate_
ports bool - Isolate ports within this VNet.
- tag int
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan_
aware bool - Allow VM VLANs to pass through this VNet.
- resource
Id String - The unique identifier of the SDN VNet.
- zone String
- The zone to which this VNet belongs.
- alias String
- An optional alias for this VNet.
- isolate
Ports Boolean - Isolate ports within this VNet.
- tag Number
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan
Aware Boolean - Allow VM VLANs to pass through this VNet.
Outputs
All input properties are implicitly available as output properties. Additionally, the VnetLegacy 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 VnetLegacy Resource
Get an existing VnetLegacy 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?: VnetLegacyState, opts?: CustomResourceOptions): VnetLegacy@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
alias: Optional[str] = None,
isolate_ports: Optional[bool] = None,
resource_id: Optional[str] = None,
tag: Optional[int] = None,
vlan_aware: Optional[bool] = None,
zone: Optional[str] = None) -> VnetLegacyfunc GetVnetLegacy(ctx *Context, name string, id IDInput, state *VnetLegacyState, opts ...ResourceOption) (*VnetLegacy, error)public static VnetLegacy Get(string name, Input<string> id, VnetLegacyState? state, CustomResourceOptions? opts = null)public static VnetLegacy get(String name, Output<String> id, VnetLegacyState state, CustomResourceOptions options)resources: _: type: proxmoxve:sdn:VnetLegacy 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.
- Alias string
- An optional alias for this VNet.
- Isolate
Ports bool - Isolate ports within this VNet.
- Resource
Id string - The unique identifier of the SDN VNet.
- Tag int
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- Vlan
Aware bool - Allow VM VLANs to pass through this VNet.
- Zone string
- The zone to which this VNet belongs.
- Alias string
- An optional alias for this VNet.
- Isolate
Ports bool - Isolate ports within this VNet.
- Resource
Id string - The unique identifier of the SDN VNet.
- Tag int
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- Vlan
Aware bool - Allow VM VLANs to pass through this VNet.
- Zone string
- The zone to which this VNet belongs.
- alias String
- An optional alias for this VNet.
- isolate
Ports Boolean - Isolate ports within this VNet.
- resource
Id String - The unique identifier of the SDN VNet.
- tag Integer
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan
Aware Boolean - Allow VM VLANs to pass through this VNet.
- zone String
- The zone to which this VNet belongs.
- alias string
- An optional alias for this VNet.
- isolate
Ports boolean - Isolate ports within this VNet.
- resource
Id string - The unique identifier of the SDN VNet.
- tag number
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan
Aware boolean - Allow VM VLANs to pass through this VNet.
- zone string
- The zone to which this VNet belongs.
- alias str
- An optional alias for this VNet.
- isolate_
ports bool - Isolate ports within this VNet.
- resource_
id str - The unique identifier of the SDN VNet.
- tag int
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan_
aware bool - Allow VM VLANs to pass through this VNet.
- zone str
- The zone to which this VNet belongs.
- alias String
- An optional alias for this VNet.
- isolate
Ports Boolean - Isolate ports within this VNet.
- resource
Id String - The unique identifier of the SDN VNet.
- tag Number
- Tag value for VLAN/VXLAN (can't be used with other zone types).
- vlan
Aware Boolean - Allow VM VLANs to pass through this VNet.
- zone String
- The zone to which this VNet belongs.
Import
!/usr/bin/env sh SDN vnet can be imported using its unique identifier (vnet ID)
$ pulumi import proxmoxve:sdn/vnetLegacy:VnetLegacy basic_vnet vnet1
$ pulumi import proxmoxve:sdn/vnetLegacy:VnetLegacy isolated_vnet vnet2
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
proxmoxTerraform Provider.
published on Sunday, Apr 5, 2026 by Daniel Muehlbachler-Pietrzykowski
