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>
* chore(docs): update cloud-init and VM configuration examples
- Added timezone and package installation for qemu-guest-agent in cloud-init configuration.
- Updated VM configuration to include 'started' attribute and clarified agent usage in documentation.
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* not sure why the image checksum has changed
This looks a bit suspicious, but I can ignore this for the test code. In production that would be a red flag requiring investigation
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
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>
- Update Go version from 1.23 to 1.24 in go.mod and README
- Migrate documentation generation from tools/ to main.go
- Update Makefile to use go generate in main.go for docs
- Remove tools/ directory and related configuration
- Update GitHub Actions and Renovate configuration
- Simplify documentation generation process
Signed-off-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>
* chore(docs): update project documentation and contribution guidelines
This commit updates three key documentation files:
- `CODE_OF_CONDUCT.md`: Refined language and updated contact email
- `CONTRIBUTING.md`: Comprehensive restructuring of contribution guidelines, including more detailed sections on testing, manual testing, and development workflow
- `README.md`: Reorganized badges, updated compatibility notes, and clarified project requirements
The changes improve clarity, provide more detailed guidance for contributors, and enhance the overall documentation structure.
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* chore(docs): enhance provider documentation
- Add detailed table of contents to improve navigation
- Include environment variables summary table with descriptions and requirements
- Fix minor typos and improve formatting
- Add note about using `proxmox_virtual_environment_download_file` for file downloads
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
---------
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>
Added the 'stop_on_destroy' parameter to the Proxmox VM configurations in the cloud image documentation and example files for CentOS, Ubuntu, and Debian. This parameter should be set to true if the QEMU agent is not installed or enabled on the VM, enhancing clarity for users configuring their virtual machines.
Signed-off-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>
* feat(acme): implement CRUD API for proxmox cluster ACME
* feat(acme): implement acme_accounts data source
* feat(acme): implement acme_account data source
* fix(acme): wait for task status on account creation
* feat(acme): implement account resource creation
* feat(acme): implement account read
* fix(acme): wait for task status on account update
* feat(acme): implement account update
* fix(acme): wait for task status on account deletion
* feat(acme): implement account deletion
* feat(acme): implement account import
* feat(acme): provide correctly typed API response for `account` field
* feat(acme): implement account schema for acme_account data source
* fix(acme): read `location` into state in acme_account resource
* fix(acme): ensure `name` of acme_account resource can't be changed
* docs(acme): generate documentation
* feat(acme): read back ACME account details from API
* Revert "fix(acme): ensure `name` of acme_account resource can't be changed"
* fix(acme): provide default for acme account name
* fix(acme): acme account name can't be changed
* chore(acme): update resource doc to clarify PVE auth requirements
* chore(acme): add `created_at` attr to the resource, sort model fields & schema attributes alphabetically
---------
Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
* document role privileges required by proxmox_virtual_environment_download_file resource
* move the new section to the download_file resource doc
---------
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: windowsrefund <mtf8>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>