chore(deps): update terraform libvirt to v0.9.3#125
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
chore(deps): update terraform libvirt to v0.9.3#125renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
Terraform Format and Style 🖌
|
256e3b7 to
cf8ef7d
Compare
Terraform Format and Style 🖌
|
cf8ef7d to
fa0e012
Compare
fa0e012 to
50ba164
Compare
50ba164 to
7fc0a35
Compare
7fc0a35 to
f048313
Compare
f048313 to
e6f41ab
Compare
e6f41ab to
4573300
Compare
4573300 to
29c723a
Compare
29c723a to
af39ba5
Compare
af39ba5 to
46dfe0d
Compare
46dfe0d to
ddfaaee
Compare
ddfaaee to
e6c6112
Compare
e6c6112 to
e2943d7
Compare
e2943d7 to
2741337
Compare
2741337 to
2df2592
Compare
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2df2592 to
adbd3cd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.6.2→0.9.3Release Notes
dmacvicar/terraform-provider-libvirt (libvirt)
v0.9.3Compare Source
What's Changed
New Contributors
And thanks for those unmerged PRs @SkinGad @yannlambret @nicholas-rees
Full Changelog: dmacvicar/terraform-provider-libvirt@v0.9.2...v0.9.3
v0.9.2Compare Source
Full Changelog: dmacvicar/terraform-provider-libvirt@v0.9.1...v0.9.2
Thanks to @BohdanTkachenko for the feedback, reports and PR suggestions.
v0.9.1Compare Source
Bugfixes
VIR_DOMAIN_UNDEFINE_NVRAMandVIR_DOMAIN_UNDEFINE_TPM. These defaults may change in the future and be part of a domain block likecreateanddelete. (#1203 )Features
Support for full libvirt API (XML) (#1208 )
The provider now supports the whole libvirt API 🥳 (* that is supported by libvirtxml), thanks to a code generation engine which generates the whole terraform glue for the schemas and conversions.
For now, the usual resources (domain, network, volume, pool) are included, but this opens the door to handle other resources (secrets, etc) with little effort.
Migration Guide: 0.9.0 → v0.9.1
Due to the introduction of the generator and some bugs in the 0.9.0 schema, we had to do some changes in the schema.
This document explains how to move Terraform configurations from provider v0.9.0 (the last manual schema) to the current HEAD that uses the libvirt-schema code generator. It only covers resources and attributes that existed in 0.9.0: domains, networks, storage pools, and storage volumes. Anything new that HEAD exposes can simply be added following the generated schema documentation.
What Changed Globally
accessmode→access_mode,portgroup→port_group). Set exactly the fields you care about; anything left null stays absent in the XML.memory+memory_unit,capacity+capacity_unit, etc.). Leaving the unit unset lets libvirt use its default.yes/nostrings when libvirt models them as attributes (e.g.os.loader_readonly). True presence booleans (likefeatures.acpi) still use Terraform bools.source.poolorfilesystem.source.{ metadata = { xml = <<EOF ... } }so we can extend later without breaking state.Domain Resource
Top-level attribute mapping
unitmemory_unitmax_memorymaximum_memorymaximum_memory_unitif you previously used a non-default unit.max_memory_slotsmaximum_memory_slotscurrent_memorycurrent_memory+ optionalcurrent_memory_unitmetadata(string)metadata = { xml = <<EOF ... EOF }os.archos.type_archtype_*prefix mirrors<os><type arch="..."/>.os.machineos.type_machineos.kernel_argsos.cmdline<cmdline>element.os.loader_pathos.loaderos.loader_readonly(bool)os.loader_readonly(string)"yes"/"no"because the XML attribute is a string.os.nvram.*os.nv_ram = { file, template, format = { type = ... } }devices.filesystems[*].accessmodeaccess_modedevices.filesystems[*].readonlyread_onlydevices.interfaces[*].source.portgroupsource = { network = { port_group = ... } }devices.rngs[*].devicebackend = { random = "/dev/urandom" }orbackend = { egd = { ... } }OS block specifics
os.boot_devicesis still a list, but if you previously stored strings you now provide objects:boot_devices = [{ dev = "hd" }, { dev = "network" }]."yes"/"no"). Wrap them intostring()if you had boolean locals.os = { nv_ram = { file = "/var/lib/libvirt/nvram.bin", template = "/usr/share/OVMF/OVMF_VARS.fd", format = { type = "raw" } } }.Loader value + attributes
<loader>is a “value + attributes” element. The path is the value (os.loader), and every XML attribute becomes a sibling attribute:Leave the attribute unset to let libvirt pick its default (the provider preserves user intent for optional attributes).
Disks and filesystems
0.9 flattened every disk source. HEAD requires you to pick the XML variant explicitly:
Filesystems follow the same pattern. Replace the old flat fields with nested objects:
Variant notation
Every
<source>element with mutually exclusive children (files, volumes, blocks, etc.) becomes an object whose attributes map 1:1 to the libvirt XML children. Only set the branch you need:Even if a variant has additional attributes in XML, the generated struct exposes them in that nested object (e.g.,
ram = { usage = 1024, unit = "MiB" }). This pattern is consistent across disks, filesystems, host devices, etc.Interfaces
source.network,source.bridge, andsource.devare now mutually exclusive nested objects. Example conversions:portgroupbecameport_group,wait_for_ipstays the same helper object.RNG / TPM / other devices
<backend>. Usebackend = { random = "/dev/urandom" }for /dev/random orbackend = { egd = { source = { mode = "connect", host = "unix", service = "..." } } }for EGD sockets.backend = { emulator = { path = "/var/lib/swtpm/sock" } }). Map your previousbackend_typeto one of the backend objects:emulator,passthrough, orexternal.auto_port,websocket, etc.).Metadata
0.9 stored raw XML as a string. Now wrap it:
Storage Volume Resource
Key differences:
format(string)target = { format = { type = "qcow2" } }permissions.*target.permissions.*target.backing_store.formatbacking_store = { format = { type = "qcow2" } }<format>element.capacitycapacity+ optionalcapacity_unitcapacity_unitunset to keep KiB.allocationallocation+allocation_unit(read-only)path(computed)path, but it mirrorstarget.pathEverything else (name, pool, create/content) behaves exactly like 0.9. Plan/apply will touch
terraform stateautomatically once you update the config.Storage Pool Resource
The generated schema simply fills in additional optional sub-objects (
source.host,source.auth,features, etc.). All attributes that existed in 0.9 keep their names and shapes:target = { path = "/var/lib/libvirt/pools" }works unchanged.target.permissions.*still take strings, not integers.source.device = [{ path = "/dev/sdb" }]keeps the same structure.Unless you opt into the new nested fields you do not need to change existing pool configurations.
Network Resource
modeforward = { mode = "nat" }<forward>element.bridge(string)bridge = { name = "virbr0" }autostartautostartipsips, but nested attr names now snake_case (local_ptr,dhcp.hosts, etc.)portgroup→port_groupinside DHCP hosts.Example conversion:
DHCP ranges/hosts did not change other than automatic snake_case normalisation.
Contributors
v0.9.0Compare Source
Background
When this provider was developed, the idea was to mimic a cloud experience on top of libvirt. Because of this, the schema was done as flat as possible, features were abstracted and some features like disks from remote sources were added as convenience.
The initial users of the provider were usually makers of infrastructure software who needed complex network setups. Lot of code was contributed which added complexity outside of its initial design.
So for long time I wanted to restart the provider under a new design principles where:
I knew 1.0 would never come in the current form.
The new provider
The new provider is based on the new plugin framework. This gives us some room for better diagnostics and better plans.
It makes definitions more verbose, but it also means we can implement any libvirt feature. Defaults work as long as they are defaults in libvirt.
Migration plan
You can find the legacy provider in the v0.8 branch. New releases can be done of 0.8.x versions to add bugfixes, so people who rely on it have a path forward. I'd likely not maintain much of 0.8.x, but I guess many people will help here, as they do today with different PRs.
There is no automated way of migrating the HCL of previous providers, but given that it is documented how the new schema is defined, which was not the case with the previous schema, it should be much easier to drive LLMs to perform a conversion.
You should check the documentation and README, which will give you an idea of the main differences and equivalences, but here is an example of the new schema to get an idea:
Feedback is appreciated. There will be a long journey for people to port and iron all the issues, but it is clear this is the path to go.
Docs: https://registry.terraform.io/providers/dmacvicar/libvirt/latest/docs
v0.8.3Compare Source
Full Changelog: dmacvicar/terraform-provider-libvirt@v0.8.2...v0.8.3
v0.8.2Compare Source
What's Changed
Content sniffing
Upgrade dependencies
Bug fixes
New Contributors
Full Changelog: dmacvicar/terraform-provider-libvirt@v0.8.1...v0.8.2
v0.8.1Compare Source
What's Changed
This release is mostly about fixes for the SSH transport, which was released with many bugs in v0.8.0
Experimental LVM storage pool support
There is a new experimental feature, support for LVM storage pools. I don't use myself this type of pools, so I put together all the contributions and made the code ready for release mostly based on integration tests. Try it and give feedback.
New Contributors
Full Changelog: dmacvicar/terraform-provider-libvirt@v0.8.0...v0.8.1
v0.8.0Compare Source
What's Changed
Two big features include improved ssh config support (for example for supporting jump hosts) and a new data source for host information.
Breaking changes
Other highlights:
Community
We activated discussions, so that the community can share useful files, help each other and also get announcements.
Contributors
Thanks to all the community for their contributions and for supporting other users:
Full Changelog: dmacvicar/terraform-provider-libvirt@v0.7.6...v0.8.0
v0.7.6Compare Source
Features
Thanks @jbeisser 🥳
v0.7.5Compare Source
Fixes
Special thanks to @rgl , @pstrzelczak 🙏
v0.7.4This release was done to fix the expired GPG key (#1035)
v0.7.2Compare Source
Fixes
testmake target to run all tests (#1034)Thanks to contributors @michaelbeaumont @flat35hd99 @tiaden @e4t
v0.7.1Compare Source
Thanks to contributors: @omertuc, @rbbratta
Fixes
v0.7.0Compare Source
Thanks to contributors: @omertuc, @MusicDin, @cfergeau, @jschoone
Major changes
Port to Terraform v2 SDK (#969). Please see the MR #969 for details and changes.
While changes should not break anything, there are semantic differences and different checks and validations performed.
There is one crash I have seen a few times but did not manage to pin down to something specific. Please report if you see something.
Other fixes
sd*prefix and not thevd*prefix (#964)networkRangerace condition and global state corruption (#945)v0.6.14Compare Source
This release adds support SHA2 signatureswith RSA keys in servers with SHA1 disabled (RFC8332)
It should fix the issues seen in issues #916 and #886.
For this, we are using a fork of x/crypto with two patches:
golang/crypto#197
rmohr/crypto@
e4ed966v0.6.13Compare Source
This release only contains upgrades:
Special thanks to @davidalger for debugging the ssh problems and providing valuable information.
v0.6.12Compare Source
This release contains the following fixes:
Support TPM devices (#888)
Support specifying websocket port for VNC
Fix regression supporting querying qemu-guest-agent for network interfaces (#873)
Fix dead links to XSLT examples (#912)
Fix removal of domains with snapshots or checkpoints (#899)
Support specifying "open" forward mode (#900)
See: libvirt/libvirt@
25e8112Speed up copying images (#902)
Add support for passwords using the SSH URI's (#887)
Fix: force new domain if graphics changed
Also:
Thanks to our contributors:
v0.6.11Compare Source
This release contains the following fixes:
qemu+ssh), including support for ssh agent and the ability to disable host verification (#870).Fixes #864.
cpu.modeblock to use a list. Fixes a provider internal validation error.Thanks:
v0.6.10Compare Source
This is a preview release of the next major version of terraform-provider-libvirt.
New Features
Terraform Registry
Should automatically install the provider.
Single Linux build
The provider does not link to libvirt anymore. Instead it uses the amazing go-libvirt, which implements the libvirt XDR-based RPC protocol.
Windows and MacOS support
This release is brought to you by the community. Contributors like @kskewes and @MalloZup made this big port possible. Thanks also to the go-libvirt developers who helped getting digitalocean/go-libvirt#138 and digitalocean/go-libvirt#125 merged.
Other fixes
Release Notes
Changes since last pre-release
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.