JujuTF 2.1.0 release notes
24 June 2026
Requirements and compatibility
- This release requires a Juju controller of version 3 or higher. Support for Juju 2.9 controllers was dropped in the v2 track and remains unavailable here; 2.9 continues to be supported on the v1 track for security updates and bug fixes.
- If you are using JAAS, this release requires a Juju controller of version 3.6.5 or higher.
- This release builds against the Juju client API code from the tip of the Juju 4.0 branch (
juju v4.0.11), and is compatible with both Juju 3 and Juju 4 controllers.
New features
Juju spaces and subnets support
The main feature of this release is support for managing Juju network spaces and subnets directly from Terraform. A space is a logical grouping of subnets that share a common purpose or trust boundary; spaces let you segment a modelβs network and control which networks applications bind to, so that traffic (for example, internal vs. public, or storage vs. application traffic) can be routed deliberately.
This release adds the building blocks needed to declare and manage that topology as code:
-
juju_spaceresource β create and manage a network space within a model. A space is identified bymodel_uuid:name, and supports import (by @ale8k in #1233).resource "juju_model" "development" { name = "development" } resource "juju_space" "development" { model_uuid = juju_model.development.uuid name = "development" } -
juju_subnetresource β assign a subnet (by CIDR) to a space within a model (by @ale8k in #1234).resource "juju_subnet" "development" { model_uuid = juju_model.development.uuid cidr = "10.0.0.0/24" space_name = juju_space.development.name } -
juju_spacedata source β look up an existing space by name (by @ale8k in #1235). -
juju_subnetsdata source β list the subnets available in a model (by @ale8k in #1236). -
juju_spaceslist support β enumerate the spaces defined in a model (by @ale8k in #1237).
These resources and data sources are backed by a new spaces and subnets Juju client (by @ale8k in #1241).
Other enhancements
secret_uriadded to thejuju_secretdata source β the secret URI is now exposed when reading a secret, making it easier to reference secrets across configurations. Addsecret_urito thejuju_secretdata source by @luci1900 in #1259.- Explicit force-destroy support for offers β you can now explicitly force the destruction of an application offer. Add explicit force-destroy support for offers by @luci1900 in #1230.
typeadded to thejuju_modeldata source β the model type (for example,iaasorcaas) is now available from the model data source. Addtypeto thejuju_modeldata source by @SimoneDutto in #1273.
Bug fixes
- SSH key deletion now only fails when all results are errors β deleting an SSH key no longer reports a failure when only some of the underlying results return an error. deleteSSHKey should fail only if all the results are errors by @SimoneDutto in #1248.
- Adjusted SSH key deletion behaviour β merged forward from the v1.5 track. Merge v1.5 to main by @kian99 in #1228.
Maintenance
- Improve test worst-case running time by @luci1900 in #1263.
- Enable Terraform integration tests against JAAS v3 by @SimoneDutto in #1248.
- Update to the
juju v4.0.11dependency, building against the tip of the Juju 4.0 branch. - Merge forward updates from the 2.0 branch by @ale8k in #1245.
Full changelog: Comparing v2.0.1...v2.1.0 Β· juju/terraform-provider-juju Β· GitHub