published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
Deprecated: Use
proxmoxve.cloned.Vminstead. This resource will be removed in v1.0.
EXPERIMENTAL
Clone a VM from a source template/VM and manage only explicitly-defined configuration. This resource uses explicit opt-in management: only configuration blocks and devices explicitly listed in your Terraform code are managed. Inherited settings from the template are preserved unless explicitly overridden or deleted. Removing a configuration from Terraform stops managing it but does not delete it from the VM.
Limitations
This resource intentionally manages only a subset of VM configuration. The following are currently not managed and must be inherited from the source template (or managed via proxmoxve.VmLegacy with a clone block):
- BIOS / machine / boot order
- EFI disk / secure boot settings
- TPM state
- Cloud-init / initialization
- QEMU guest agent configuration
- PCI/USB passthrough, serial/audio devices, watchdog, VirtioFS
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
// Example 1: Basic clone with minimal management
const basicClone = new proxmoxve.cloned.VmLegacy("basic_clone", {
nodeName: "pve",
name: "basic-clone",
clone: {
sourceVmId: 100,
full: true,
},
cpu: {
cores: 4,
},
});
// Example 2: Clone with explicit network management
const networkManaged = new proxmoxve.cloned.VmLegacy("network_managed", {
nodeName: "pve",
name: "network-clone",
clone: {
sourceVmId: 100,
},
network: {
net0: {
bridge: "vmbr0",
model: "virtio",
tag: 100,
},
net1: {
bridge: "vmbr1",
model: "virtio",
firewall: true,
macAddress: "BC:24:11:2E:C5:00",
},
},
cpu: {
cores: 2,
},
});
// Example 3: Clone with disk management
const diskManaged = new proxmoxve.cloned.VmLegacy("disk_managed", {
nodeName: "pve",
name: "disk-clone",
clone: {
sourceVmId: 100,
targetDatastore: "local-lvm",
},
disk: {
scsi0: {
datastoreId: "local-lvm",
sizeGb: 50,
discard: "on",
ssd: true,
},
scsi1: {
datastoreId: "local-lvm",
sizeGb: 100,
backup: false,
},
},
});
// Example 4: Clone with explicit device deletion
const selectiveDelete = new proxmoxve.cloned.VmLegacy("selective_delete", {
nodeName: "pve",
name: "minimal-clone",
clone: {
sourceVmId: 100,
},
network: {
net0: {
bridge: "vmbr0",
model: "virtio",
},
},
"delete": {
networks: [
"net1",
"net2",
],
},
});
// Example 5: Full-featured clone with multiple settings
const fullFeatured = new proxmoxve.cloned.VmLegacy("full_featured", {
nodeName: "pve",
name: "production-vm",
description: "Production VM cloned from template",
tags: [
"production",
"web",
],
clone: {
sourceVmId: 100,
sourceNodeName: "pve",
full: true,
targetDatastore: "local-lvm",
retries: 3,
},
cpu: {
cores: 8,
sockets: 1,
architecture: "x86_64",
type: "host",
},
memory: {
size: 8192,
balloon: 2048,
shares: 2000,
},
network: {
net0: {
bridge: "vmbr0",
model: "virtio",
tag: 100,
firewall: true,
rateLimit: 100,
},
},
disk: {
scsi0: {
datastoreId: "local-lvm",
sizeGb: 100,
discard: "on",
iothread: true,
ssd: true,
cache: "writethrough",
},
},
vga: {
type: "std",
memory: 16,
},
"delete": {
disks: ["ide2"],
},
stopOnDestroy: false,
purgeOnDestroy: true,
deleteUnreferencedDisksOnDestroy: false,
timeouts: {
create: "30m",
update: "30m",
"delete": "10m",
},
});
// Example 6: Linked clone for testing
const testClone = new proxmoxve.cloned.VmLegacy("test_clone", {
nodeName: "pve",
name: "test-vm",
clone: {
sourceVmId: 100,
full: false,
},
cpu: {
cores: 2,
},
network: {
net0: {
bridge: "vmbr0",
model: "virtio",
},
},
});
// Example 7: Clone with pool assignment
const pooledClone = new proxmoxve.cloned.VmLegacy("pooled_clone", {
nodeName: "pve",
name: "pooled-vm",
clone: {
sourceVmId: 100,
poolId: "production",
},
cpu: {
cores: 4,
},
});
// Example 8: Import existing cloned VM
const imported = new proxmoxve.cloned.VmLegacy("imported", {
resourceId: "123",
nodeName: "pve",
clone: {
sourceVmId: 100,
},
cpu: {
cores: 4,
},
});
import pulumi
import pulumi_proxmoxve as proxmoxve
# Example 1: Basic clone with minimal management
basic_clone = proxmoxve.cloned.VmLegacy("basic_clone",
node_name="pve",
name="basic-clone",
clone={
"source_vm_id": 100,
"full": True,
},
cpu={
"cores": 4,
})
# Example 2: Clone with explicit network management
network_managed = proxmoxve.cloned.VmLegacy("network_managed",
node_name="pve",
name="network-clone",
clone={
"source_vm_id": 100,
},
network={
"net0": {
"bridge": "vmbr0",
"model": "virtio",
"tag": 100,
},
"net1": {
"bridge": "vmbr1",
"model": "virtio",
"firewall": True,
"mac_address": "BC:24:11:2E:C5:00",
},
},
cpu={
"cores": 2,
})
# Example 3: Clone with disk management
disk_managed = proxmoxve.cloned.VmLegacy("disk_managed",
node_name="pve",
name="disk-clone",
clone={
"source_vm_id": 100,
"target_datastore": "local-lvm",
},
disk={
"scsi0": {
"datastore_id": "local-lvm",
"size_gb": 50,
"discard": "on",
"ssd": True,
},
"scsi1": {
"datastore_id": "local-lvm",
"size_gb": 100,
"backup": False,
},
})
# Example 4: Clone with explicit device deletion
selective_delete = proxmoxve.cloned.VmLegacy("selective_delete",
node_name="pve",
name="minimal-clone",
clone={
"source_vm_id": 100,
},
network={
"net0": {
"bridge": "vmbr0",
"model": "virtio",
},
},
delete={
"networks": [
"net1",
"net2",
],
})
# Example 5: Full-featured clone with multiple settings
full_featured = proxmoxve.cloned.VmLegacy("full_featured",
node_name="pve",
name="production-vm",
description="Production VM cloned from template",
tags=[
"production",
"web",
],
clone={
"source_vm_id": 100,
"source_node_name": "pve",
"full": True,
"target_datastore": "local-lvm",
"retries": 3,
},
cpu={
"cores": 8,
"sockets": 1,
"architecture": "x86_64",
"type": "host",
},
memory={
"size": 8192,
"balloon": 2048,
"shares": 2000,
},
network={
"net0": {
"bridge": "vmbr0",
"model": "virtio",
"tag": 100,
"firewall": True,
"rate_limit": 100,
},
},
disk={
"scsi0": {
"datastore_id": "local-lvm",
"size_gb": 100,
"discard": "on",
"iothread": True,
"ssd": True,
"cache": "writethrough",
},
},
vga={
"type": "std",
"memory": 16,
},
delete={
"disks": ["ide2"],
},
stop_on_destroy=False,
purge_on_destroy=True,
delete_unreferenced_disks_on_destroy=False,
timeouts={
"create": "30m",
"update": "30m",
"delete": "10m",
})
# Example 6: Linked clone for testing
test_clone = proxmoxve.cloned.VmLegacy("test_clone",
node_name="pve",
name="test-vm",
clone={
"source_vm_id": 100,
"full": False,
},
cpu={
"cores": 2,
},
network={
"net0": {
"bridge": "vmbr0",
"model": "virtio",
},
})
# Example 7: Clone with pool assignment
pooled_clone = proxmoxve.cloned.VmLegacy("pooled_clone",
node_name="pve",
name="pooled-vm",
clone={
"source_vm_id": 100,
"pool_id": "production",
},
cpu={
"cores": 4,
})
# Example 8: Import existing cloned VM
imported = proxmoxve.cloned.VmLegacy("imported",
resource_id="123",
node_name="pve",
clone={
"source_vm_id": 100,
},
cpu={
"cores": 4,
})
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve/cloned"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Example 1: Basic clone with minimal management
_, err := cloned.NewVmLegacy(ctx, "basic_clone", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("basic-clone"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
Full: pulumi.Bool(true),
},
Cpu: &cloned.VmLegacyCpuArgs{
Cores: pulumi.Int(4),
},
})
if err != nil {
return err
}
// Example 2: Clone with explicit network management
_, err = cloned.NewVmLegacy(ctx, "network_managed", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("network-clone"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
},
Network: cloned.VmLegacyNetworkMap{
"net0": &cloned.VmLegacyNetworkArgs{
Bridge: pulumi.String("vmbr0"),
Model: pulumi.String("virtio"),
Tag: pulumi.Int(100),
},
"net1": &cloned.VmLegacyNetworkArgs{
Bridge: pulumi.String("vmbr1"),
Model: pulumi.String("virtio"),
Firewall: pulumi.Bool(true),
MacAddress: pulumi.String("BC:24:11:2E:C5:00"),
},
},
Cpu: &cloned.VmLegacyCpuArgs{
Cores: pulumi.Int(2),
},
})
if err != nil {
return err
}
// Example 3: Clone with disk management
_, err = cloned.NewVmLegacy(ctx, "disk_managed", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("disk-clone"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
TargetDatastore: pulumi.String("local-lvm"),
},
Disk: cloned.VmLegacyDiskMap{
"scsi0": &cloned.VmLegacyDiskArgs{
DatastoreId: pulumi.String("local-lvm"),
SizeGb: pulumi.Int(50),
Discard: pulumi.String("on"),
Ssd: pulumi.Bool(true),
},
"scsi1": &cloned.VmLegacyDiskArgs{
DatastoreId: pulumi.String("local-lvm"),
SizeGb: pulumi.Int(100),
Backup: pulumi.Bool(false),
},
},
})
if err != nil {
return err
}
// Example 4: Clone with explicit device deletion
_, err = cloned.NewVmLegacy(ctx, "selective_delete", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("minimal-clone"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
},
Network: cloned.VmLegacyNetworkMap{
"net0": &cloned.VmLegacyNetworkArgs{
Bridge: pulumi.String("vmbr0"),
Model: pulumi.String("virtio"),
},
},
Delete: &cloned.VmLegacyDeleteArgs{
Networks: pulumi.StringArray{
pulumi.String("net1"),
pulumi.String("net2"),
},
},
})
if err != nil {
return err
}
// Example 5: Full-featured clone with multiple settings
_, err = cloned.NewVmLegacy(ctx, "full_featured", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("production-vm"),
Description: pulumi.String("Production VM cloned from template"),
Tags: pulumi.StringArray{
pulumi.String("production"),
pulumi.String("web"),
},
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
SourceNodeName: pulumi.String("pve"),
Full: pulumi.Bool(true),
TargetDatastore: pulumi.String("local-lvm"),
Retries: pulumi.Int(3),
},
Cpu: &cloned.VmLegacyCpuArgs{
Cores: pulumi.Int(8),
Sockets: pulumi.Int(1),
Architecture: pulumi.String("x86_64"),
Type: pulumi.String("host"),
},
Memory: &cloned.VmLegacyMemoryArgs{
Size: pulumi.Int(8192),
Balloon: pulumi.Int(2048),
Shares: pulumi.Int(2000),
},
Network: cloned.VmLegacyNetworkMap{
"net0": &cloned.VmLegacyNetworkArgs{
Bridge: pulumi.String("vmbr0"),
Model: pulumi.String("virtio"),
Tag: pulumi.Int(100),
Firewall: pulumi.Bool(true),
RateLimit: pulumi.Float64(100),
},
},
Disk: cloned.VmLegacyDiskMap{
"scsi0": &cloned.VmLegacyDiskArgs{
DatastoreId: pulumi.String("local-lvm"),
SizeGb: pulumi.Int(100),
Discard: pulumi.String("on"),
Iothread: pulumi.Bool(true),
Ssd: pulumi.Bool(true),
Cache: pulumi.String("writethrough"),
},
},
Vga: &cloned.VmLegacyVgaArgs{
Type: pulumi.String("std"),
Memory: pulumi.Int(16),
},
Delete: &cloned.VmLegacyDeleteArgs{
Disks: pulumi.StringArray{
pulumi.String("ide2"),
},
},
StopOnDestroy: pulumi.Bool(false),
PurgeOnDestroy: pulumi.Bool(true),
DeleteUnreferencedDisksOnDestroy: pulumi.Bool(false),
Timeouts: &cloned.VmLegacyTimeoutsArgs{
Create: pulumi.String("30m"),
Update: pulumi.String("30m"),
Delete: pulumi.String("10m"),
},
})
if err != nil {
return err
}
// Example 6: Linked clone for testing
_, err = cloned.NewVmLegacy(ctx, "test_clone", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("test-vm"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
Full: pulumi.Bool(false),
},
Cpu: &cloned.VmLegacyCpuArgs{
Cores: pulumi.Int(2),
},
Network: cloned.VmLegacyNetworkMap{
"net0": &cloned.VmLegacyNetworkArgs{
Bridge: pulumi.String("vmbr0"),
Model: pulumi.String("virtio"),
},
},
})
if err != nil {
return err
}
// Example 7: Clone with pool assignment
_, err = cloned.NewVmLegacy(ctx, "pooled_clone", &cloned.VmLegacyArgs{
NodeName: pulumi.String("pve"),
Name: pulumi.String("pooled-vm"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
PoolId: pulumi.String("production"),
},
Cpu: &cloned.VmLegacyCpuArgs{
Cores: pulumi.Int(4),
},
})
if err != nil {
return err
}
// Example 8: Import existing cloned VM
_, err = cloned.NewVmLegacy(ctx, "imported", &cloned.VmLegacyArgs{
ResourceId: pulumi.String("123"),
NodeName: pulumi.String("pve"),
Clone: &cloned.VmLegacyCloneArgs{
SourceVmId: pulumi.Int(100),
},
Cpu: &cloned.VmLegacyCpuArgs{
Cores: pulumi.Int(4),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
// Example 1: Basic clone with minimal management
var basicClone = new ProxmoxVE.Cloned.VmLegacy("basic_clone", new()
{
NodeName = "pve",
Name = "basic-clone",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:6,18-21)),
Full = true,
},
Cpu = new ProxmoxVE.Cloned.Inputs.VmLegacyCpuArgs
{
Cores = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(4) (example.pp:12,13-14)),
},
});
// Example 2: Clone with explicit network management
var networkManaged = new ProxmoxVE.Cloned.VmLegacy("network_managed", new()
{
NodeName = "pve",
Name = "network-clone",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:23,18-21)),
},
Network =
{
{ "net0", new ProxmoxVE.Cloned.Inputs.VmLegacyNetworkArgs
{
Bridge = "vmbr0",
Model = "virtio",
Tag = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:29,16-19)),
} },
{ "net1", new ProxmoxVE.Cloned.Inputs.VmLegacyNetworkArgs
{
Bridge = "vmbr1",
Model = "virtio",
Firewall = true,
MacAddress = "BC:24:11:2E:C5:00",
} },
},
Cpu = new ProxmoxVE.Cloned.Inputs.VmLegacyCpuArgs
{
Cores = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2) (example.pp:40,13-14)),
},
});
// Example 3: Clone with disk management
var diskManaged = new ProxmoxVE.Cloned.VmLegacy("disk_managed", new()
{
NodeName = "pve",
Name = "disk-clone",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:51,23-26)),
TargetDatastore = "local-lvm",
},
Disk =
{
{ "scsi0", new ProxmoxVE.Cloned.Inputs.VmLegacyDiskArgs
{
DatastoreId = "local-lvm",
SizeGb = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(50) (example.pp:57,21-23)),
Discard = "on",
Ssd = true,
} },
{ "scsi1", new ProxmoxVE.Cloned.Inputs.VmLegacyDiskArgs
{
DatastoreId = "local-lvm",
SizeGb = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:63,21-24)),
Backup = false,
} },
},
});
// Example 4: Clone with explicit device deletion
var selectiveDelete = new ProxmoxVE.Cloned.VmLegacy("selective_delete", new()
{
NodeName = "pve",
Name = "minimal-clone",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:76,18-21)),
},
Network =
{
{ "net0", new ProxmoxVE.Cloned.Inputs.VmLegacyNetworkArgs
{
Bridge = "vmbr0",
Model = "virtio",
} },
},
Delete = new ProxmoxVE.Cloned.Inputs.VmLegacyDeleteArgs
{
Networks = new[]
{
"net1",
"net2",
},
},
});
// Example 5: Full-featured clone with multiple settings
var fullFeatured = new ProxmoxVE.Cloned.VmLegacy("full_featured", new()
{
NodeName = "pve",
Name = "production-vm",
Description = "Production VM cloned from template",
Tags = new[]
{
"production",
"web",
},
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:98,23-26)),
SourceNodeName = "pve",
Full = true,
TargetDatastore = "local-lvm",
Retries = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(3) (example.pp:102,23-24)),
},
Cpu = new ProxmoxVE.Cloned.Inputs.VmLegacyCpuArgs
{
Cores = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(8) (example.pp:105,20-21)),
Sockets = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1) (example.pp:106,20-21)),
Architecture = "x86_64",
Type = "host",
},
Memory = new ProxmoxVE.Cloned.Inputs.VmLegacyMemoryArgs
{
Size = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(8192) (example.pp:111,15-19)),
Balloon = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2048) (example.pp:112,15-19)),
Shares = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2000) (example.pp:113,15-19)),
},
Network =
{
{ "net0", new ProxmoxVE.Cloned.Inputs.VmLegacyNetworkArgs
{
Bridge = "vmbr0",
Model = "virtio",
Tag = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:119,19-22)),
Firewall = true,
RateLimit = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:121,19-22)),
} },
},
Disk =
{
{ "scsi0", new ProxmoxVE.Cloned.Inputs.VmLegacyDiskArgs
{
DatastoreId = "local-lvm",
SizeGb = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:128,21-24)),
Discard = "on",
Iothread = true,
Ssd = true,
Cache = "writethrough",
} },
},
Vga = new ProxmoxVE.Cloned.Inputs.VmLegacyVgaArgs
{
Type = "std",
Memory = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(16) (example.pp:137,14-16)),
},
Delete = new ProxmoxVE.Cloned.Inputs.VmLegacyDeleteArgs
{
Disks = new[]
{
"ide2",
},
},
StopOnDestroy = false,
PurgeOnDestroy = true,
DeleteUnreferencedDisksOnDestroy = false,
Timeouts = new ProxmoxVE.Cloned.Inputs.VmLegacyTimeoutsArgs
{
Create = "30m",
Update = "30m",
Delete = "10m",
},
});
// Example 6: Linked clone for testing
var testClone = new ProxmoxVE.Cloned.VmLegacy("test_clone", new()
{
NodeName = "pve",
Name = "test-vm",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:162,18-21)),
Full = false,
},
Cpu = new ProxmoxVE.Cloned.Inputs.VmLegacyCpuArgs
{
Cores = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2) (example.pp:167,13-14)),
},
Network =
{
{ "net0", new ProxmoxVE.Cloned.Inputs.VmLegacyNetworkArgs
{
Bridge = "vmbr0",
Model = "virtio",
} },
},
});
// Example 7: Clone with pool assignment
var pooledClone = new ProxmoxVE.Cloned.VmLegacy("pooled_clone", new()
{
NodeName = "pve",
Name = "pooled-vm",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:184,18-21)),
PoolId = "production",
},
Cpu = new ProxmoxVE.Cloned.Inputs.VmLegacyCpuArgs
{
Cores = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(4) (example.pp:188,13-14)),
},
});
// Example 8: Import existing cloned VM
var imported = new ProxmoxVE.Cloned.VmLegacy("imported", new()
{
ResourceId = "123",
NodeName = "pve",
Clone = new ProxmoxVE.Cloned.Inputs.VmLegacyCloneArgs
{
SourceVmId = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:199,18-21)),
},
Cpu = new ProxmoxVE.Cloned.Inputs.VmLegacyCpuArgs
{
Cores = %!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(4) (example.pp:203,13-14)),
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import io.muehlbachler.pulumi.proxmoxve.cloned.VmLegacy;
import io.muehlbachler.pulumi.proxmoxve.cloned.VmLegacyArgs;
import com.pulumi.proxmoxve.cloned.inputs.VmLegacyCloneArgs;
import com.pulumi.proxmoxve.cloned.inputs.VmLegacyCpuArgs;
import com.pulumi.proxmoxve.cloned.inputs.VmLegacyDeleteArgs;
import com.pulumi.proxmoxve.cloned.inputs.VmLegacyMemoryArgs;
import com.pulumi.proxmoxve.cloned.inputs.VmLegacyVgaArgs;
import com.pulumi.proxmoxve.cloned.inputs.VmLegacyTimeoutsArgs;
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) {
// Example 1: Basic clone with minimal management
var basicClone = new VmLegacy("basicClone", VmLegacyArgs.builder()
.nodeName("pve")
.name("basic-clone")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:6,18-21)))
.full(true)
.build())
.cpu(VmLegacyCpuArgs.builder()
.cores(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(4) (example.pp:12,13-14)))
.build())
.build());
// Example 2: Clone with explicit network management
var networkManaged = new VmLegacy("networkManaged", VmLegacyArgs.builder()
.nodeName("pve")
.name("network-clone")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:23,18-21)))
.build())
.network(Map.ofEntries(
Map.entry("net0", VmLegacyNetworkArgs.builder()
.bridge("vmbr0")
.model("virtio")
.tag(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:29,16-19)))
.build()),
Map.entry("net1", VmLegacyNetworkArgs.builder()
.bridge("vmbr1")
.model("virtio")
.firewall(true)
.macAddress("BC:24:11:2E:C5:00")
.build())
))
.cpu(VmLegacyCpuArgs.builder()
.cores(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2) (example.pp:40,13-14)))
.build())
.build());
// Example 3: Clone with disk management
var diskManaged = new VmLegacy("diskManaged", VmLegacyArgs.builder()
.nodeName("pve")
.name("disk-clone")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:51,23-26)))
.targetDatastore("local-lvm")
.build())
.disk(Map.ofEntries(
Map.entry("scsi0", VmLegacyDiskArgs.builder()
.datastoreId("local-lvm")
.sizeGb(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(50) (example.pp:57,21-23)))
.discard("on")
.ssd(true)
.build()),
Map.entry("scsi1", VmLegacyDiskArgs.builder()
.datastoreId("local-lvm")
.sizeGb(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:63,21-24)))
.backup(false)
.build())
))
.build());
// Example 4: Clone with explicit device deletion
var selectiveDelete = new VmLegacy("selectiveDelete", VmLegacyArgs.builder()
.nodeName("pve")
.name("minimal-clone")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:76,18-21)))
.build())
.network(Map.of("net0", VmLegacyNetworkArgs.builder()
.bridge("vmbr0")
.model("virtio")
.build()))
.delete(VmLegacyDeleteArgs.builder()
.networks(
"net1",
"net2")
.build())
.build());
// Example 5: Full-featured clone with multiple settings
var fullFeatured = new VmLegacy("fullFeatured", VmLegacyArgs.builder()
.nodeName("pve")
.name("production-vm")
.description("Production VM cloned from template")
.tags(
"production",
"web")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:98,23-26)))
.sourceNodeName("pve")
.full(true)
.targetDatastore("local-lvm")
.retries(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(3) (example.pp:102,23-24)))
.build())
.cpu(VmLegacyCpuArgs.builder()
.cores(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(8) (example.pp:105,20-21)))
.sockets(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(1) (example.pp:106,20-21)))
.architecture("x86_64")
.type("host")
.build())
.memory(VmLegacyMemoryArgs.builder()
.size(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(8192) (example.pp:111,15-19)))
.balloon(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2048) (example.pp:112,15-19)))
.shares(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2000) (example.pp:113,15-19)))
.build())
.network(Map.of("net0", VmLegacyNetworkArgs.builder()
.bridge("vmbr0")
.model("virtio")
.tag(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:119,19-22)))
.firewall(true)
.rateLimit(100.0)
.build()))
.disk(Map.of("scsi0", VmLegacyDiskArgs.builder()
.datastoreId("local-lvm")
.sizeGb(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:128,21-24)))
.discard("on")
.iothread(true)
.ssd(true)
.cache("writethrough")
.build()))
.vga(VmLegacyVgaArgs.builder()
.type("std")
.memory(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(16) (example.pp:137,14-16)))
.build())
.delete(VmLegacyDeleteArgs.builder()
.disks("ide2")
.build())
.stopOnDestroy(false)
.purgeOnDestroy(true)
.deleteUnreferencedDisksOnDestroy(false)
.timeouts(VmLegacyTimeoutsArgs.builder()
.create("30m")
.update("30m")
.delete("10m")
.build())
.build());
// Example 6: Linked clone for testing
var testClone = new VmLegacy("testClone", VmLegacyArgs.builder()
.nodeName("pve")
.name("test-vm")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:162,18-21)))
.full(false)
.build())
.cpu(VmLegacyCpuArgs.builder()
.cores(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(2) (example.pp:167,13-14)))
.build())
.network(Map.of("net0", VmLegacyNetworkArgs.builder()
.bridge("vmbr0")
.model("virtio")
.build()))
.build());
// Example 7: Clone with pool assignment
var pooledClone = new VmLegacy("pooledClone", VmLegacyArgs.builder()
.nodeName("pve")
.name("pooled-vm")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:184,18-21)))
.poolId("production")
.build())
.cpu(VmLegacyCpuArgs.builder()
.cores(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(4) (example.pp:188,13-14)))
.build())
.build());
// Example 8: Import existing cloned VM
var imported = new VmLegacy("imported", VmLegacyArgs.builder()
.resourceId("123")
.nodeName("pve")
.clone(VmLegacyCloneArgs.builder()
.sourceVmId(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(100) (example.pp:199,18-21)))
.build())
.cpu(VmLegacyCpuArgs.builder()
.cores(%!v(PANIC=Format method: fatal: A failure has occurred: unexpected literal type in GenLiteralValueExpression: cty.NumberIntVal(4) (example.pp:203,13-14)))
.build())
.build());
}
}
resources:
# Example 1: Basic clone with minimal management
basicClone:
type: proxmoxve:cloned:VmLegacy
name: basic_clone
properties:
nodeName: pve
name: basic-clone
clone:
sourceVmId: 100
full: true
cpu:
cores: 4
# Example 2: Clone with explicit network management
networkManaged:
type: proxmoxve:cloned:VmLegacy
name: network_managed
properties:
nodeName: pve
name: network-clone
clone:
sourceVmId: 100
network:
net0:
bridge: vmbr0
model: virtio
tag: 100
net1:
bridge: vmbr1
model: virtio
firewall: true
macAddress: BC:24:11:2E:C5:00
cpu:
cores: 2
# Example 3: Clone with disk management
diskManaged:
type: proxmoxve:cloned:VmLegacy
name: disk_managed
properties:
nodeName: pve
name: disk-clone
clone:
sourceVmId: 100
targetDatastore: local-lvm
disk:
scsi0:
datastoreId: local-lvm
sizeGb: 50
discard: on
ssd: true
scsi1:
datastoreId: local-lvm
sizeGb: 100
backup: false
# Example 4: Clone with explicit device deletion
selectiveDelete:
type: proxmoxve:cloned:VmLegacy
name: selective_delete
properties:
nodeName: pve
name: minimal-clone
clone:
sourceVmId: 100
network:
net0:
bridge: vmbr0
model: virtio
delete:
networks:
- net1
- net2
# Example 5: Full-featured clone with multiple settings
fullFeatured:
type: proxmoxve:cloned:VmLegacy
name: full_featured
properties:
nodeName: pve
name: production-vm
description: Production VM cloned from template
tags:
- production
- web
clone:
sourceVmId: 100
sourceNodeName: pve
full: true
targetDatastore: local-lvm
retries: 3
cpu:
cores: 8
sockets: 1
architecture: x86_64
type: host
memory:
size: 8192
balloon: 2048
shares: 2000
network:
net0:
bridge: vmbr0
model: virtio
tag: 100
firewall: true
rateLimit: 100
disk:
scsi0:
datastoreId: local-lvm
sizeGb: 100
discard: on
iothread: true
ssd: true
cache: writethrough
vga:
type: std
memory: 16
delete:
disks:
- ide2
stopOnDestroy: false # Shutdown gracefully instead of force stop
purgeOnDestroy: true
deleteUnreferencedDisksOnDestroy: false # Safety: don't delete unmanaged disks
timeouts:
create: 30m
update: 30m
delete: 10m
# Example 6: Linked clone for testing
testClone:
type: proxmoxve:cloned:VmLegacy
name: test_clone
properties:
nodeName: pve
name: test-vm
clone:
sourceVmId: 100
full: false
cpu:
cores: 2
network:
net0:
bridge: vmbr0
model: virtio
# Example 7: Clone with pool assignment
pooledClone:
type: proxmoxve:cloned:VmLegacy
name: pooled_clone
properties:
nodeName: pve
name: pooled-vm
clone:
sourceVmId: 100
poolId: production
cpu:
cores: 4
# Example 8: Import existing cloned VM
imported:
type: proxmoxve:cloned:VmLegacy
properties:
resourceId: 123 # VM ID to manage
nodeName: pve
clone:
sourceVmId: 100
cpu:
cores: 4
Create VmLegacy Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new VmLegacy(name: string, args: VmLegacyArgs, opts?: CustomResourceOptions);@overload
def VmLegacy(resource_name: str,
args: VmLegacyArgs,
opts: Optional[ResourceOptions] = None)
@overload
def VmLegacy(resource_name: str,
opts: Optional[ResourceOptions] = None,
node_name: Optional[str] = None,
clone: Optional[VmLegacyCloneArgs] = None,
name: Optional[str] = None,
purge_on_destroy: Optional[bool] = None,
delete_unreferenced_disks_on_destroy: Optional[bool] = None,
description: Optional[str] = None,
disk: Optional[Mapping[str, VmLegacyDiskArgs]] = None,
memory: Optional[VmLegacyMemoryArgs] = None,
cdrom: Optional[Mapping[str, VmLegacyCdromArgs]] = None,
network: Optional[Mapping[str, VmLegacyNetworkArgs]] = None,
cpu: Optional[VmLegacyCpuArgs] = None,
delete: Optional[VmLegacyDeleteArgs] = None,
resource_id: Optional[str] = None,
rng: Optional[VmLegacyRngArgs] = None,
started: Optional[bool] = None,
stop_on_destroy: Optional[bool] = None,
tags: Optional[Sequence[str]] = None,
timeouts: Optional[VmLegacyTimeoutsArgs] = None,
vga: Optional[VmLegacyVgaArgs] = None)func NewVmLegacy(ctx *Context, name string, args VmLegacyArgs, opts ...ResourceOption) (*VmLegacy, error)public VmLegacy(string name, VmLegacyArgs args, CustomResourceOptions? opts = null)
public VmLegacy(String name, VmLegacyArgs args)
public VmLegacy(String name, VmLegacyArgs args, CustomResourceOptions options)
type: proxmoxve:cloned:VmLegacy
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 VmLegacyArgs
- 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 VmLegacyArgs
- 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 VmLegacyArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args VmLegacyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args VmLegacyArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
VmLegacy 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 VmLegacy resource accepts the following input properties:
- Clone
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Clone - Clone settings. Changes require recreation.
- Node
Name string - Target node for the cloned VM.
- Cdrom
Dictionary<string, Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Cdrom Args> - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - Cpu
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Cpu - The CPU configuration.
- Delete
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Delete - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- Delete
Unreferenced boolDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- Description string
- Optional VM description applied after cloning.
- Disk
Dictionary<string, Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Disk Args> - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- Memory
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Memory - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - Name string
- Optional VM name override applied after cloning.
- Network
Dictionary<string, Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Network Args> - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- Purge
On boolDestroy - Purge backup configuration on destroy.
- Resource
Id string - The VM identifier in the Proxmox cluster.
- Rng
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Rng - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - Started bool
- Whether the VM should be started after cloning. Defaults to true.
- Stop
On boolDestroy - Stop the VM on destroy (instead of shutdown).
- List<string>
- Tags applied after cloning.
- Timeouts
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Timeouts - Vga
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Vga - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- Clone
Vm
Legacy Clone Args - Clone settings. Changes require recreation.
- Node
Name string - Target node for the cloned VM.
- Cdrom
map[string]Vm
Legacy Cdrom Args - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - Cpu
Vm
Legacy Cpu Args - The CPU configuration.
- Delete
Vm
Legacy Delete Args - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- Delete
Unreferenced boolDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- Description string
- Optional VM description applied after cloning.
- Disk
map[string]Vm
Legacy Disk Args - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- Memory
Vm
Legacy Memory Args - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - Name string
- Optional VM name override applied after cloning.
- Network
map[string]Vm
Legacy Network Args - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- Purge
On boolDestroy - Purge backup configuration on destroy.
- Resource
Id string - The VM identifier in the Proxmox cluster.
- Rng
Vm
Legacy Rng Args - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - Started bool
- Whether the VM should be started after cloning. Defaults to true.
- Stop
On boolDestroy - Stop the VM on destroy (instead of shutdown).
- []string
- Tags applied after cloning.
- Timeouts
Vm
Legacy Timeouts Args - Vga
Vm
Legacy Vga Args - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- clone_
Vm
Legacy Clone - Clone settings. Changes require recreation.
- node
Name String - Target node for the cloned VM.
- cdrom
Map<String,Vm
Legacy Cdrom Args> - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - cpu
Vm
Legacy Cpu - The CPU configuration.
- delete
Vm
Legacy Delete - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete
Unreferenced BooleanDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description String
- Optional VM description applied after cloning.
- disk
Map<String,Vm
Legacy Disk Args> - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory
Vm
Legacy Memory - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name String
- Optional VM name override applied after cloning.
- network
Map<String,Vm
Legacy Network Args> - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- purge
On BooleanDestroy - Purge backup configuration on destroy.
- resource
Id String - The VM identifier in the Proxmox cluster.
- rng
Vm
Legacy Rng - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started Boolean
- Whether the VM should be started after cloning. Defaults to true.
- stop
On BooleanDestroy - Stop the VM on destroy (instead of shutdown).
- List<String>
- Tags applied after cloning.
- timeouts
Vm
Legacy Timeouts - vga
Vm
Legacy Vga - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- clone
Vm
Legacy Clone - Clone settings. Changes require recreation.
- node
Name string - Target node for the cloned VM.
- cdrom
{[key: string]: Vm
Legacy Cdrom Args} - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - cpu
Vm
Legacy Cpu - The CPU configuration.
- delete
Vm
Legacy Delete - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete
Unreferenced booleanDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description string
- Optional VM description applied after cloning.
- disk
{[key: string]: Vm
Legacy Disk Args} - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory
Vm
Legacy Memory - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name string
- Optional VM name override applied after cloning.
- network
{[key: string]: Vm
Legacy Network Args} - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- purge
On booleanDestroy - Purge backup configuration on destroy.
- resource
Id string - The VM identifier in the Proxmox cluster.
- rng
Vm
Legacy Rng - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started boolean
- Whether the VM should be started after cloning. Defaults to true.
- stop
On booleanDestroy - Stop the VM on destroy (instead of shutdown).
- string[]
- Tags applied after cloning.
- timeouts
Vm
Legacy Timeouts - vga
Vm
Legacy Vga - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- clone
Vm
Legacy Clone Args - Clone settings. Changes require recreation.
- node_
name str - Target node for the cloned VM.
- cdrom
Mapping[str, Vm
Legacy Cdrom Args] - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - cpu
Vm
Legacy Cpu Args - The CPU configuration.
- delete
Vm
Legacy Delete Args - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete_
unreferenced_ booldisks_ on_ destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description str
- Optional VM description applied after cloning.
- disk
Mapping[str, Vm
Legacy Disk Args] - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory
Vm
Legacy Memory Args - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name str
- Optional VM name override applied after cloning.
- network
Mapping[str, Vm
Legacy Network Args] - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- purge_
on_ booldestroy - Purge backup configuration on destroy.
- resource_
id str - The VM identifier in the Proxmox cluster.
- rng
Vm
Legacy Rng Args - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started bool
- Whether the VM should be started after cloning. Defaults to true.
- stop_
on_ booldestroy - Stop the VM on destroy (instead of shutdown).
- Sequence[str]
- Tags applied after cloning.
- timeouts
Vm
Legacy Timeouts Args - vga
Vm
Legacy Vga Args - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- clone Property Map
- Clone settings. Changes require recreation.
- node
Name String - Target node for the cloned VM.
- cdrom Map<Property Map>
- The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - cpu Property Map
- The CPU configuration.
- delete Property Map
- Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete
Unreferenced BooleanDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description String
- Optional VM description applied after cloning.
- disk Map<Property Map>
- Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory Property Map
- Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name String
- Optional VM name override applied after cloning.
- network Map<Property Map>
- Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- purge
On BooleanDestroy - Purge backup configuration on destroy.
- resource
Id String - The VM identifier in the Proxmox cluster.
- rng Property Map
- Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started Boolean
- Whether the VM should be started after cloning. Defaults to true.
- stop
On BooleanDestroy - Stop the VM on destroy (instead of shutdown).
- List<String>
- Tags applied after cloning.
- timeouts Property Map
- vga Property Map
- Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
Outputs
All input properties are implicitly available as output properties. Additionally, the VmLegacy 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 VmLegacy Resource
Get an existing VmLegacy 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?: VmLegacyState, opts?: CustomResourceOptions): VmLegacy@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
cdrom: Optional[Mapping[str, VmLegacyCdromArgs]] = None,
clone: Optional[VmLegacyCloneArgs] = None,
cpu: Optional[VmLegacyCpuArgs] = None,
delete: Optional[VmLegacyDeleteArgs] = None,
delete_unreferenced_disks_on_destroy: Optional[bool] = None,
description: Optional[str] = None,
disk: Optional[Mapping[str, VmLegacyDiskArgs]] = None,
memory: Optional[VmLegacyMemoryArgs] = None,
name: Optional[str] = None,
network: Optional[Mapping[str, VmLegacyNetworkArgs]] = None,
node_name: Optional[str] = None,
purge_on_destroy: Optional[bool] = None,
resource_id: Optional[str] = None,
rng: Optional[VmLegacyRngArgs] = None,
started: Optional[bool] = None,
stop_on_destroy: Optional[bool] = None,
tags: Optional[Sequence[str]] = None,
timeouts: Optional[VmLegacyTimeoutsArgs] = None,
vga: Optional[VmLegacyVgaArgs] = None) -> VmLegacyfunc GetVmLegacy(ctx *Context, name string, id IDInput, state *VmLegacyState, opts ...ResourceOption) (*VmLegacy, error)public static VmLegacy Get(string name, Input<string> id, VmLegacyState? state, CustomResourceOptions? opts = null)public static VmLegacy get(String name, Output<String> id, VmLegacyState state, CustomResourceOptions options)resources: _: type: proxmoxve:cloned:VmLegacy 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.
- Cdrom
Dictionary<string, Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Cdrom Args> - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - Clone
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Clone - Clone settings. Changes require recreation.
- Cpu
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Cpu - The CPU configuration.
- Delete
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Delete - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- Delete
Unreferenced boolDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- Description string
- Optional VM description applied after cloning.
- Disk
Dictionary<string, Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Disk Args> - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- Memory
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Memory - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - Name string
- Optional VM name override applied after cloning.
- Network
Dictionary<string, Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Network Args> - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- Node
Name string - Target node for the cloned VM.
- Purge
On boolDestroy - Purge backup configuration on destroy.
- Resource
Id string - The VM identifier in the Proxmox cluster.
- Rng
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Rng - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - Started bool
- Whether the VM should be started after cloning. Defaults to true.
- Stop
On boolDestroy - Stop the VM on destroy (instead of shutdown).
- List<string>
- Tags applied after cloning.
- Timeouts
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Timeouts - Vga
Pulumi.
Proxmox VE. Cloned. Inputs. Vm Legacy Vga - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- Cdrom
map[string]Vm
Legacy Cdrom Args - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - Clone
Vm
Legacy Clone Args - Clone settings. Changes require recreation.
- Cpu
Vm
Legacy Cpu Args - The CPU configuration.
- Delete
Vm
Legacy Delete Args - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- Delete
Unreferenced boolDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- Description string
- Optional VM description applied after cloning.
- Disk
map[string]Vm
Legacy Disk Args - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- Memory
Vm
Legacy Memory Args - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - Name string
- Optional VM name override applied after cloning.
- Network
map[string]Vm
Legacy Network Args - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- Node
Name string - Target node for the cloned VM.
- Purge
On boolDestroy - Purge backup configuration on destroy.
- Resource
Id string - The VM identifier in the Proxmox cluster.
- Rng
Vm
Legacy Rng Args - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - Started bool
- Whether the VM should be started after cloning. Defaults to true.
- Stop
On boolDestroy - Stop the VM on destroy (instead of shutdown).
- []string
- Tags applied after cloning.
- Timeouts
Vm
Legacy Timeouts Args - Vga
Vm
Legacy Vga Args - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- cdrom
Map<String,Vm
Legacy Cdrom Args> - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - clone_
Vm
Legacy Clone - Clone settings. Changes require recreation.
- cpu
Vm
Legacy Cpu - The CPU configuration.
- delete
Vm
Legacy Delete - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete
Unreferenced BooleanDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description String
- Optional VM description applied after cloning.
- disk
Map<String,Vm
Legacy Disk Args> - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory
Vm
Legacy Memory - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name String
- Optional VM name override applied after cloning.
- network
Map<String,Vm
Legacy Network Args> - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- node
Name String - Target node for the cloned VM.
- purge
On BooleanDestroy - Purge backup configuration on destroy.
- resource
Id String - The VM identifier in the Proxmox cluster.
- rng
Vm
Legacy Rng - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started Boolean
- Whether the VM should be started after cloning. Defaults to true.
- stop
On BooleanDestroy - Stop the VM on destroy (instead of shutdown).
- List<String>
- Tags applied after cloning.
- timeouts
Vm
Legacy Timeouts - vga
Vm
Legacy Vga - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- cdrom
{[key: string]: Vm
Legacy Cdrom Args} - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - clone
Vm
Legacy Clone - Clone settings. Changes require recreation.
- cpu
Vm
Legacy Cpu - The CPU configuration.
- delete
Vm
Legacy Delete - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete
Unreferenced booleanDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description string
- Optional VM description applied after cloning.
- disk
{[key: string]: Vm
Legacy Disk Args} - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory
Vm
Legacy Memory - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name string
- Optional VM name override applied after cloning.
- network
{[key: string]: Vm
Legacy Network Args} - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- node
Name string - Target node for the cloned VM.
- purge
On booleanDestroy - Purge backup configuration on destroy.
- resource
Id string - The VM identifier in the Proxmox cluster.
- rng
Vm
Legacy Rng - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started boolean
- Whether the VM should be started after cloning. Defaults to true.
- stop
On booleanDestroy - Stop the VM on destroy (instead of shutdown).
- string[]
- Tags applied after cloning.
- timeouts
Vm
Legacy Timeouts - vga
Vm
Legacy Vga - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- cdrom
Mapping[str, Vm
Legacy Cdrom Args] - The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - clone
Vm
Legacy Clone Args - Clone settings. Changes require recreation.
- cpu
Vm
Legacy Cpu Args - The CPU configuration.
- delete
Vm
Legacy Delete Args - Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete_
unreferenced_ booldisks_ on_ destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description str
- Optional VM description applied after cloning.
- disk
Mapping[str, Vm
Legacy Disk Args] - Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory
Vm
Legacy Memory Args - Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name str
- Optional VM name override applied after cloning.
- network
Mapping[str, Vm
Legacy Network Args] - Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- node_
name str - Target node for the cloned VM.
- purge_
on_ booldestroy - Purge backup configuration on destroy.
- resource_
id str - The VM identifier in the Proxmox cluster.
- rng
Vm
Legacy Rng Args - Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started bool
- Whether the VM should be started after cloning. Defaults to true.
- stop_
on_ booldestroy - Stop the VM on destroy (instead of shutdown).
- Sequence[str]
- Tags applied after cloning.
- timeouts
Vm
Legacy Timeouts Args - vga
Vm
Legacy Vga Args - Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
- cdrom Map<Property Map>
- The CD-ROM configuration. The key is the interface of the CD-ROM, could be one of
ideN,sataN,scsiN, where N is the index of the interface. Note thatq35machine type only supportside0andide2of IDE interfaces. - clone Property Map
- Clone settings. Changes require recreation.
- cpu Property Map
- The CPU configuration.
- delete Property Map
- Explicit deletions to perform after cloning/updating. Entries persist across applies.
- delete
Unreferenced BooleanDisks On Destroy - Delete unreferenced disks on destroy. WARNING: When set to true, any disks not explicitly managed by Terraform will be deleted on destroy, potentially causing data loss. Defaults to false for safety.
- description String
- Optional VM description applied after cloning.
- disk Map<Property Map>
- Disks keyed by slot (scsi0, virtio0, sata0, ide0, ...). Only listed keys are managed.
- memory Property Map
- Memory configuration for the VM. Uses Proxmox memory ballooning to allow dynamic memory allocation. The
sizesets the total available RAM, whileballoonsets the guaranteed floor. The host can reclaim memory between these values when needed. - name String
- Optional VM name override applied after cloning.
- network Map<Property Map>
- Network devices keyed by slot (net0, net1, ...). Only listed keys are managed.
- node
Name String - Target node for the cloned VM.
- purge
On BooleanDestroy - Purge backup configuration on destroy.
- resource
Id String - The VM identifier in the Proxmox cluster.
- rng Property Map
- Configure the RNG (Random Number Generator) device. The RNG device provides entropy to guests to ensure good quality random numbers for guest applications that require them. Can only be set by
root@pam.See the Proxmox documentation for more information. - started Boolean
- Whether the VM should be started after cloning. Defaults to true.
- stop
On BooleanDestroy - Stop the VM on destroy (instead of shutdown).
- List<String>
- Tags applied after cloning.
- timeouts Property Map
- vga Property Map
- Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is
stdfor all OS types besides some Windows versions (XP and older) which usecirrus. Theqxloption enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays themself. You can also run without any graphic card, using a serial device as terminal. See the Proxmox documentation section 10.2.8 for more information and available configuration parameters.
Supporting Types
VmLegacyCdrom, VmLegacyCdromArgs
- File
Id string - The file ID of the CD-ROM, or
cdrom|none. Defaults tocdrom(i.e. empty CD-ROM drive —cdromis PVE's literal "no media inserted" storage path). Usenoneto leave the CD-ROM unplugged, or a storage path likelocal:iso/debian.isoto insert an image.
- File
Id string - The file ID of the CD-ROM, or
cdrom|none. Defaults tocdrom(i.e. empty CD-ROM drive —cdromis PVE's literal "no media inserted" storage path). Usenoneto leave the CD-ROM unplugged, or a storage path likelocal:iso/debian.isoto insert an image.
- file
Id String - The file ID of the CD-ROM, or
cdrom|none. Defaults tocdrom(i.e. empty CD-ROM drive —cdromis PVE's literal "no media inserted" storage path). Usenoneto leave the CD-ROM unplugged, or a storage path likelocal:iso/debian.isoto insert an image.
- file
Id string - The file ID of the CD-ROM, or
cdrom|none. Defaults tocdrom(i.e. empty CD-ROM drive —cdromis PVE's literal "no media inserted" storage path). Usenoneto leave the CD-ROM unplugged, or a storage path likelocal:iso/debian.isoto insert an image.
- file_
id str - The file ID of the CD-ROM, or
cdrom|none. Defaults tocdrom(i.e. empty CD-ROM drive —cdromis PVE's literal "no media inserted" storage path). Usenoneto leave the CD-ROM unplugged, or a storage path likelocal:iso/debian.isoto insert an image.
- file
Id String - The file ID of the CD-ROM, or
cdrom|none. Defaults tocdrom(i.e. empty CD-ROM drive —cdromis PVE's literal "no media inserted" storage path). Usenoneto leave the CD-ROM unplugged, or a storage path likelocal:iso/debian.isoto insert an image.
VmLegacyClone, VmLegacyCloneArgs
- Source
Vm intId - Source VM/template ID to clone from.
- Bandwidth
Limit int - Clone bandwidth limit in MB/s.
- Full bool
- Perform a full clone (true) or linked clone (false).
- Pool
Id string - Pool to assign the cloned VM to.
- Retries int
- Number of retries for clone operations.
- Snapshot
Name string - Snapshot name to clone from.
- Source
Node stringName - Source node of the VM/template. Defaults to target node if unset.
- Target
Datastore string - Target datastore for cloned disks.
- Target
Format string - Target disk format for clone (e.g., raw, qcow2).
- Source
Vm intId - Source VM/template ID to clone from.
- Bandwidth
Limit int - Clone bandwidth limit in MB/s.
- Full bool
- Perform a full clone (true) or linked clone (false).
- Pool
Id string - Pool to assign the cloned VM to.
- Retries int
- Number of retries for clone operations.
- Snapshot
Name string - Snapshot name to clone from.
- Source
Node stringName - Source node of the VM/template. Defaults to target node if unset.
- Target
Datastore string - Target datastore for cloned disks.
- Target
Format string - Target disk format for clone (e.g., raw, qcow2).
- source
Vm IntegerId - Source VM/template ID to clone from.
- bandwidth
Limit Integer - Clone bandwidth limit in MB/s.
- full Boolean
- Perform a full clone (true) or linked clone (false).
- pool
Id String - Pool to assign the cloned VM to.
- retries Integer
- Number of retries for clone operations.
- snapshot
Name String - Snapshot name to clone from.
- source
Node StringName - Source node of the VM/template. Defaults to target node if unset.
- target
Datastore String - Target datastore for cloned disks.
- target
Format String - Target disk format for clone (e.g., raw, qcow2).
- source
Vm numberId - Source VM/template ID to clone from.
- bandwidth
Limit number - Clone bandwidth limit in MB/s.
- full boolean
- Perform a full clone (true) or linked clone (false).
- pool
Id string - Pool to assign the cloned VM to.
- retries number
- Number of retries for clone operations.
- snapshot
Name string - Snapshot name to clone from.
- source
Node stringName - Source node of the VM/template. Defaults to target node if unset.
- target
Datastore string - Target datastore for cloned disks.
- target
Format string - Target disk format for clone (e.g., raw, qcow2).
- source_
vm_ intid - Source VM/template ID to clone from.
- bandwidth_
limit int - Clone bandwidth limit in MB/s.
- full bool
- Perform a full clone (true) or linked clone (false).
- pool_
id str - Pool to assign the cloned VM to.
- retries int
- Number of retries for clone operations.
- snapshot_
name str - Snapshot name to clone from.
- source_
node_ strname - Source node of the VM/template. Defaults to target node if unset.
- target_
datastore str - Target datastore for cloned disks.
- target_
format str - Target disk format for clone (e.g., raw, qcow2).
- source
Vm NumberId - Source VM/template ID to clone from.
- bandwidth
Limit Number - Clone bandwidth limit in MB/s.
- full Boolean
- Perform a full clone (true) or linked clone (false).
- pool
Id String - Pool to assign the cloned VM to.
- retries Number
- Number of retries for clone operations.
- snapshot
Name String - Snapshot name to clone from.
- source
Node StringName - Source node of the VM/template. Defaults to target node if unset.
- target
Datastore String - Target datastore for cloned disks.
- target
Format String - Target disk format for clone (e.g., raw, qcow2).
VmLegacyCpu, VmLegacyCpuArgs
- Affinity string
- The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example,
0,1,2,3(which also can be shortened to0-3) means that the VM’s vCPUs are run on the first four CPU cores. Settingaffinityis only allowed forroot@pamauthenticated user. - Architecture string
- The CPU architecture
<aarch64 | x86_64>(defaults to the host). Settingarchitectureis only allowed forroot@pamauthenticated user. - Cores int
- The number of CPU cores per socket (PVE defaults to
1when unset). - Flags List<string>
- Set of additional CPU flags. Use
+FLAGto enable,-FLAGto disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons:pcid,spec-ctrl,ibpb,ssbd,virt-ssbd,amd-ssbd,amd-no-ssb,pdpe1gb,md-clear,hv-tlbflush,hv-evmcs,aes. - Limit double
- Limit of CPU usage.
0means no limit (PVE default). - Numa bool
- Enable NUMA topology emulation. Matches the PVE Processors → Enable NUMA checkbox.
- Sockets int
- The number of CPU sockets (PVE defaults to
1when unset). - Type string
- Emulated CPU type, it's recommended to use
x86-64-v2-AESor higher. See the PVE admin guide for the full list of supported types. - Units int
- CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2
0is a valid value meaning disable CPU share weighting. - Vcpus int
- Number of vCPUs started with the VM, bounded by
cores * sockets. Matches the PVE Processors → VCPUs field. Leave unset to start withcores * socketsvCPUs. Requires PVE hotplug feature enabled to change at runtime.
- Affinity string
- The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example,
0,1,2,3(which also can be shortened to0-3) means that the VM’s vCPUs are run on the first four CPU cores. Settingaffinityis only allowed forroot@pamauthenticated user. - Architecture string
- The CPU architecture
<aarch64 | x86_64>(defaults to the host). Settingarchitectureis only allowed forroot@pamauthenticated user. - Cores int
- The number of CPU cores per socket (PVE defaults to
1when unset). - Flags []string
- Set of additional CPU flags. Use
+FLAGto enable,-FLAGto disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons:pcid,spec-ctrl,ibpb,ssbd,virt-ssbd,amd-ssbd,amd-no-ssb,pdpe1gb,md-clear,hv-tlbflush,hv-evmcs,aes. - Limit float64
- Limit of CPU usage.
0means no limit (PVE default). - Numa bool
- Enable NUMA topology emulation. Matches the PVE Processors → Enable NUMA checkbox.
- Sockets int
- The number of CPU sockets (PVE defaults to
1when unset). - Type string
- Emulated CPU type, it's recommended to use
x86-64-v2-AESor higher. See the PVE admin guide for the full list of supported types. - Units int
- CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2
0is a valid value meaning disable CPU share weighting. - Vcpus int
- Number of vCPUs started with the VM, bounded by
cores * sockets. Matches the PVE Processors → VCPUs field. Leave unset to start withcores * socketsvCPUs. Requires PVE hotplug feature enabled to change at runtime.
- affinity String
- The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example,
0,1,2,3(which also can be shortened to0-3) means that the VM’s vCPUs are run on the first four CPU cores. Settingaffinityis only allowed forroot@pamauthenticated user. - architecture String
- The CPU architecture
<aarch64 | x86_64>(defaults to the host). Settingarchitectureis only allowed forroot@pamauthenticated user. - cores Integer
- The number of CPU cores per socket (PVE defaults to
1when unset). - flags List<String>
- Set of additional CPU flags. Use
+FLAGto enable,-FLAGto disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons:pcid,spec-ctrl,ibpb,ssbd,virt-ssbd,amd-ssbd,amd-no-ssb,pdpe1gb,md-clear,hv-tlbflush,hv-evmcs,aes. - limit Double
- Limit of CPU usage.
0means no limit (PVE default). - numa Boolean
- Enable NUMA topology emulation. Matches the PVE Processors → Enable NUMA checkbox.
- sockets Integer
- The number of CPU sockets (PVE defaults to
1when unset). - type String
- Emulated CPU type, it's recommended to use
x86-64-v2-AESor higher. See the PVE admin guide for the full list of supported types. - units Integer
- CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2
0is a valid value meaning disable CPU share weighting. - vcpus Integer
- Number of vCPUs started with the VM, bounded by
cores * sockets. Matches the PVE Processors → VCPUs field. Leave unset to start withcores * socketsvCPUs. Requires PVE hotplug feature enabled to change at runtime.
- affinity string
- The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example,
0,1,2,3(which also can be shortened to0-3) means that the VM’s vCPUs are run on the first four CPU cores. Settingaffinityis only allowed forroot@pamauthenticated user. - architecture string
- The CPU architecture
<aarch64 | x86_64>(defaults to the host). Settingarchitectureis only allowed forroot@pamauthenticated user. - cores number
- The number of CPU cores per socket (PVE defaults to
1when unset). - flags string[]
- Set of additional CPU flags. Use
+FLAGto enable,-FLAGto disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons:pcid,spec-ctrl,ibpb,ssbd,virt-ssbd,amd-ssbd,amd-no-ssb,pdpe1gb,md-clear,hv-tlbflush,hv-evmcs,aes. - limit number
- Limit of CPU usage.
0means no limit (PVE default). - numa boolean
- Enable NUMA topology emulation. Matches the PVE Processors → Enable NUMA checkbox.
- sockets number
- The number of CPU sockets (PVE defaults to
1when unset). - type string
- Emulated CPU type, it's recommended to use
x86-64-v2-AESor higher. See the PVE admin guide for the full list of supported types. - units number
- CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2
0is a valid value meaning disable CPU share weighting. - vcpus number
- Number of vCPUs started with the VM, bounded by
cores * sockets. Matches the PVE Processors → VCPUs field. Leave unset to start withcores * socketsvCPUs. Requires PVE hotplug feature enabled to change at runtime.
- affinity str
- The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example,
0,1,2,3(which also can be shortened to0-3) means that the VM’s vCPUs are run on the first four CPU cores. Settingaffinityis only allowed forroot@pamauthenticated user. - architecture str
- The CPU architecture
<aarch64 | x86_64>(defaults to the host). Settingarchitectureis only allowed forroot@pamauthenticated user. - cores int
- The number of CPU cores per socket (PVE defaults to
1when unset). - flags Sequence[str]
- Set of additional CPU flags. Use
+FLAGto enable,-FLAGto disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons:pcid,spec-ctrl,ibpb,ssbd,virt-ssbd,amd-ssbd,amd-no-ssb,pdpe1gb,md-clear,hv-tlbflush,hv-evmcs,aes. - limit float
- Limit of CPU usage.
0means no limit (PVE default). - numa bool
- Enable NUMA topology emulation. Matches the PVE Processors → Enable NUMA checkbox.
- sockets int
- The number of CPU sockets (PVE defaults to
1when unset). - type str
- Emulated CPU type, it's recommended to use
x86-64-v2-AESor higher. See the PVE admin guide for the full list of supported types. - units int
- CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2
0is a valid value meaning disable CPU share weighting. - vcpus int
- Number of vCPUs started with the VM, bounded by
cores * sockets. Matches the PVE Processors → VCPUs field. Leave unset to start withcores * socketsvCPUs. Requires PVE hotplug feature enabled to change at runtime.
- affinity String
- The CPU cores that are used to run the VM’s vCPU. The value is a list of CPU IDs, separated by commas. The CPU IDs are zero-based. For example,
0,1,2,3(which also can be shortened to0-3) means that the VM’s vCPUs are run on the first four CPU cores. Settingaffinityis only allowed forroot@pamauthenticated user. - architecture String
- The CPU architecture
<aarch64 | x86_64>(defaults to the host). Settingarchitectureis only allowed forroot@pamauthenticated user. - cores Number
- The number of CPU cores per socket (PVE defaults to
1when unset). - flags List<String>
- Set of additional CPU flags. Use
+FLAGto enable,-FLAGto disable a flag. Custom CPU models can specify any flag supported by QEMU/KVM, VM-specific flags must be from the following set for security reasons:pcid,spec-ctrl,ibpb,ssbd,virt-ssbd,amd-ssbd,amd-no-ssb,pdpe1gb,md-clear,hv-tlbflush,hv-evmcs,aes. - limit Number
- Limit of CPU usage.
0means no limit (PVE default). - numa Boolean
- Enable NUMA topology emulation. Matches the PVE Processors → Enable NUMA checkbox.
- sockets Number
- The number of CPU sockets (PVE defaults to
1when unset). - type String
- Emulated CPU type, it's recommended to use
x86-64-v2-AESor higher. See the PVE admin guide for the full list of supported types. - units Number
- CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs. On cgroup v2
0is a valid value meaning disable CPU share weighting. - vcpus Number
- Number of vCPUs started with the VM, bounded by
cores * sockets. Matches the PVE Processors → VCPUs field. Leave unset to start withcores * socketsvCPUs. Requires PVE hotplug feature enabled to change at runtime.
VmLegacyDelete, VmLegacyDeleteArgs
VmLegacyDisk, VmLegacyDiskArgs
- Aio string
- AIO mode (io_uring, native, threads).
- Backup bool
- Include disk in backups.
- Cache string
- Cache mode.
- Datastore
Id string - Target datastore for new disks when file is not provided.
- Discard string
- Discard/trim behavior.
- File string
- Existing volume reference (e.g., local-lvm:vm-100-disk-0).
- Format string
- Disk format (raw, qcow2, vmdk).
- Import
From string - Import source volume/file id.
- Iothread bool
- Use IO thread.
- Media string
- Disk media (e.g., disk, cdrom).
- Replicate bool
- Consider disk for replication.
- Serial string
- Disk serial number.
- Size
Gb int - Disk size (GiB) when creating new disks. Note: Disk shrinking is not supported. Attempting to set
sizeGbto a value smaller than the current disk size will result in an error. Only disk expansion is allowed. - Ssd bool
- Mark disk as SSD.
- Aio string
- AIO mode (io_uring, native, threads).
- Backup bool
- Include disk in backups.
- Cache string
- Cache mode.
- Datastore
Id string - Target datastore for new disks when file is not provided.
- Discard string
- Discard/trim behavior.
- File string
- Existing volume reference (e.g., local-lvm:vm-100-disk-0).
- Format string
- Disk format (raw, qcow2, vmdk).
- Import
From string - Import source volume/file id.
- Iothread bool
- Use IO thread.
- Media string
- Disk media (e.g., disk, cdrom).
- Replicate bool
- Consider disk for replication.
- Serial string
- Disk serial number.
- Size
Gb int - Disk size (GiB) when creating new disks. Note: Disk shrinking is not supported. Attempting to set
sizeGbto a value smaller than the current disk size will result in an error. Only disk expansion is allowed. - Ssd bool
- Mark disk as SSD.
- aio String
- AIO mode (io_uring, native, threads).
- backup Boolean
- Include disk in backups.
- cache String
- Cache mode.
- datastore
Id String - Target datastore for new disks when file is not provided.
- discard String
- Discard/trim behavior.
- file String
- Existing volume reference (e.g., local-lvm:vm-100-disk-0).
- format String
- Disk format (raw, qcow2, vmdk).
- import
From String - Import source volume/file id.
- iothread Boolean
- Use IO thread.
- media String
- Disk media (e.g., disk, cdrom).
- replicate Boolean
- Consider disk for replication.
- serial String
- Disk serial number.
- size
Gb Integer - Disk size (GiB) when creating new disks. Note: Disk shrinking is not supported. Attempting to set
sizeGbto a value smaller than the current disk size will result in an error. Only disk expansion is allowed. - ssd Boolean
- Mark disk as SSD.
- aio string
- AIO mode (io_uring, native, threads).
- backup boolean
- Include disk in backups.
- cache string
- Cache mode.
- datastore
Id string - Target datastore for new disks when file is not provided.
- discard string
- Discard/trim behavior.
- file string
- Existing volume reference (e.g., local-lvm:vm-100-disk-0).
- format string
- Disk format (raw, qcow2, vmdk).
- import
From string - Import source volume/file id.
- iothread boolean
- Use IO thread.
- media string
- Disk media (e.g., disk, cdrom).
- replicate boolean
- Consider disk for replication.
- serial string
- Disk serial number.
- size
Gb number - Disk size (GiB) when creating new disks. Note: Disk shrinking is not supported. Attempting to set
sizeGbto a value smaller than the current disk size will result in an error. Only disk expansion is allowed. - ssd boolean
- Mark disk as SSD.
- aio str
- AIO mode (io_uring, native, threads).
- backup bool
- Include disk in backups.
- cache str
- Cache mode.
- datastore_
id str - Target datastore for new disks when file is not provided.
- discard str
- Discard/trim behavior.
- file str
- Existing volume reference (e.g., local-lvm:vm-100-disk-0).
- format str
- Disk format (raw, qcow2, vmdk).
- import_
from str - Import source volume/file id.
- iothread bool
- Use IO thread.
- media str
- Disk media (e.g., disk, cdrom).
- replicate bool
- Consider disk for replication.
- serial str
- Disk serial number.
- size_
gb int - Disk size (GiB) when creating new disks. Note: Disk shrinking is not supported. Attempting to set
sizeGbto a value smaller than the current disk size will result in an error. Only disk expansion is allowed. - ssd bool
- Mark disk as SSD.
- aio String
- AIO mode (io_uring, native, threads).
- backup Boolean
- Include disk in backups.
- cache String
- Cache mode.
- datastore
Id String - Target datastore for new disks when file is not provided.
- discard String
- Discard/trim behavior.
- file String
- Existing volume reference (e.g., local-lvm:vm-100-disk-0).
- format String
- Disk format (raw, qcow2, vmdk).
- import
From String - Import source volume/file id.
- iothread Boolean
- Use IO thread.
- media String
- Disk media (e.g., disk, cdrom).
- replicate Boolean
- Consider disk for replication.
- serial String
- Disk serial number.
- size
Gb Number - Disk size (GiB) when creating new disks. Note: Disk shrinking is not supported. Attempting to set
sizeGbto a value smaller than the current disk size will result in an error. Only disk expansion is allowed. - ssd Boolean
- Mark disk as SSD.
VmLegacyMemory, VmLegacyMemoryArgs
- Balloon int
- Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to
0disables the balloon driver entirely. - Hugepages string
Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses.
Options:
2- Use 2 MiB hugepages1024- Use 1 GiB hugepagesany- Use any available hugepage size
- Keep
Hugepages bool - Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to
truekeeps them allocated for faster VM startup. - int
- CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs.
- Size int
- Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between
balloonandsizecan be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit512MiB when unset.
- Balloon int
- Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to
0disables the balloon driver entirely. - Hugepages string
Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses.
Options:
2- Use 2 MiB hugepages1024- Use 1 GiB hugepagesany- Use any available hugepage size
- Keep
Hugepages bool - Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to
truekeeps them allocated for faster VM startup. - int
- CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs.
- Size int
- Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between
balloonandsizecan be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit512MiB when unset.
- balloon Integer
- Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to
0disables the balloon driver entirely. - hugepages String
Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses.
Options:
2- Use 2 MiB hugepages1024- Use 1 GiB hugepagesany- Use any available hugepage size
- keep
Hugepages Boolean - Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to
truekeeps them allocated for faster VM startup. - Integer
- CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs.
- size Integer
- Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between
balloonandsizecan be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit512MiB when unset.
- balloon number
- Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to
0disables the balloon driver entirely. - hugepages string
Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses.
Options:
2- Use 2 MiB hugepages1024- Use 1 GiB hugepagesany- Use any available hugepage size
- keep
Hugepages boolean - Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to
truekeeps them allocated for faster VM startup. - number
- CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs.
- size number
- Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between
balloonandsizecan be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit512MiB when unset.
- balloon int
- Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to
0disables the balloon driver entirely. - hugepages str
Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses.
Options:
2- Use 2 MiB hugepages1024- Use 1 GiB hugepagesany- Use any available hugepage size
- keep_
hugepages bool - Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to
truekeeps them allocated for faster VM startup. - int
- CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs.
- size int
- Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between
balloonandsizecan be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit512MiB when unset.
- balloon Number
- Minimum guaranteed memory in MiB via balloon device. This is the floor amount of RAM that is always guaranteed to the VM. Setting to
0disables the balloon driver entirely. - hugepages String
Enable hugepages for VM memory allocation. Hugepages can improve performance for memory-intensive workloads by reducing TLB misses.
Options:
2- Use 2 MiB hugepages1024- Use 1 GiB hugepagesany- Use any available hugepage size
- keep
Hugepages Boolean - Don't release hugepages when the VM shuts down. By default, hugepages are released back to the host when the VM stops. Setting this to
truekeeps them allocated for faster VM startup. - Number
- CPU scheduler priority for memory ballooning. This is used by the kernel fair scheduler. Higher values mean this VM gets more CPU time during memory ballooning operations. The value is relative to other running VMs.
- size Number
- Total memory available to the VM in MiB. This is the total RAM the VM can use. When ballooning is enabled (balloon > 0), memory between
balloonandsizecan be reclaimed by the host. When ballooning is disabled (balloon = 0), this is the fixed amount of RAM allocated to the VM. Defaults to PVE's implicit512MiB when unset.
VmLegacyNetwork, VmLegacyNetworkArgs
- Bridge string
- Bridge name.
- Firewall bool
- Enable firewall on this interface.
- Link
Down bool - Keep link down.
- Mac
Address string - MAC address (computed if omitted).
- Model string
- NIC model (e.g., virtio, e1000).
- Mtu int
- Interface MTU.
- Queues int
- Number of multiqueue NIC queues.
- Rate
Limit double - Rate limit (MB/s).
- Tag int
- VLAN tag.
- Trunks List<int>
- Trunk VLAN IDs.
- Bridge string
- Bridge name.
- Firewall bool
- Enable firewall on this interface.
- Link
Down bool - Keep link down.
- Mac
Address string - MAC address (computed if omitted).
- Model string
- NIC model (e.g., virtio, e1000).
- Mtu int
- Interface MTU.
- Queues int
- Number of multiqueue NIC queues.
- Rate
Limit float64 - Rate limit (MB/s).
- Tag int
- VLAN tag.
- Trunks []int
- Trunk VLAN IDs.
- bridge String
- Bridge name.
- firewall Boolean
- Enable firewall on this interface.
- link
Down Boolean - Keep link down.
- mac
Address String - MAC address (computed if omitted).
- model String
- NIC model (e.g., virtio, e1000).
- mtu Integer
- Interface MTU.
- queues Integer
- Number of multiqueue NIC queues.
- rate
Limit Double - Rate limit (MB/s).
- tag Integer
- VLAN tag.
- trunks List<Integer>
- Trunk VLAN IDs.
- bridge string
- Bridge name.
- firewall boolean
- Enable firewall on this interface.
- link
Down boolean - Keep link down.
- mac
Address string - MAC address (computed if omitted).
- model string
- NIC model (e.g., virtio, e1000).
- mtu number
- Interface MTU.
- queues number
- Number of multiqueue NIC queues.
- rate
Limit number - Rate limit (MB/s).
- tag number
- VLAN tag.
- trunks number[]
- Trunk VLAN IDs.
- bridge str
- Bridge name.
- firewall bool
- Enable firewall on this interface.
- link_
down bool - Keep link down.
- mac_
address str - MAC address (computed if omitted).
- model str
- NIC model (e.g., virtio, e1000).
- mtu int
- Interface MTU.
- queues int
- Number of multiqueue NIC queues.
- rate_
limit float - Rate limit (MB/s).
- tag int
- VLAN tag.
- trunks Sequence[int]
- Trunk VLAN IDs.
- bridge String
- Bridge name.
- firewall Boolean
- Enable firewall on this interface.
- link
Down Boolean - Keep link down.
- mac
Address String - MAC address (computed if omitted).
- model String
- NIC model (e.g., virtio, e1000).
- mtu Number
- Interface MTU.
- queues Number
- Number of multiqueue NIC queues.
- rate
Limit Number - Rate limit (MB/s).
- tag Number
- VLAN tag.
- trunks List<Number>
- Trunk VLAN IDs.
VmLegacyRng, VmLegacyRngArgs
- Max
Bytes int - Maximum bytes of entropy allowed to get injected into the guest every period.
- Period int
- Period in milliseconds to limit entropy injection to the guest.
- Source string
- The file on the host to gather entropy from. In most cases,
/dev/urandomshould be preferred over/dev/randomto avoid entropy-starvation issues on the host.
- Max
Bytes int - Maximum bytes of entropy allowed to get injected into the guest every period.
- Period int
- Period in milliseconds to limit entropy injection to the guest.
- Source string
- The file on the host to gather entropy from. In most cases,
/dev/urandomshould be preferred over/dev/randomto avoid entropy-starvation issues on the host.
- max
Bytes Integer - Maximum bytes of entropy allowed to get injected into the guest every period.
- period Integer
- Period in milliseconds to limit entropy injection to the guest.
- source String
- The file on the host to gather entropy from. In most cases,
/dev/urandomshould be preferred over/dev/randomto avoid entropy-starvation issues on the host.
- max
Bytes number - Maximum bytes of entropy allowed to get injected into the guest every period.
- period number
- Period in milliseconds to limit entropy injection to the guest.
- source string
- The file on the host to gather entropy from. In most cases,
/dev/urandomshould be preferred over/dev/randomto avoid entropy-starvation issues on the host.
- max_
bytes int - Maximum bytes of entropy allowed to get injected into the guest every period.
- period int
- Period in milliseconds to limit entropy injection to the guest.
- source str
- The file on the host to gather entropy from. In most cases,
/dev/urandomshould be preferred over/dev/randomto avoid entropy-starvation issues on the host.
- max
Bytes Number - Maximum bytes of entropy allowed to get injected into the guest every period.
- period Number
- Period in milliseconds to limit entropy injection to the guest.
- source String
- The file on the host to gather entropy from. In most cases,
/dev/urandomshould be preferred over/dev/randomto avoid entropy-starvation issues on the host.
VmLegacyTimeouts, VmLegacyTimeoutsArgs
- Create string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- Delete string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- Read string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- Update string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- Create string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- Delete string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- Read string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- Update string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- create String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- delete String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- read String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- update String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- create string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- delete string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- read string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- update string
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- create str
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- delete str
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- read str
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- update str
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- create String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- delete String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- read String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- update String
- A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
VmLegacyVga, VmLegacyVgaArgs
- Clipboard string
- Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only
vncis available. Migration with VNC clipboard is not supported by Proxmox. - Memory int
- The VGA memory in megabytes (4-512 MB). Has no effect with serial display.
- Type string
- The VGA type (defaults to
std).
- Clipboard string
- Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only
vncis available. Migration with VNC clipboard is not supported by Proxmox. - Memory int
- The VGA memory in megabytes (4-512 MB). Has no effect with serial display.
- Type string
- The VGA type (defaults to
std).
- clipboard String
- Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only
vncis available. Migration with VNC clipboard is not supported by Proxmox. - memory Integer
- The VGA memory in megabytes (4-512 MB). Has no effect with serial display.
- type String
- The VGA type (defaults to
std).
- clipboard string
- Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only
vncis available. Migration with VNC clipboard is not supported by Proxmox. - memory number
- The VGA memory in megabytes (4-512 MB). Has no effect with serial display.
- type string
- The VGA type (defaults to
std).
- clipboard str
- Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only
vncis available. Migration with VNC clipboard is not supported by Proxmox. - memory int
- The VGA memory in megabytes (4-512 MB). Has no effect with serial display.
- type str
- The VGA type (defaults to
std).
- clipboard String
- Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Currently only
vncis available. Migration with VNC clipboard is not supported by Proxmox. - memory Number
- The VGA memory in megabytes (4-512 MB). Has no effect with serial display.
- type String
- The VGA type (defaults to
std).
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 26, 2026 by Daniel Muehlbachler-Pietrzykowski
