We're almost there! Release candidate 1 of Terraform 0.12.0 is now available for testing. Unless testing identifies a significant blocker, we expect to publish the final 0.12.0 release a few weeks from now.
Thank you to everyone who has tested the beta1 and beta2 releases. Your feedback and bug reports have been invaluable for identifying some rough edges that our automated and manual tests weren't previously covering. As a result, we are optimistically confident that this release candidate should function well for most users.
With that said, it is still only a release candidate, so we recommend caution when testing against existing infrastructure. Please refer to the upgrade guide for information on the upgrade process. We would very much appreciate you testing this release candidate to find any remaining bugs and friction points so that we can address them before the final release.
We recommend creating a separate copy of your infrastructure to test and testing individual parts in isolation if your infrastructure is modularized. It is also safe to use terraform plan
to run a speculative plan against existing infrastructure without affecting it or its Terraform state.
Warning: If you run terraform apply
, terraform input
, or any of the terraform state
subcommands with an existing state file, Terraform will update your persisted state to the new 0.12 storage format, making it incompatible with Terraform 0.11.
Aside from responding to any further bug reports from this release candidate, we are planning to use the remaining time before the final release to finalize the upgrade guide and smooth some minor rough edges in the upgrade process.
During the beta1 and beta2 periods, the various Terraform provider developers (within HashiCorp, within partner companies, and in the community) have been hard at work making as many providers as possible available for testing. As we write this, the top 15 providers by download count have 0.12-compatible releases
available, along with various others updated by community maintainers. In particular, the AWS, Azure, DigitalOcean, Google Cloud Platform, and Kubernetes providers are already compatible, along with the various "helper" providers like http
, null
, random
, template
, etc.
There are still several providers that do not yet have 0.12-ready releases. We have made the decision to move forward with Terraform Core release in spite of that, in the interests of making this new release available as soon as possible for as many users as possible. We have published a 0.12 readiness guide for provider developers with details on how to make a provider 0.12-ready.
Providers that are not yet compatible will report that no compatible versions are available during terraform init
, with the following error message:
Error: no available version is compatible with this version of Terraform
Our provider teams are still hard at work making these releases and we expect to have compatible releases for all HashiCorp-hosted providers shortly after the final Core 0.12 release.
Terraform 0.12.0 is a big release and has been a long time in the making. We're thankful to the community for their patience as we've worked through the ups and downs of preparing this release.
In some ways, the language improvements for Terraform 0.12.0 have been in the making for several releases now, going back as far as Terraform 0.7.0, where we started making incremental improvements to the language such as the first-class collection indexing syntax, list and map variables, and the boolean and conditional operators.
During the 0.11 development cycle though, we realized that further progress would require some more fundamental changes. The type system for the Terraform language is a cross-cutting concern, affecting not only the language itself but the provider protocol, various file formats, etc. Further improvements to the Terraform language would therefore require some complex, coordinated changes across many subsystems, and that work has been the driver of Terraform 0.12.
Although the 0.12 label applies only to the Terraform Core release, work to prepare for this release has involved changes across the whole Terraform product offering, including:
As we're sure you can imagine, each of these had its own specific challenges, some of which have caused delays. Due to the cross-cutting nature of these changes we were unable to take the more incremental approach we've preferred with earlier releases.
Thank you again to the community for patience while we've completed all of the many changes required to make this release available. For more on the features coming in 0.12 see this blog post.
How one technologist’s Terraform certification journey helped him refresh his career as a practitioner after being a CTO at a small firm.
Terraform Cloud Operator for Kubernetes adds more Day 2 operations. Users can now start runs using workspace resource annotations.
The newest enhancements to HashiCorp Terraform Cloud’s run task feature empower users to seamlessly expand their use of essential third-party integrations.