- Update primary support from Proxmox VE 8.x to 9.x
- Change privilege examples from VM.Monitor to VM.GuestAgent.Audit
(VM.Monitor removed in PVE 9.x)
- Add backward compatibility notes for 8.x users
- Update production requirements and examples
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(vm): Import Disk via API.
Signed-off-by: Marco Attia <54147992+Vaneixus@users.noreply.github.com>
* lint(vm): fix Linter Issues.
Signed-off-by: Marco Attia <54147992+Vaneixus@users.noreply.github.com>
* fix(vm): import_from update issues.
Signed-off-by: Marco Attia <54147992+Vaneixus@users.noreply.github.com>
* fix: store `import_from` in the state, add acc test for `import_from`
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* chore: update examples and docs
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: linter
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* chore: re-gen docs
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Marco Attia <54147992+Vaneixus@users.noreply.github.com>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Signed-off-by: Marco Attia <54147992+Vaneixus@users.noreply.github.com>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
- Added MD059 rule to .markdownlint.json for better markdown formatting.
- Updated CODE_OF_CONDUCT.md to format email address as a link.
- Consolidated privilege descriptions in docs/index.md for clarity.
- Improved formatting in docs/resources/virtual_environment_vm.md for better readability.
* add `gh` to devcontainer
* remove wakatime
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Update virtual_environment_container.md
List of tags unsorted do not impact `terraform plan` differences seen by terraform. But having tags with capital letters do.
Signed-off-by: pileus-lines <pileus@savaneprod.fr>
This is a "meta" PR to bump the minor version due potentially breaking changes from #1840.
See documentation for more details.
> When cloning an existing virtual machine, whether it's a template or not, the
> resource will inherit the disks and other configuration from the source VM.
>
> *If* you modify any attributes of an existing disk in the clone, you also need to
> explicitly provide values for any other attributes that differ from the schema defaults
> in the source (e.g., `size`, `discard`, `cache`, `aio`).
> Otherwise, the schema defaults will take effect and override the source values.
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(vm): fix vm machine type validation in order to support viommu
Signed-off-by: Mikael Nakajima <nakamorichi@protonmail.com>
* docs(vm): update machine type documentation with VIOMMU details
Enhance VM machine type documentation to clarify VIOMMU configuration option for q35 machine type
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Mikael Nakajima <nakamorichi@protonmail.com>
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 optional reboot after update configuration
- Add `reboot_after_update` parameter to VM resource
- Update documentation to reflect new configuration option
- Implement logic to control VM reboot after configuration changes
- Provide warning if reboot is required but disabled by configuration
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(vm): add RNG device support
This commit adds support for configuring the Random Number Generator (RNG) device for virtual machines in both the VM resource and datasource. The implementation includes:
- New schema and model for RNG configuration
- Support for setting RNG source, max_bytes, and period
- Updated documentation for RNG configuration
- Test cases for RNG configuration
- Integration with VM creation, update, and read operations
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix(provider): fix for datastore does not support content type "dump"
Signed-off-by: cgeopapa <cgeocodgod@gmail.com>
* fix: move ContentType override further in the flow
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* fix: update docs
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: cgeopapa <cgeocodgod@gmail.com>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
fix: updated typo from `proxmox_virtual_environment_download_file` to `proxmox_virtual_environment_download_file` in docs/resources/virtual_environment_container.md
Signed-off-by: Noah Schill <noahrschill@gmail.com>
* feat(lxc): Implement support for container's "protection flag"
The Proxmox VE types already has the `protection` API parameter [1],
but it is not exposed to the provider users.
This pull request implements the missing logic to make it available in
order to allow to protect containers against deletion/update operations,
including the container's disks.
[1]: https://github.com/bpg/terraform-provider-proxmox/blob/v0.63.0/proxmox/nodes/containers/containers_types.go#L59
Relates GH-1126
Signed-off-by: Sven Greb <development@svengreb.de>
* Update example/resource_virtual_environment_container.tf
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
Signed-off-by: Sven Greb <development@svengreb.de>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(acme): implement CRUD API for proxmox cluster ACME plugins
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement acme_plugins data source
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement acme_plugin data source
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement plugin resource creation
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement plugin resource read
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement plugin resource update
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement plugin resource deletion
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat(acme): implement plugin resource import
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* docs(acme): generate documentation
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: apply suggestions from code review
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* refactor: extract common fields into BasePluginData
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: restrict plugin resource to type=dns only
because type=standalone is not configurable and always enabled by
default.
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: remove unused 'nodes' property
https://github.com/bpg/terraform-provider-proxmox/pull/1479/files#r1710916265
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: remove "delete" property
https://github.com/bpg/terraform-provider-proxmox/pull/1479/files#r1710908809
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* feat: implement attribute deletion
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: ignore empty lines in dns plugin data
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: partial revert of code review suggestions
Joining the values with a string literal would produce \\n instead of \n
and splitting at \\n doesn't match a newline.
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* refactor: extract acme plugin models into separate file
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
* fix: format disable parameter as int
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
---------
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* feat(file): Add support to set the file mode
GH-733 [1] implemented basic support for hook scripts, but the authors
"did not manage to find time to work on" [2] also including support to
set the file mode. This small but important feature makes the use of the
`proxmox_virtual_environment_container.hook_script_file_id` [3] and
`virtual_environment_vm.hook_script_file_id` [34] attributes basically
useless when not combined with the manual step of making the uploaded
file executable (manually running `chmod +x /path/to/script` or using
other methods, based on the storage backend). Using the
`hook_script_file_id` on its own also causes all planned and applies
changes in the same execution to not be saved in the state because the
Proxmox VE API responses with a HTTP `500` because the uploaded and
assigned file is not executable.
This pull request implements the missing feature to set the file mode
by adding a new `file_mode` attribute of type `string` where an
octal-formatted value can be passed, e.g. `0700` or only `600`.
Note that the support for the octal prefixes `0o` and `0x` are not
supported to reduced the complexity, even though Go of course support
it, including the used `os.FileMode` type [5].
Changing the file mode also causes the file to be replaced, which is
true for almost any attribute in the `proxmox_virtual_environment_file`
resource, to ensure that the file mode can also be changed after the
initial creation.
[1]: https://github.com/bpg/terraform-provider-proxmox/pull/733
[2]: https://github.com/bpg/terraform-provider-proxmox/pull/733#issuecomment-2096716738
[3]: https://registry.terraform.io/providers/bpg/proxmox/latest/docs/resources/virtual_environment_container#hook_script_file_id
[4]: https://registry.terraform.io/providers/bpg/proxmox/latest/docs/resources/virtual_environment_vm#hook_script_file_id
[5]: https://pkg.go.dev/os#FileMode
Related to GH-570
Related to GH-733
Signed-off-by: Sven Greb <development@svengreb.de>
---------
Signed-off-by: Sven Greb <development@svengreb.de>