Skip to content

Releases: hashicorp/terraform

v1.12.0-alpha20250312

12 Mar 16:28
b5a5801
Compare
Choose a tag to compare
v1.12.0-alpha20250312 Pre-release
Pre-release

1.12.0-alpha20250312 (March 12, 2025)

ENHANCEMENTS:

  • Terraform Test command now accepts a -parallelism=n option, which sets the number of parallel operations in a test run's plan/apply operation. (#34237)

  • Logical binary operators can now short-circuit (#36224)

  • Terraform Test: Runs can now be annotated for possible parallel execution. (#34180)

  • Allow terraform init when tests are present but no configuration files are directly inside the current directory (#35040)

  • Terraform Test: Continue subsequent test execution when an expected failure is not encountered. (#34969)

  • Produce detailed diagnostic objects when test run assertions fail (#34428)

  • Improved elapsed time display in UI Hook to show minutes and seconds in mm:ss format. (#36368)

BUG FIXES:

  • Refreshed state was not used in the plan for orphaned resource instances (#36394)

  • Fixes malformed Terraform version error when the remote backend reads a remote workspace that specifies a Terraform version constraint. (#36356)

  • Changes to the order of sensitive attributes in the state format would erroneously indicate a plan contained changes when there were none. (#36465)

  • Avoid reporting duplicate attribute-associated diagnostics, such as "Available Write-only Attribute Alternative" (#36579)

  • Fixes unintended exit of CLI when using the remote backend and applying with post-plan tasks configured in HCP Terraform (#36655)

UPGRADE NOTES:

  • On Linux, Terraform now requires Linux kernel version 3.2 or later; support for previous versions has been discontinued. (#36478)

EXPERIMENTS:

Experiments are only enabled in alpha releases of Terraform CLI. The following features are not yet available in stable releases.

  • The new command terraform rpcapi exposes some Terraform Core functionality through an RPC interface compatible with go-plugin. The exact RPC API exposed here is currently subject to change at any time, because it's here primarily as a vehicle to support the Terraform Stacks private preview and so will be broken if necessary to respond to feedback from private preview participants, or possibly for other reasons. Do not use this mechanism yet outside of Terraform Stacks private preview.
  • The experimental "deferred actions" feature, enabled by passing the -allow-deferral option to terraform plan, permits count and for_each arguments in module, resource, and data blocks to have unknown values and allows providers to react more flexibly to unknown values. This experiment is under active development, and so it's not yet useful to participate in this experiment

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.11.2

12 Mar 13:16
42a3b0c
Compare
Choose a tag to compare

1.11.2 (March 12, 2025)

ENHANCEMENTS:

  • Azure Backend supports ADO Pipelines OIDC token refresh by using the oidc_request_url, oidc_request_token and (the new) ado_pipeline_service_connection_id. (#36458)

BUG FIXES:

  • Return error when the templatestring function contains only a single interpolation that evaluates to a null value (#36652)

  • Backend/azure: subscription_id be optional & skip unnecessary management plane API call in some setup (#36595)

NOTES:

  • Updated dependency github.com/hashicorp/aws-sdk-go-base/v2 to v2.0.0-beta.62 to support newly added AWS regions (#36625)

v1.11.1

05 Mar 13:03
4920d02
Compare
Choose a tag to compare

1.11.1 (March 5, 2025)

BUG FIXES:

  • Temporarily revert updated Windows symlink handling until we can account for known existing configurations using non-symlink junctions. (#36575)

  • terraform test: Fix crash when a run block attempts to cleanup after a non-applyable plan. (#36582)

  • Updated dependency golang.org/x/oauth2 from v0.23.0 => v0.27.0 to integrate latest changes (fix for CVE-2025-22868) (#36584)

  • lang/funcs/transpose: Avoid crash due to map with null values (#36611)

  • Combining ephemeral and sensitive marks could fail when serializing planned changes (#36619)

v1.11.0

27 Feb 13:26
4149510
Compare
Choose a tag to compare

1.11.0 (February 27, 2025)

NEW FEATURES:

  • Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemeral values in write-only attributes. (#36031)

  • terraform test: The -junit-xml option for the terraform test command is now generally available. This option allows the command to create a test report in JUnit XML format. Feedback during the experimental phase helped map terraform test concepts to the JUnit XML format, and new additons may happen in future releases. (#36324)

  • S3 native state locking is now generally available. The use_lockfile argument enables users to adopt the S3-native mechanism for state locking. As part of this change, we've deprecated the DynamoDB-related arguments in favor of this new locking mechanism. While you can still use DynamoDB alongside S3-native state locking for migration purposes, we encourage migrating to the new state locking mechanism. (#36338)

ENHANCEMENTS:

  • init: Provider installation will utilise credentials configured in a .netrc file for the download and shasum URLs returned by provider registries. (#35843)

  • terraform test: Test runs now support using mocked or overridden values during unit test runs (e.g., with command = "plan"). Set override_during = plan in the test configuration to use the overridden values during the plan phase. The default value is override_during = apply. (#36227)

  • terraform test: Add new state_key attribute for run blocks, allowing test authors control over which internal state file should be used for the current test run. (#36185)

  • Updates the azure backend authentication to match the terraform-provider-azurermprovider authentication, in several ways:

    • github.com/hashicorp/go-azure-helpers: v0.43.0 -> v0.71.0
    • github.com/hashicorp/go-azure-sdk/[resource-manager/sdk]: v0.20241212.1154051. This replaces the deprecated Azure SDK used before
    • github.com/jackofallops/giovanni: v0.15.1 -> v0.27.0. Meanwhile, updating the azure storage API version from 2018-11-09 to 2023-11-03
    • Following new properties are added for the azure backend configuration:
      • use_cli
      • use_aks_workload_identity
      • client_id_file_path
      • client_certificate
      • client_id_file_path
      • client_secret_file_path
        (#36258)
  • Include ca-certificates package in our official Docker image to help with certificate handling by downstream (#36486)

BUG FIXES:

  • ephemeral values: correct error message when ephemeral values are included in provisioner output (#36427)

  • Attempting to override a variable during apply via TF_VAR_ environment variable will now yield warning instead of misleading error. (#36435)

  • backends: Fix crash when interrupting during interactive prompt for values (#36448)

  • Fixes hanging behavior seen when applying a saved plan with -auto-approve using the cloud backend (#36453)

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.11.0-rc3

21 Feb 08:48
ea7e250
Compare
Choose a tag to compare
v1.11.0-rc3 Pre-release
Pre-release

1.11.0-rc3 (February 21, 2025)

NEW FEATURES:

  • Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemeral values in write-only attributes. (#36031)

  • terraform test: The -junit-xml option for the terraform test command is now generally available. This option allows the command to create a test report in JUnit XML format. Feedback during the experimental phase helped map terraform test concepts to the JUnit XML format, and new additons may happen in future releases. (#36324)

  • S3 native state locking is now generally available. The use_lockfile argument enables users to adopt the S3-native mechanism for state locking. As part of this change, we've deprecated the DynamoDB-related arguments in favor of this new locking mechanism. While you can still use DynamoDB alongside S3-native state locking for migration purposes, we encourage migrating to the new state locking mechanism. (#36338)

ENHANCEMENTS:

  • init: Provider installation will utilise credentials configured in a .netrc file for the download and shasum URLs returned by provider registries. (#35843)

  • terraform test: Test runs now support using mocked or overridden values during unit test runs (e.g., with command = "plan"). Set override_during = plan in the test configuration to use the overridden values during the plan phase. The default value is override_during = apply. (#36227)

  • terraform test: Add new state_key attribute for run blocks, allowing test authors control over which internal state file should be used for the current test run. (#36185)

  • Updates the azure backend authentication to match the terraform-provider-azurermprovider authentication, in several ways:

    • github.com/hashicorp/go-azure-helpers: v0.43.0 -> v0.71.0
    • github.com/hashicorp/go-azure-sdk/[resource-manager/sdk]: v0.20241212.1154051. This replaces the deprecated Azure SDK used before
    • github.com/jackofallops/giovanni: v0.15.1 -> v0.27.0. Meanwhile, updating the azure storage API version from 2018-11-09 to 2023-11-03
    • Following new properties are added for the azure backend configuration:
      • use_cli
      • use_aks_workload_identity
      • client_id_file_path
      • client_certificate
      • client_id_file_path
      • client_secret_file_path
        (#36258)
  • Include ca-certificates package in our official Docker image to help with certificate handling by downstream (#36486)

BUG FIXES:

  • ephemeral values: correct error message when ephemeral values are included in provisioner output (#36427)

  • Attempting to override a variable during apply via TF_VAR_ environment variable will now yield warning instead of misleading error. (#36435)

  • backends: Fix crash when interrupting during interactive prompt for values (#36448)

  • Fixes hanging behavior seen when applying a saved plan with -auto-approve using the cloud backend (#36453)

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.11.0-rc2

19 Feb 13:26
79c0b66
Compare
Choose a tag to compare
v1.11.0-rc2 Pre-release
Pre-release

1.11.0-rc2 (February 19, 2025)

NEW FEATURES:

  • Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemeral values in write-only attributes. (#36031)

  • terraform test: The -junit-xml option for the terraform test command is now generally available. This option allows the command to create a test report in JUnit XML format. Feedback during the experimental phase helped map terraform test concepts to the JUnit XML format, and new additons may happen in future releases. (#36324)

  • S3 native state locking is now generally available. The use_lockfile argument enables users to adopt the S3-native mechanism for state locking. As part of this change, we've deprecated the DynamoDB-related arguments in favor of this new locking mechanism. While you can still use DynamoDB alongside S3-native state locking for migration purposes, we encourage migrating to the new state locking mechanism. (#36338)

ENHANCEMENTS:

  • init: Provider installation will utilise credentials configured in a .netrc file for the download and shasum URLs returned by provider registries. (#35843)

  • terraform test: Test runs now support using mocked or overridden values during unit test runs (e.g., with command = "plan"). Set override_during = plan in the test configuration to use the overridden values during the plan phase. The default value is override_during = apply. (#36227)

  • terraform test: Add new state_key attribute for run blocks, allowing test authors control over which internal state file should be used for the current test run. (#36185)

  • Updates the azure backend authentication to match the terraform-provider-azurermprovider authentication, in several ways:

    • github.com/hashicorp/go-azure-helpers: v0.43.0 -> v0.71.0
    • github.com/hashicorp/go-azure-sdk/[resource-manager/sdk]: v0.20241212.1154051. This replaces the deprecated Azure SDK used before
    • github.com/jackofallops/giovanni: v0.15.1 -> v0.27.0. Meanwhile, updating the azure storage API version from 2018-11-09 to 2023-11-03
    • Following new properties are added for the azure backend configuration:
      • use_cli
      • use_aks_workload_identity
      • client_id_file_path
      • client_certificate
      • client_id_file_path
      • client_secret_file_path
        (#36258)
  • Include ca-certificates package in our official Docker image to help with certificate handling by downstream (#36486)

BUG FIXES:

  • ephemeral values: correct error message when ephemeral values are included in provisioner output (#36427)

  • Attempting to override a variable during apply via TF_VAR_ environment variable will now yield warning instead of misleading error. (#36435)

  • backends: Fix crash when interrupting during interactive prompt for values (#36448)

  • Fixes hanging behavior seen when applying a saved plan with -auto-approve using the cloud backend (#36453)

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.12.0-alpha20250213

13 Feb 12:27
f868f0d
Compare
Choose a tag to compare
v1.12.0-alpha20250213 Pre-release
Pre-release

1.12.0-alpha20250213 (February 13, 2025)

EXPERIMENTS:

Experiments are only enabled in alpha releases of Terraform CLI. The following features are not yet available in stable releases.

  • The new command terraform rpcapi exposes some Terraform Core functionality through an RPC interface compatible with go-plugin. The exact RPC API exposed here is currently subject to change at any time, because it's here primarily as a vehicle to support the Terraform Stacks private preview and so will be broken if necessary to respond to feedback from private preview participants, or possibly for other reasons. Do not use this mechanism yet outside of Terraform Stacks private preview.
  • The experimental "deferred actions" feature, enabled by passing the -allow-deferral option to terraform plan, permits count and for_each arguments in module, resource, and data blocks to have unknown values and allows providers to react more flexibly to unknown values. This experiment is under active development, and so it's not yet useful to participate in this experiment

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.11.0-rc1

12 Feb 13:15
4c33a0b
Compare
Choose a tag to compare
v1.11.0-rc1 Pre-release
Pre-release

1.11.0-rc1 (February 12, 2025)

NEW FEATURES:

  • Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemeral values in write-only attributes. (#36031)

  • terraform test: The -junit-xml option for the terraform test command is now generally available. This option allows the command to create a test report in JUnit XML format. Feedback during the experimental phase helped map terraform test concepts to the JUnit XML format, and new additons may happen in future releases. (#36324)

  • S3 native state locking is now generally available. The use_lockfile argument enables users to adopt the S3-native mechanism for state locking. As part of this change, we've deprecated the DynamoDB-related arguments in favor of this new locking mechanism. While you can still use DynamoDB alongside S3-native state locking for migration purposes, we encourage migrating to the new state locking mechanism. (#36338)

ENHANCEMENTS:

  • init: Provider installation will utilise credentials configured in a .netrc file for the download and shasum URLs returned by provider registries. (#35843)

  • New command modules -json: Displays a full list of all installed modules in a working directory, including whether each module is currently referenced by the working directory's configuration. (#35884)

  • terraform test: Test runs now support using mocked or overridden values during unit test runs (e.g., with command = "plan"). Set override_during = plan in the test configuration to use the overridden values during the plan phase. The default value is override_during = apply. (#36227)

  • terraform test: Add new state_key attribute for run blocks, allowing test authors control over which internal state file should be used for the current test run. (#36185)

  • Include ca-certificates package in our official Docker image to help with certificate handling by downstream (#36471)

BUG FIXES:

  • ephemeral values: correct error message when ephemeral values are included in provisioner output (#36427)

  • Attempting to override a variable during apply via TF_VAR_ environment variable will now yield warning instead of misleading error. (#36435)

  • backends: Fix crash when interrupting during interactive prompt for values (#36448)

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.11.0-beta2

05 Feb 11:07
f16cc9f
Compare
Choose a tag to compare
v1.11.0-beta2 Pre-release
Pre-release

1.11.0-beta2 (February 05, 2025)

NEW FEATURES:

  • Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemeral values in write-only attributes. (#36031)

  • terraform test: The -junit-xml option for the terraform test command is now generally available. This option allows the command to create a test report in JUnit XML format. Feedback during the experimental phase helped map terraform test concepts to the JUnit XML format, and new additons may happen in future releases. (#36324)

  • S3 native state locking is now generally available. The use_lockfile argument enables users to adopt the S3-native mechanism for state locking. As part of this change, we've deprecated the DynamoDB-related arguments in favor of this new locking mechanism. While you can still use DynamoDB alongside S3-native state locking for migration purposes, we encourage migrating to the new state locking mechanism. (#36338)

ENHANCEMENTS:

  • init: Provider installation will utilise credentials configured in a .netrc file for the download and shasum URLs returned by provider registries. (#35843)

  • New command modules -json: Displays a full list of all installed modules in a working directory, including whether each module is currently referenced by the working directory's configuration. (#35884)

  • terraform test: Test runs now support using mocked or overridden values during unit test runs (e.g., with command = "plan"). Set override_during = plan in the test configuration to use the overridden values during the plan phase. The default value is override_during = apply. (#36227)

  • terraform test: Add new state_key attribute for run blocks, allowing test authors control over which internal state file should be used for the current test run. (#36185)

BUG FIXES:

  • ephemeral values: correct error message when ephemeral values are included in provisioner output (#36427)

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.10.5

22 Jan 18:40
898e397
Compare
Choose a tag to compare

1.10.5 (January 22, 2025)

BUG FIXES:

  • element(...): no longer crashes when asked for a negative index into a tuple. (#36376)

  • Updated dependency github.com/hashicorp/go-slug v0.16.0 => v0.16.3 to integrate latest changes (fix for CVE-2025-0377) (#36273)

  • jsondecode(...): improved error message when objects contain duplicate keys (#36376)