.github | ||
docs | ||
example | ||
proxmox | ||
proxmoxtf | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md |
Terraform Provider for Proxmox
A Terraform Provider which adds support for Proxmox solutions.
Requirements
Table of contents
Building the Provider
Clone repository to: $GOPATH/src/github.com/danitso/terraform-provider-proxmox
$ mkdir -p $GOPATH/src/github.com/danitso; cd $GOPATH/src/github.com/danitso
$ git clone git@github.com:danitso/terraform-provider-proxmox
Enter the provider directory, initialize and build the provider
$ cd $GOPATH/src/github.com/danitso/terraform-provider-proxmox
$ make init
$ make build
Using the Provider
If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init
to initialize it.
Configuration
Arguments
virtual_environment
- (Optional) This is the configuration block for the Proxmox Virtual Environmentendpoint
- (Required) The endpoint for the Proxmox Virtual Environment APIinsecure
- (Optional) Whether to skip the TLS verification step (defaults tofalse
)password
- (Required) The password for the Proxmox Virtual Environment APIusername
- (Required) The username for the Proxmox Virtual Environment API
Environment variables
You can set up the provider by passing environment variables instead of specifying arguments.
PROXMOX_VE_ENDPOINT
orPM_VE_ENDPOINT
- The endpoint for the Proxmox Virtual Environment APIPROXMOX_VE_INSECURE
orPM_VE_INSECURE
- Whether to skip the TLS verification stepPROXMOX_VE_PASSWORD
orPM_VE_PASSWORD
- The password for the Proxmox Virtual Environment APIPROXMOX_VE_USERNAME
orPM_VE_USERNAME
- The username for the Proxmox Virtual Environment API
provider "proxmox" {
virtual_environment {}
}
Usage
$ export PROXMOX_VE_ENDPOINT="https://hostname:8006"
$ export PROXMOX_VE_INSECURE="true"
$ export PROXMOX_VE_PASSWORD="a-strong-password"
$ export PROXMOX_VE_USERNAME="username@realm"
$ terraform plan
You can omit PROXMOX_VE_INSECURE
, if the Proxmox Virtual Environment API is exposing a certificate trusted by your operating system.
Data Sources
Virtual Environment
Datastores (proxmox_virtual_environment_datastores)
Arguments
node_name
- (Required) A node name
Attributes
active
- Whether the datastore is activecontent_types
- The allowed content typesdatastore_ids
- The datastore idsenabled
- Whether the datastore is enabledshared
- Whether the datastore is sharedspace_available
- The available space in bytesspace_total
- The total space in bytesspace_used
- The used space in bytestypes
- The storage types
DNS (proxmox_virtual_environment_dns)
Arguments
node_name
- (Required) A node name
Attributes
domain
- The DNS search domainservers
- The DNS servers
Group (proxmox_virtual_environment_group)
Arguments
group_id
- (Required) The group id
Attributes
acl
- The access control listpath
- The pathpropagate
- Whether to propagate to child pathsrole_id
- The role id
comment
- The group commentmembers
- The group members as a list withusername@realm
entries
Groups (proxmox_virtual_environment_groups)
Arguments
This data source doesn't accept arguments.
Attributes
comments
- The group commentsgroup_ids
- The group ids
Hosts (proxmox_virtual_environment_hosts)
Arguments
node_name
- (Required) A node name
Attributes
addresses
- The IP addressesdigest
- The SHA1 digestentries
- The host entries (conversion ofaddresses
andhostnames
into objects)hostnames
- The hostnames associated with each of the IP addresses
Nodes (proxmox_virtual_environment_nodes)
Arguments
This data source doesn't accept arguments.
Attributes
cpu_count
- The CPU count for each nodecpu_utilization
- The CPU utilization on each nodememory_available
- The memory available on each nodememory_used
- The memory used on each nodenames
- The node namesonline
- Whether a node is onlinessl_fingerprints
- The SSL fingerprint for each nodesupport_levels
- The support level for each nodeuptime
- The uptime in seconds for each node
Pool (proxmox_virtual_environment_pool)
Arguments
pool_id
- (Required) The pool id
Attributes
comment
- The pool commentmembers
- The pool membersdatastore_id
- The datastore idid
- The member idnode_name
- The node nametype
- The member typevm_id
- The virtual machine id
Pools (proxmox_virtual_environment_pools)
Arguments
This data source doesn't accept arguments.
Attributes
pool_ids
- The pool ids
Role (proxmox_virtual_environment_role)
Arguments
role_id
- (Required) The role id
Attributes
privileges
- The role privileges
Roles (proxmox_virtual_environment_roles)
Arguments
This data source doesn't accept arguments.
Attributes
privileges
- The role privilegesrole_ids
- The role idsspecial
- Whether the role is special (built-in)
User (proxmox_virtual_environment_user)
Arguments
user_id
- (Required) The user id.
Attributes
acl
- The access control listpath
- The pathpropagate
- Whether to propagate to child pathsrole_id
- The role id
comment
- The user commentemail
- The user's email addressenabled
- Whether the user account is enabledexpiration_date
- The user account's expiration date (RFC 3339)first_name
- The user's first namegroups
- The user's groupskeys
- The user's keyslast_name
- The user's last name
Users (proxmox_virtual_environment_users)
Arguments
This data source doesn't accept arguments.
Attributes
comments
- The user commentsemails
- The users' email addressesenabled
- Whether a user account is enabledexpiration_dates
- The user accounts' expiration dates (RFC 3339)first_names
- The users' first namesgroups
- The users' groupskeys
- The users' keyslast_names
- The users' last namesuser_ids
- The user ids
Version (proxmox_virtual_environment_version)
Arguments
This data source doesn't accept arguments.
Attributes
keyboard_layout
- The keyboard layoutrelease
- The release numberrepository_id
- The repository idversion
- The version string
Resources
Virtual Environment
Certificate (proxmox_virtual_environment_certificate)
Arguments
certificate
- (Required) The PEM encoded certificatecertificate_chain
- (Optional) The PEM encoded certificate chainnode_name
- (Required) A node nameprivate_key
- (Required) The PEM encoded private key
Attributes
expiration_date
- The expiration date (RFC 3339)file_name
- The file nameissuer
- The issuerpublic_key_size
- The public key sizepublic_key_type
- The public key typessl_fingerprint
- The SSL fingerprintstart_date
- The start date (RFC 3339)subject
- The subjectsubject_alternative_names
- The subject alternative names
Container (proxmox_virtual_environment_container)
Arguments
clone
- (Optional) The cloning configurationdatastore_id
- (Optional) The ID of the target datastorenode_name
- (Optional) The name of the source node (leave blank, if equal to thenode_name
argument)vm_id
- (Required) The ID of the source container
console
- (Optional) The console configurationenabled
- (Optional) Whether to enable the console device (defaults totrue
)mode
- (Optional) The console mode (defaults totty
)console
- Consoleshell
- Shelltty
- TTY
tty_count
- (Optional) The number of available TTY (defaults to2
)
cpu
- (Optional) The CPU configurationarchitecture
- (Optional) The CPU architecture (defaults toamd64
)amd64
- x86 (64 bit)arm64
- ARM (64-bit)armhf
- ARM (32 bit)i386
- x86 (32 bit)
cores
- (Optional) The number of CPU cores (defaults to1
)units
- (Optional) The CPU units (defaults to1024
)
description
- (Optional) The descriptiondisk
- (Optional) A diskdatastore_id
- (Optional) The ID of the datastore to create the disk in (defaults tolocal-lvm
)
initialization
- (Optional) The initialization configurationdns
- (Optional) The DNS configurationdomain
- (Optional) The DNS search domainserver
- (Optional) The DNS server
hostname
- (Optional) The hostnameip_config
- (Optional) The IP configuration (one block per network device)ipv4
- (Optional) The IPv4 configurationaddress
- (Optional) The IPv4 address (usedhcp
for autodiscovery)gateway
- (Optional) The IPv4 gateway (must be omitted whendhcp
is used as the address)
ipv6
- (Optional) The IPv4 configurationaddress
- (Optional) The IPv6 address (usedhcp
for autodiscovery)gateway
- (Optional) The IPv6 gateway (must be omitted whendhcp
is used as the address)
user_account
- (Optional) The user account configurationkeys
- (Optional) The SSH keys for the root accountpassword
- (Optional) The password for the root account
memory
- (Optional) The memory configurationdedicated
- (Optional) The dedicated memory in megabytes (defaults to512
)swap
- (Optional) The swap size in megabytes (defaults to0
)
network_interface
- (Optional) A network interface (multiple blocks supported)bridge
- (Optional) The name of the network bridge (defaults tovmbr0
)enabled
- (Optional) Whether to enable the network device (defaults totrue
)mac_address
- (Optional) The MAC addressname
- (Required) The network interface namerate_limit
- (Optional) The rate limit in megabytes per secondvlan_id
- (Optional) The VLAN identifier
node_name
- (Required) The name of the node to assign the container tooperating_system
- (Required) The Operating System configurationtemplate_file_id
- (Required) The ID of an OS template filetype
- (Optional) The type (defaults tounmanaged
)alpine
- Alpinearchlinux
- Arch Linuxcentos
- CentOSdebian
- Debianfedora
- Fedoragentoo
- Gentooopensuse
- openSUSEubuntu
- Ubuntuunmanaged
- Unmanaged
pool_id
- (Optional) The ID of a pool to assign the container tostarted
- (Optional) Whether to start the container (defaults totrue
)template
- (Optional) Whether to create a template (defaults tofalse
)vm_id
- (Optional) The ID
Attributes
This resource doesn't expose any additional attributes.
DNS (proxmox_virtual_environment_dns)
Arguments
domain
- (Required) The DNS search domainnode_name
- (Required) A node nameservers
- (Optional) The DNS servers
Attributes
This resource doesn't expose any additional attributes.
Notes
Be careful not to use this resource multiple times for the same node.
File (proxmox_virtual_environment_file)
Arguments
content_type
- (Optional) The content typebackup
iso
snippets
vztmpl
datastore_id
- (Required) The datastore idnode_name
- (Required) The node namesource_file
- (Optional) The source file (conflicts withsource_raw
)checksum
- (Optional) The SHA256 checksum of the source filefile_name
- (Optional) The file name to use instead of the source file nameinsecure
- (Optional) Whether to skip the TLS verification step for HTTPS sources (defaults tofalse
)path
- (Required) A path to a local file or a URL
source_raw
- (Optional) The raw source (conflicts withsource_file
)data
- (Required) The raw datafile_name
- (Required) The file nameresize
- (Optional) The number of bytes to resize the file to
Attributes
file_modification_date
- The file modification date (RFC 3339)file_name
- The file namefile_size
- The file size in bytesfile_tag
- The file tag
Notes
The Proxmox VE API endpoint for file uploads does not support chunked transfer encoding, which means that we must first store the source file as a temporary file locally before uploading it.
You must ensure that you have at least Size-in-MB * 2 + 1
MB of storage space available (twice the size plus overhead because a multipart payload needs to be created as another temporary file).
Group (proxmox_virtual_environment_group)
Arguments
acl
- (Optional) The access control list (multiple blocks supported)path
- The pathpropagate
- Whether to propagate to child pathsrole_id
- The role id
comment
- (Optional) The group commentgroup_id
- (Required) The group id
Attributes
members
- The group members as a list withusername@realm
entries
Hosts (proxmox_virtual_environment_hosts)
Arguments
node_name
- (Required) A node nameentry
- (Required) A host entry (multiple blocks supported)address
- (Required) The IP addresshostnames
- (Required) The hostnames
Attributes
addresses
- The IP addressesdigest
- The SHA1 digestentries
- The host entries (conversion ofaddresses
andhostnames
into objects)hostnames
- The hostnames associated with each of the IP addresses
Pool (proxmox_virtual_environment_pool)
Arguments
comment
- (Optional) The pool commentpool_id
- (Required) The pool id
Attributes
members
- The pool membersdatastore_id
- The datastore idid
- The member idnode_name
- The node nametype
- The member typevm_id
- The virtual machine id
Role (proxmox_virtual_environment_role)
Arguments
privileges
- (Required) The role privilegesrole_id
- (Required) The role id
Attributes
This resource doesn't expose any additional attributes.
User (proxmox_virtual_environment_user)
Arguments
acl
- (Optional) The access control list (multiple blocks supported)path
- The pathpropagate
- Whether to propagate to child pathsrole_id
- The role id
comment
- (Optional) The user commentemail
- (Optional) The user's email addressenabled
- (Optional) Whether the user account is enabledexpiration_date
- (Optional) The user account's expiration date (RFC 3339)first_name
- (Optional) The user's first namegroups
- (Optional) The user's groupskeys
- (Optional) The user's keyslast_name
- (Optional) The user's last namepassword
- (Required) The user's passworduser_id
- (Required) The user id
Attributes
This resource doesn't expose any additional attributes.
Virtual Machine (proxmox_virtual_environment_vm)
Arguments
acpi
- (Optional) Whether to enable ACPI (defaults totrue
)agent
- (Optional) The QEMU agent configurationenabled
- (Optional) Whether to enable the QEMU agent (defaults tofalse
)trim
- (Optional) Whether to enable the FSTRIM feature in the QEMU agent (defaults tofalse
)type
- (Optional) The QEMU agent interface type (defaults tovirtio
)isa
- ISA Serial Portvirtio
- VirtIO (paravirtualized)
audio_device
- (Optional) An audio devicedevice
- (Optional) The device (defaults tointel-hda
)AC97
- Intel 82801AA AC97 Audioich9-intel-hda
- Intel HD Audio Controller (ich9)intel-hda
- Intel HD Audio
driver
- (Optional) The driver (defaults tospice
)spice
- Spice
enabled
- (Optional) Whether to enable the audio device (defaults totrue
)
bios
- (Optional) The BIOS implementation (defaults toseabios
)ovmf
- OVMF (UEFI)seabios
- SeaBIOS
cdrom
- (Optional) The CDROM configurationenabled
- (Optional) Whether to enable the CDROM drive (defaults tofalse
)file_id
- (Optional) A file ID for an ISO file (defaults tocdrom
as in the physical drive)
clone
- (Optional) The cloning configurationdatastore_id
- (Optional) The ID of the target datastorenode_name
- (Optional) The name of the source node (leave blank, if equal to thenode_name
argument)vm_id
- (Required) The ID of the source VM
cpu
- (Optional) The CPU configurationarchitecture
- (Optional) The CPU architecture (defaults tox86_64
)aarch64
- ARM (64 bit)x86_64
- x86 (64-bit)
cores
- (Optional) The number of CPU cores (defaults to1
)flags
- (Optional) The CPU flags+aes
/-aes
- Activate AES instruction set for HW acceleration+amd-no-ssb
/-amd-no-ssb
- Notifies guest OS that host is not vulnerable for Spectre on AMD CPUs+amd-ssbd
/-amd-ssbd
- Improves Spectre mitigation performance with AMD CPUs, best used with "virt-ssbd"+hv-evmcs
/-hv-evmcs
- Improve performance for nested virtualization (only supported on Intel CPUs)+hv-tlbflush
/-hv-tlbflush
- Improve performance in overcommitted Windows guests (may lead to guest BSOD on old CPUs)+ibpb
/-ibpb
- Allows improved Spectre mitigation on AMD CPUs+md-clear
/-md-clear
- Required to let the guest OS know if MDS is mitigated correctly+pcid
/-pcid
- Meltdown fix cost reduction on Westmere, Sandy- and Ivy Bridge Intel CPUs+pdpe1gb
/-pdpe1gb
- Allows guest OS to use 1 GB size pages, if host HW supports it+spec-ctrl
/-spec-ctrl
- Allows improved Spectre mitigation with Intel CPUs+ssbd
/-ssbd
- Protection for "Speculative Store Bypass" for Intel models+virt-ssbd
/-virt-ssbd
- Basis for "Speculative Store Bypass" protection for AMD models
hotplugged
- (Optional) The number of hotplugged vCPUs (defaults to0
)sockets
- (Optional) The number of CPU sockets (defaults to1
)type
- (Optional) The emulated CPU type (defaults toqemu64
)486
- Intel 486Broadwell
/Broadwell-IBRS
/Broadwell-noTSX
/Broadwell-noTSX-IBRS
- Intel Core Processor (Broadwell, 2014)Cascadelake-Server
- Intel Xeon 32xx/42xx/52xx/62xx/82xx/92xx (2019)Conroe
- Intel Celeron_4x0 (Conroe/Merom Class Core 2, 2006)EPYC
/EPYC-IBPB
- AMD EPYC Processor (2017)Haswell
/Haswell-IBRS
/Haswell-noTSX
/Haswell-noTSX-IBRS
- Intel Core Processor (Haswell, 2013)IvyBridge
/IvyBridge-IBRS
- Intel Xeon E3-12xx v2 (Ivy Bridge, 2012)KnightsMill
- Intel Xeon Phi 72xx (2017)Nehalem
/Nehalem-IBRS
- Intel Core i7 9xx (Nehalem Class Core i7, 2008)Opteron_G1
- AMD Opteron 240 (Gen 1 Class Opteron, 2004)Opteron_G2
- AMD Opteron 22xx (Gen 2 Class Opteron, 2006)Opteron_G3
- AMD Opteron 23xx (Gen 3 Class Opteron, 2009)Opteron_G4
- AMD Opteron 62xx class CPU (2011)Opteron_G5
- AMD Opteron 63xx class CPU (2012)Penryn
- Intel Core 2 Duo P9xxx (Penryn Class Core 2, 2007)SandyBridge
/SandyBridge-IBRS
- Intel Xeon E312xx (Sandy Bridge, 2011)Skylake-Client
/Skylake-Client-IBRS
- Intel Core Processor (Skylake, 2015)Skylake-Server
/Skylake-Server-IBRS
- Intel Xeon Processor (Skylake, 2016)Westmere
/Westmere-IBRS
- Intel Westmere E56xx/L56xx/X56xx (Nehalem-C, 2010)athlon
- AMD Athloncore2duo
- Intel Core 2 Duocoreduo
- Intel Core Duohost
- Host passthroughkvm32
/kvm64
- Common KVM processor (32 & 64 bit variants)max
- Maximum amount of features from host CPUpentium
- Intel Pentium (1993)pentium2
- Intel Pentium 2 (1997-1999)pentium3
- Intel Pentium 3 (1999-2001)phenom
- AMD Phenom (2010)qemu32
/qemu64
- QEMU Virtual CPU version 2.5+ (32 & 64 bit variants)
units
- (Optional) The CPU units (defaults to1024
)
description
- (Optional) The descriptiondisk
- (Optional) A disk (multiple blocks supported)datastore_id
- (Optional) The ID of the datastore to create the disk in (defaults tolocal-lvm
)file_format
- (Optional) The file format (defaults toqcow2
)qcow2
- QEMU Disk Image v2raw
- Raw Disk Imagevmdk
- VMware Disk Image
file_id
- (Optional) The file ID for a disk image (experimental - might cause high CPU utilization during import, especially with large disk images)size
- (Optional) The disk size in gigabytes (defaults to8
)speed
- (Optional) The speed limitsread
- (Optional) The maximum read speed in megabytes per secondread_burstable
- (Optional) The maximum burstable read speed in megabytes per secondwrite
- (Optional) The maximum write speed in megabytes per secondwrite_burstable
- (Optional) The maximum burstable write speed in megabytes per second
initialization
- (Optional) The cloud-init configuration (conflicts withcdrom
)dns
- (Optional) The DNS configurationdomain
- (Optional) The DNS search domainserver
- (Optional) The DNS server
ip_config
- (Optional) The IP configuration (one block per network device)ipv4
- (Optional) The IPv4 configurationaddress
- (Optional) The IPv4 address (usedhcp
for autodiscovery)gateway
- (Optional) The IPv4 gateway (must be omitted whendhcp
is used as the address)
ipv6
- (Optional) The IPv4 configurationaddress
- (Optional) The IPv6 address (usedhcp
for autodiscovery)gateway
- (Optional) The IPv6 gateway (must be omitted whendhcp
is used as the address)
user_account
- (Optional) The user account configuration (conflicts withuser_data_file_id
)keys
- (Optional) The SSH keyspassword
- (Optional) The SSH passwordusername
- (Optional) The SSH username
user_data_file_id
- (Optional) The ID of a file containing custom user data (conflicts withuser_account
)
keyboard_layout
- (Optional) The keyboard layout (defaults toen-us
)da
- Danishde
- Germande-ch
- Swiss Germanen-gb
- British Englishen-us
- American Englishes
- Spanishfi
- Finnishfr
- Frenchfr-be
- Belgian Frenchfr-ca
- French Canadianfr-ch
- Swish Frenchhu
- Hungarianis
- Icelandicit
- Italianja
- Japaneselt
- Lithuanianmk
- Macedoniannl
- Dutchno
- Norwegianpl
- Polishpt
- Portuguesept-br
- Brazilian Portuguesesl
- Sloveniansv
- Swedishtr
- Turkish
memory
- (Optional) The memory configurationdedicated
- (Optional) The dedicated memory in megabytes (defaults to512
)floating
- (Optional) The floating memory in megabytes (defaults to0
)shared
- (Optional) The shared memory in megabytes (defaults to0
)
name
- (Optional) The namenetwork_device
- (Optional) A network device (multiple blocks supported)bridge
- (Optional) The name of the network bridge (defaults tovmbr0
)enabled
- (Optional) Whether to enable the network device (defaults totrue
)mac_address
- (Optional) The MAC addressmodel
- (Optional) The network device model (defaults tovirtio
)e1000
- Intel E1000rtl8139
- Realtek RTL8139virtio
- VirtIO (paravirtualized)vmxnet3
- VMware vmxnet3
rate_limit
- (Optional) The rate limit in megabytes per secondvlan_id
- (Optional) The VLAN identifier
node_name
- (Required) The name of the node to assign the virtual machine tooperating_system
- (Optional) The Operating System configurationtype
- (Optional) The type (defaults toother
)l24
- Linux Kernel 2.4l26
- Linux Kernel 2.6 - 5.Xother
- Unspecified OSsolaris
- OpenIndiania, OpenSolaris og Solaris Kernelw2k
- Windows 2000w2k3
- Windows 2003w2k8
- Windows 2008win7
- Windows 7win8
- Windows 8, 2012 or 2012 R2win10
- Windows 10 or 2016wvista
- Windows Vistawxp
- Windows XP
pool_id
- (Optional) The ID of a pool to assign the virtual machine toserial_device
- (Optional) A serial device (multiple blocks supported)device
- (Optional) The device (defaults tosocket
)/dev/*
- A host serial devicesocket
- A unix socket
started
- (Optional) Whether to start the virtual machine (defaults totrue
)tablet_device
- (Optional) Whether to enable the USB tablet device (defaults totrue
)template
- (Optional) Whether to create a template (defaults tofalse
)vga
- (Optional) The VGA configurationenabled
- (Optional) Whether to enable the VGA device (defaults totrue
)memory
- (Optional) The VGA memory in megabytes (defaults to16
)type
- (Optional) The VGA type (defaults tostd
)cirrus
- Cirrus (deprecated since QEMU 2.2)qxl
- SPICEqxl2
- SPICE Dual Monitorqxl3
- SPICE Triple Monitorqxl4
- SPICE Quad Monitorserial0
- Serial Terminal 0serial1
- Serial Terminal 1serial2
- Serial Terminal 2serial3
- Serial Terminal 3std
- Standard VGAvirtio
- VirtIO-GPUvmware
- VMware Compatible
vm_id
- (Optional) The VM identifier
Attributes
ipv4_addresses
- The IPv4 addresses per network interface published by the QEMU agent (empty list whenagent.enabled
isfalse
)ipv6_addresses
- The IPv6 addresses per network interface published by the QEMU agent (empty list whenagent.enabled
isfalse
)mac_addresses
- The MAC addresses published by the QEMU agent with fallback to the network device configuration, if the agent is disablednetwork_interface_names
- The network interface names published by the QEMU agent (empty list whenagent.enabled
isfalse
)
Notes
When cloning an existing virtual machine, whether it's a template or not, the resource will only detect changes to the arguments which are not set to their default values.
Developing the Provider
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.13+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin
to your $PATH
.
To compile the provider, run make build
. This will build the provider and put the provider binary in the $GOPATH/bin
directory.
$ make build
...
$ $GOPATH/bin/terraform-provider-proxmox
...
If you wish to contribute to the provider, please see CONTRIBUTING.md.
Testing the Provider
In order to test the provider, you can simply run make test
.
$ make test
Tests are limited to regression tests, ensuring backwards compability.
Known issues
Disk images cannot be imported by non-PAM accounts
Due to limitations in the Proxmox VE API, certain actions need to be performed using SSH. This requires the use of a PAM account (standard Linux account).
Disk images from VMware cannot be uploaded or imported
Proxmox VE is not currently supporting VMware disk images directly. However, you can still use them as disk images by using this workaround:
resource "proxmox_virtual_environment_file" "vmdk_disk_image" {
content_type = "iso"
datastore_id = "datastore-id"
node_name = "node-name"
source_file {
# We must override the file extension to bypass the validation code in the Proxmox VE API.
file_name = "vmdk-file-name.img"
path = "path-to-vmdk-file"
}
}
resource "proxmox_virtual_environment_vm" "example" {
...
disk {
datastore_id = "datastore-id"
# We must tell the provider that the file format is vmdk instead of qcow2.
file_format = "vmdk"
file_id = "${proxmox_virtual_environment_file.vmdk_disk_image.id}"
}
...
}
Snippets cannot be uploaded by non-PAM accounts
Due to limitations in the Proxmox VE API, certain files need to be uploaded using SFTP. This requires the use of a PAM account (standard Linux account).