* feat(vm): add support for cpu `affinity` attribute (#1148)
It helps to pin VMs to the special cpu.
Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
* add clarification about the format and permission requirements for `affinity`
* do not add `affinity` property to the API call if is not set
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(vm): add proxmox_virtual_environment_node datasource
It helps to get CPU model, number of cores and sockets.
Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
* fix node_name ref
* add acceptance test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* Fix some obvious errors, remove dead code
* Add instructions for manually adding public key to authorized_keys file
* Add GitHub context dump step and update testacc workflow condition
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(vm): add `VLAN` trunk support
Signed-off-by: Jack Hodgkiss <identity@jackhodgkiss.uk>
* update docs
* better error handling
* add trunks to acceptance test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Jack Hodgkiss <identity@jackhodgkiss.uk>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(file)!: safer snippets upload using SSH input stream
* fixes for acceptance tests on windows
* enable other OS-es for acceptance tests
* update example templates to use api token auth
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(provider): add support for private key authentication for SSH
Also fix bunch of issues with acceptance tests
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(vm): regression: `mac_addresses` list is missing some interfaces
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* add acceptance test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
cleaning up and refactoring the VM code, add some acceptance tests around disks, few minor bugfixes
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(file): use `sudo` for snippets upload
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: linter
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: no more rm -rf
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(provider): add support for SOCKS5 proxy for SSH connection.
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: linter
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(provider): use `sudo` to execute commands over SSH
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: simplify everything, use sudo per command
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat: add documentation
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* minor doc fix
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* chore: cleanup docs
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(vm): missing disks when importing VM to a TF state
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: add error handling
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* Use GetDatastoreFile instead of ListDatastoreFiles
Signed-off-by: CppBunny <noah@vantiggel.be>
* make linter happy
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: CppBunny <noah@vantiggel.be>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
The default value of "ignore" was missing from the disk discard
parameter of the terraform module. This commit sets the default to
"ignore" instead of the current "".
This fixes terraform incorrectly flagging that the state is different than
what is currently running on the proxmox node when the discard option isn't
defined under the disk object.
Signed-off-by: Daniel Lowry <development@daniellowry.co.uk>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
fix: accept ipv6 in dns servers initialization
Signed-off-by: Guillaume <4112243+LEI@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(provider): removed ip check/limitation to mkProviderSSHNode
It is now possible to use an FQDN instead of an IP Address when the SSH
node is configured
Changes to be committed:
modified: proxmoxtf/provider/schema.go
Signed-off-by: bitchecker <ciro.deluca@autistici.org>
* fix(docs): Updating documentation after the code updates
Signed-off-by: bitchecker <ciro.deluca@autistici.org>
---------
Signed-off-by: bitchecker <ciro.deluca@autistici.org>
* Added NetworkDevices and IPs
Removed previous limitation to 8 network interfaces/ips and moved to
new proxmox limit (up to 32)
Modifiche di cui verrà eseguito il commit:
modificato: proxmox/nodes/vms/vms_types.go
Signed-off-by: bitchecker <ciro.deluca@autistici.org>
* Code alignment for vm resource
After updates to vm_types structure definition, updated the resource
code in order to reflect changes
Modifiche di cui verrà eseguito il commit:
modificato: proxmoxtf/resource/vm.go
Signed-off-by: bitchecker <ciro.deluca@autistici.org>
* fix few typos, fix struct to state mapping
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: bitchecker <ciro.deluca@autistici.org>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* bug(vm): fix hostpci devices not showing up in refresh plan
Signed-off-by: Michael Iseli <michael.iseli@bsi-software.com>
* fix pci & usb devices set on read, fix test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Michael Iseli <michael.iseli@bsi-software.com>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(vm): panic at read when cloud-init drive is on directory storage
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix linter, add tests
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(lxc): allow to update features, add mount type support
Signed-off-by: tarik02 <taras.fomin@gmail.com>
* updates according to the MR
Signed-off-by: tarik02 <taras.fomin@gmail.com>
* update according to the pull request
Signed-off-by: tarik02 <taras.fomin@gmail.com>
---------
Signed-off-by: tarik02 <taras.fomin@gmail.com>
* fix(vm): unable to clone as non-root due to `hook_script`
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix linter error
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
specify right content type for backups
This now matches with the folder used by proxmox for backups
Also update documentation to reflect the change
Signed-off-by: DanielHabenicht <daniel-habenicht@outlook.de>
* fix(provider): use int64 for vm and disk storage
Signed-off-by: DanielHabenicht <daniel-habenicht@outlook.de>
* revert changes for memory
Signed-off-by: DanielHabenicht <daniel-habenicht@outlook.de>
* revert changes for memory
Signed-off-by: DanielHabenicht <daniel-habenicht@outlook.de>
* fix test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix int -> int64 conversion for disk size
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: DanielHabenicht <daniel-habenicht@outlook.de>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
fix: display warning if directory is not found
Signed-off-by: DanielHabenicht <daniel-habenicht@outlook.de>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
For SSH access, try in order:
- IPv4 address of the interface with IPv4 Gateway (if there is one)
- IPv6 address of the interface with IPv6 Gateway (if there is one)
- fallback to the first interface with IPv4 address
Signed-off-by: Oto Petřík <oto.petrik@gmail.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(vm): update validation and docs for `machine` attribute.
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* chore: remove certificate resource from acceptance tests
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat: support usb devices for vm; fixes#665
Signed-off-by: Daniel Muehlbachler-Pietrzykowski <daniel@muehlbachler.io>
* chore: fix linter errors
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Daniel Muehlbachler-Pietrzykowski <daniel@muehlbachler.io>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Disks imported using `file_id` argument do not have FileVolume set,
that makes PathInDatastore return an empty string, which makes
IsOwnedBy return fales for any vm id.
The end result is the inability to resize imported disks,
this fixes it.
Signed-off-by: Oto Petřík <oto.petrik@gmail.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(vm): add 'path_in_datastore' disk argument
Provide access to actual in-datastore path to disk image,
and experimental support for attaching other VM's disks or host devices.
Signed-off-by: Oto Petřík <oto.petrik@gmail.com>
* chore: added to `/example` for acceptance testing
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Oto Petřík <oto.petrik@gmail.com>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(provider): configure temp directory
Resource 'proxmox_virtual_environment_file' often requires lot of disk
space in /tmp, which can be space-limited.
Instead of requiring to set TMPDIR environment variable before running
terraform, make it a provider configuration option.
Signed-off-by: Oto Petřík <oto.petrik@gmail.com>
* fix: lint error, align names in the `client` struct
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Oto Petřík <oto.petrik@gmail.com>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(lxc): add support for the `start_on_boot` option
Signed-off-by: Simon Caron <simon.caron.8@gmail.com>
* Move code next to started blocks + update default value
Signed-off-by: Simon Caron <simon.caron.8@gmail.com>
---------
Signed-off-by: Simon Caron <simon.caron.8@gmail.com>
Co-authored-by: Simon Caron <simon.caron.8@gmail.com>
* fix(api): set min TLS version 1.3, secure HTTP-only cookie
* remove `all-tests-passed` job
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* chore: add file test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* add file updated test, file_name / ID is getting changed :/
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* more tests, refactor file's read, more consistency in the attributes
TODO: need to check backward compatibility
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix error message, enable import test
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* more tests
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* more tests for owerwrite, update docs
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix tests on CI
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(file): FORMAT CHANGE: update **import id**, so it matches the resource's format: `<node_name>/<datastore_id>:<content_type>/<file>`
* better example
The CloudInit interface can be left empty in order to allow
autodetection of the drive being used. However, it would seem that this
value was causing problems (see #539).
This commit adds an additional validator for CloudInit interfaces which
allows the `""` value.
move `types` back from `internal` to `proxmox` and adjust a few other types, to make sure `proxmox` package is not dependent on anything else, and therefore can be extracted to a separate repo (#423)