terraform

Announcing HashiCorp Terraform 0.15 General Availability

Terraform 0.15 delivers a wide set of stable interfaces that practitioners, partners, and organizations can rely on.

We’re pleased to announce the release of HashiCorp Terraform 0.15. It is immediately available for download as well as for use in Terraform Cloud.

The Terraform 0.15 release marks the beginning of the pre-release period leading up to Terraform 1.0. Terraform 0.15 includes a number of improvements that solidify Terraform workflows and ensure the stability of Terraform’s feature set for the long term.

»Terraform 0.15 Highlights

»Remote State Data Source Compatibility

In order to help our practitioners adopt new versions of Terraform into their workflows without having to immediately upgrade existing Terraform codebases, we’ve relaxed the remote state data source parser requirements. (Note: This feature has been backported into the 0.14.0, 0.13.6, and 0.12.30 releases). These versions of Terraform and above will be able to access remote state data sources in versions of Terraform up to 1.0.x at the time of release.

»State File Format Stability

Announced as part of Terraform 0.14, but originally ported from our work on 0.15, Terraform state is cross-compatible between versions 0.14.x, 0.15.x, and 1.0.x (when released). This flexibility will let customers more easily move between versions of Terraform.

»Unified Console Support

Terraform 0.15 makes a significant foundational improvement by unifying the console experience across all supported platforms, bringing with it consistent UTF-8 support and a move to virtual terminal sequences on Microsoft Windows, as shown here:

Terraform unified console

»Provider-Based Sensitivity and Sensitive Functions

Terraform 0.15 extends value sensitivity to provider attributes, allowing provider developers to help protect values from being printed to the console. Terraform will redact these values wherever they appear. This release also ships with a new sensitive function (and a matching nonsensitive function) to further help practitioners manage Terraform’s behavior around sensitive values.

# This attribute will retain its sensitivity if referenced elsewhere 
# in the configuration
resource “aws_db_instance” “mydb” {
    password = value
    ...
}
# This attribute will retain its sensitivity if referenced elsewhere # in the configurationresource “aws_db_instance” “mydb” {    password = value    ...}
# The sensitive function will redact the value during Terraform plan output. 
# Any references to the attribute marked sensitive will also be redacted.
# It is important to note that  some use cases will force the value to be 
# exposed and may result in an error. 
resource "example_resource" "my_resource" {
    password = sensitive(data.resource.name.id)
    ...
}
# The sensitive function will redact the value during Terraform plan output. # Any references to the attribute marked sensitive will also be redacted.# It is important to note that  some use cases will force the value to be # exposed and may result in an error. resource "example_resource" "my_resource" {    password = sensitive(data.resource.name.id)    ...}

»Structured Logging Levels

Terraform 0.15 ships with improved logging behavior. Provider developers using the latest SDK (v.2.4+) can now reliably target messages to specific log levels. Additionally, Terraform CLI and provider logging levels can both be controlled independently using TF_LOG_CORE=level and TF_LOG_PROVIDER=level.

For a hands-on tutorial and to learn more about error logging in Terraform, visit the Troubleshooting Terraform guide on HashiCorp Learn.

Terraform 0.15 also marks the conclusion of several ongoing deprecation cycles. This includes a number of removals, so please see the upgrade guide and changelog for more details.

»Getting Started

We have many resources available for Terraform 0.15 for new and existing users. To learn more about the new functionality of Terraform 0.15 you can:

To get started using Terraform 0.15:

  • Download the Terraform 0.15 release.
  • If you are upgrading from a previous release, read the upgrade guide to learn about the required upgrade steps.

For more details, please see the full changelog. This release also includes a number of code contributions from the community and wouldn't have been possible without all of the great community feedback we've received via GitHub issues and elsewhere. Thank you!

HashiCorp Terraform 0.15 is the next step on our way to solidifying the Terraform ecosystem and empowering collaborative workflows at organizations of all sizes. You can download Terraform 0.15 here and sign up for a Terraform Cloud account here.


Sign up for the latest HashiCorp news