0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-06-29 18:21:10 +00:00
Commit Graph

94 Commits

Author SHA1 Message Date
Marco Attia
2d9e0b585e
feat: add support for 'import' content type in Proxmox file resources (#1983)
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>
2025-06-27 21:23:22 -04:00
bpg-autobot[bot]
52a2af524c
chore(main): release 0.78.2 (#1978)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-06-16 06:14:30 -04:00
bpg-autobot[bot]
527522f66d
chore(main): release 0.78.1 (#1969)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-06-02 20:38:30 -04:00
bpg-autobot[bot]
a05c941de5
chore(main): release 0.78.0 (#1957)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-05-13 22:12:09 -04:00
bpg-autobot[bot]
2664f38757
chore(main): release 0.77.1 (#1942)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-05-05 22:36:55 -04:00
bpg-autobot[bot]
d5979c4b57
chore(main): release 0.77.0 (#1924)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-04-29 21:21:03 -04:00
bpg-autobot[bot]
04a461dffa
chore(main): release 0.76.1 (#1915)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-04-22 21:00:19 -04:00
bpg-autobot[bot]
8cf569b8e7
chore(main): release 0.76.0 (#1896)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-04-16 21:16:32 -04:00
Fina
6dbff43bd1
feat(hardwaremapping): Introduce support for directory mappings (#1902)
Signed-off-by: Fina Wilke <code@felinira.net>
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2025-04-16 18:54:22 -04:00
bpg-autobot[bot]
7ca292069d
chore(main): release 0.75.0 (#1874)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-04-07 23:01:52 -04:00
bpg-autobot[bot]
8d7f672831
chore(main): release 0.74.1 (#1853)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-03-31 00:23:44 +00:00
Pavel Boldyrev
af46a9c71a
fix(vm): remove qcow2 as the default for disk.file_format (#1862)
No more need to explicitly set `file_format = "raw"` when defining new disks!

Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2025-03-29 11:42:07 -04:00
bpg-autobot[bot]
237afa1c1c
chore(main): release 0.74.0 (#1844)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-03-26 16:30:36 -04:00
bpg-autobot[bot]
17b0725bc0
chore(main): release 0.73.2 (#1818)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-03-20 22:20:02 -04:00
Pavel Boldyrev
a681e828bf
chore(docs): update cloud-init configuration examples (#1830)
* 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>
2025-03-19 22:11:07 -04:00
bpg-autobot[bot]
ed0a8d3b19
chore(main): release 0.73.1 (#1794)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-03-11 00:13:13 -04:00
bpg-autobot[bot]
5a808c8aa8
chore(main): release 0.73.0 (#1778)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-02-23 21:36:19 -05:00
bpg-autobot[bot]
6a75b0cd2a
chore(main): release 0.72.0 (#1757)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-02-17 00:02:47 -05:00
bpg-autobot[bot]
a0d4e2d3cb
chore(main): release 0.71.0 (#1738)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2025-02-09 16:57:27 -05:00
renovate[bot]
9bd0b57254
chore(docs): update terraform proxmox (0.70.0 → 0.70.1) (#1741)
* chore(docs): update terraform proxmox (0.70.0 → 0.70.1)

| datasource         | package     | from   | to     |
| ------------------ | ----------- | ------ | ------ |
| terraform-provider | bpg/proxmox | 0.70.0 | 0.70.1 |

* chore(config): add provider.tf for clone-vm example to release config

Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>

---------

Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2025-02-04 03:25:52 +00:00
Rafał Safin
d1cc2144f8
feat(cluster): add proxmox_virtual_environment_metrics_server resource (#1719)
Signed-off-by: rafsaf <rafal.safin@rafsaf.pl>
2025-02-03 13:11:26 -05:00
bpg-autobot[bot]
d64d1af82e
chore(main): release 0.70.1 (#1718)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-01-31 00:03:47 -05:00
renovate[bot]
56f81ccac3
chore(docs): update terraform proxmox (0.69.1 → 0.70.0) (#1717)
| datasource         | package     | from   | to     |
| ------------------ | ----------- | ------ | ------ |
| terraform-provider | bpg/proxmox | 0.69.1 | 0.70.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 11:31:18 -05:00
bpg-autobot[bot]
15a8036f4f
chore(main): release 0.70.0 (#1704)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-01-17 21:04:33 -05:00
Pavel Boldyrev
ccaae927e6
feat(docs): basic guide how to clone a VM template (#1716)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2025-01-17 19:30:34 -05:00
Pavel Boldyrev
ab09b09fbf
chore(docs): add 'stop_on_destroy' configuration to cloud image examples (#1705)
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>
2025-01-08 22:34:00 -05:00
bpg-autobot[bot]
aa24985760
chore(main): release 0.69.1 (#1689)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2025-01-04 08:07:08 -05:00
bpg-autobot[bot]
5327379cd3
chore(main): release 0.69.0 (#1674)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-12-17 23:28:31 -05:00
bpg-autobot[bot]
d510061dcc
chore(main): release 0.68.1 (#1660)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-12-06 21:37:10 -05:00
Pavel Boldyrev
dc73e0ba04
chore(docs): add examples with VM hostname configuration to cloud-init guide (#1670)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2024-12-06 20:12:09 -05:00
bpg-autobot[bot]
44c1ac7988
chore(main): release 0.68.0 (#1651)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-11-26 00:57:06 +00:00
bpg-autobot[bot]
b750e1566d
chore(main): release 0.67.1 (#1648)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-11-20 23:08:36 -05:00
bpg-autobot[bot]
8c245ce246
chore(main): release 0.67.0 (#1616)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-11-20 02:08:35 +00:00
bpg-autobot[bot]
9d166b93b8
chore(main): release 0.66.3 (#1594)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-10-25 12:51:58 -04:00
bpg-autobot[bot]
fea9c57719
chore(main): release 0.66.2 (#1579)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-10-12 14:38:16 -04:00
bpg-autobot[bot]
c9437678b9
chore(main): release 0.66.1 (#1569)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-10-05 00:45:00 +00:00
bpg-autobot[bot]
e2651e0854
chore(main): release 0.66.0 (#1551)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-10-03 20:23:41 -04:00
bpg-autobot[bot]
40373922fc
chore(main): release 0.65.0 (#1528)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-09-21 20:02:42 -04:00
Pavel Boldyrev
8f9b036857
chore(docs): improve network_linux_bridge documentation (#1538)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2024-09-16 22:32:05 +00:00
bpg-autobot[bot]
36835fae57
chore(main): release 0.64.0 (#1503)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-09-08 19:29:29 -04:00
Björn Brauer
a6eb81af08
feat(acme): implement resources and data sources for ACME plugins (#1479)
* 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>
2024-09-08 10:54:16 -04:00
bpg-autobot[bot]
f907ea4bf8
chore(main): release 0.63.0 (#1486)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-08-20 23:09:14 -04:00
bpg-autobot[bot]
07ab51e654
chore(main): release 0.62.0 (#1446)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-08-07 23:57:23 -04:00
Björn Brauer
9de4037a82
feat(acme): implement resources and data sources for ACME accounts (#1455)
* 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>
2024-08-07 23:16:31 -04:00
bpg-autobot[bot]
69320cb2a7
chore(main): release 0.61.1 (#1433)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-07-11 19:11:39 -04:00
bpg-autobot[bot]
fb7047e085
chore(main): release 0.61.0 (#1417)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-07-05 22:34:03 -04:00
Sven Greb
357f7c70a7
feat(node): implement initial support to manage APT repositories (#1325)
* feat(nodes): Initial support to manage APT repositories

> Summary

This commit implements initial support for managing APT repositories
which is (currently) limited to…

- …adding "standard" repositories to allow to configure it.
- toggling the activation status (enabled/disabled) of any configured
  repository.

+ !WARNING!
+ Note that deleting or modifying a repository in any other way is
+ (sadly) not possible (yet?)!
+ The limited functionality is due to the (current) capabilities of
+ the Proxmox VE APT repository API [1] itself.

>> Why are there two resources for one API entity?

Even though an APT repository should be seen as a single API entity, it
was required to implement standard repositories as dedicated
`proxmox_virtual_environment_apt_standard_repository`. This is because
standard repositories must be configured (added) first to the default
source list files because their activation status can be toggled. This
is handled by the HTTP `PUT` request, but the modifying request is
`POST` which would require two calls within the same Terraform execution
cycle. I tried to implement it in a single resource and it worked out
mostly after some handling some edges cases, but in the end there were
still too many situations an edge cases where it might break due to
Terraform state drifts between states. In the end the dedicated
resources are way cleaner and easier to use without no complexity and
conditional attribute juggling for practitioners.

>> Other "specialties"

Unfortunately the Proxmox VE API responses to HTTP `GET` requests with
four larger arrays which are, more or less, kind of connected to each
other, but they also somehow stand on their own. This means that there
is a `files` array that contains the `repositories` again which again
contains all repositories with their metadata of every source file. On
the other hand available standard repositories are listed in the
`standard-repos` array, but their activation status is only stored when
they have already been added through a `PUT` request. The `infos` array
is more less useless.

So in order to get the required data and store them in the state the
`importFromAPI` methods of the models must loop through all the
deep-nested arrays and act based on specific attributes like a matching
file path, comparing it to the activation status and so on.

In the end the implementation is really stable after testing it with all
possible conditions and state combinations.

@bpg if you'd like me to create a small data logic flow chart to make it
easier to understand some parts of the code let me know. I can make my
local notes "shareable" which I created to not loose track of the logic.

>> What is the way to manage the activation status of a "standard" repository?

Because the two resources are modular and scoped they can be simply
combined to manage an APT "standard" repository, e.g. toggling its
activation status. The following examples are also included in the
documentations.

```hcl
// This resource ensure that the "no-subscription" standard repository
// is added to the source list.
// It represents the `PUT` API request.
resource "proxmox_virtual_environment_apt_standard_repository" "example" {
  handle = "no-subscription"
  node   = "pve"
}

// This resource allows to actually modify the activation status of the
// standard repository as it represents the `POST`.
// Using the values from the dedicated standard repository resource
// makes sure that Terraform correctly resolves dependency order.
resource "proxmox_virtual_environment_apt_repository" "example" {
  enabled   = true
  file_path = proxmox_virtual_environment_apt_standard_repository.example.file_path
  index     = proxmox_virtual_environment_apt_standard_repository.example.index
  node      = proxmox_virtual_environment_apt_standard_repository.example.node
}
```

[1]: https://pve.proxmox.com/pve-docs/api-viewer/#/nodes/{node}/apt/repositories

---------

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>
2024-07-05 18:48:35 -04:00
bpg-autobot[bot]
19f710f2c4
chore(main): release 0.60.1 (#1397)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-06-25 01:29:21 -04:00
bpg-autobot[bot]
b7d48f8716
chore(main): release 0.60.0 (#1378)
Co-authored-by: bpg-autobot[bot] <155200059+bpg-autobot[bot]@users.noreply.github.com>
2024-06-13 20:49:52 -04:00
Pavel Boldyrev
8892118228
misc: restore 0.59.1 code
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2024-06-09 23:40:27 -04:00