Skip to content

Releases: hashicorp/terraform

v1.10.0-alpha20240911

11 Sep 13:16
Compare
Choose a tag to compare
v1.10.0-alpha20240911 Pre-release
Pre-release

1.10.0-alpha20240911 (September 11, 2024)

NEW FEATURES:

  • Ephemeral values: Input variables and outputs can now be defined as ephemeral. Ephemeral values may only be used in certain contexts in Terraform configuration, and are not persisted to the plan or state files.
    • terraform output -json now displays ephemeral outputs. The value of an ephemeral output is always null unless a plan or apply is being run. Note that terraform output (without the -json) flag does not yet display ephemeral outputs.
    • ephemeralasnull function: a function takes a value of any type and returns a similar value of the same type with any ephemeral values replaced with non-ephemeral null values and all non-ephemeral values preserved.

BUG FIXES:

  • The error message for an invalid default value for an input variable now indicates when the problem is with a nested value in a complex data type. (#35465)
  • Sensitive marks could be incorrectly transferred to nested resource values, causing erroneous changes during a plan (#35501)
  • Allow unknown error_message values to pass the core validate step, so variable validation can be completed later during plan
    (#35537)
  • Unencoded slashes within GitHub module source refs were being truncated and incorrectly used as subdirectories in the request path (#35552)

ENHANCEMENTS:

  • The element function now accepts negative indices (#35501)
  • Import block validation has been improved to provide more useful errors and catch more invalid cases during terraform validate (#35543)
  • Performance enhancements for resource evaluation, especially when large numbers of resource instances are involved (#35558)
  • The plan, apply, and refresh commands now produce a deprecated warning when using the -state flag. Instead use the path attribute within the local backend to modify the state file. (#35660)

EXPERIMENTS:

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

  • terraform test accepts a new option -junit-xml=FILENAME. If specified, and if the test configuration is valid enough to begin executing, then Terraform writes a JUnit XML test result report to the given filename, describing similar information as included in the normal test output. (#34291)
  • 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.10.0-alpha20240828

28 Aug 12:53
Compare
Choose a tag to compare
v1.10.0-alpha20240828 Pre-release
Pre-release

1.10.0-alpha20240828 (Aug 28, 2024)

BUG FIXES:

  • The error message for an invalid default value for an input variable now indicates when the problem is with a nested value in a complex data type. (#35465)
  • Sensitive marks could be incorrectly transferred to nested resource values, causing erroneous changes during a plan (#35501)
  • Allow unknown error_message values to pass the core validate step, so variable validation can be completed later during plan
    (#35537)
  • Unencoded slashes within GitHub module source refs were being truncated and incorrectly used as subdirectories in the request path (#35552)

ENHANCEMENTS:

  • The element function now accepts negative indices (#35501)
  • Import block validation has been improved to provide more useful errors and catch more invalid cases during terraform validate (#35543)
  • Performance enhancements for resource evaluation, especially when large numbers of resource instances are involved (#35558)

EXPERIMENTS:

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

  • ephemeral_values: This language experiment introduces a new special kind of value which Terraform allows to change between the plan phase and the apply phase, and between plan/apply rounds. Ephemeral values are never persisted in saved plan files or state snapshots, and so can only be used in parts of the language that don't require values to persist in those artifacts. Ephemeral input values are the main initial example of this concept, allowing the use of input variables to provide dynamic credentials that must change between plan and apply.
  • terraform test accepts a new option -junit-xml=FILENAME. If specified, and if the test configuration is valid enough to begin executing, then Terraform writes a JUnit XML test result report to the given filename, describing similar information as included in the normal test output. (#34291)
  • 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.9.5

20 Aug 18:07
Compare
Choose a tag to compare

1.9.5 (August 20, 2024)

ENHANCEMENTS:

  • cloud: The cloud block can now interact with workspaces that have HCP resource IDs. (#35495)

BUG FIXES:

  • core: removed blocks with provisioners were not executed when the resource was in a nested module. (#35611)

v1.10.0-alpha20240814

14 Aug 11:48
Compare
Choose a tag to compare
v1.10.0-alpha20240814 Pre-release
Pre-release

1.10.0-alpha20240814 (August 14, 2024)

BUG FIXES:

  • The error message for an invalid default value for an input variable now indicates when the problem is with a nested value in a complex data type. (#35465)
  • Sensitive marks could be incorrectly transferred to nested resource values, causing erroneous changes during a plan (#35501)
  • Allow unknown error_message values to pass the core validate step, so variable validation can be completed later during plan
    (#35537)
  • Unencoded slashes within GitHub module source refs were being truncated and incorrectly used as subdirectories in the request path (#35552)

ENHANCEMENTS:

  • The element function now accepts negative indices (#35501)
  • Import block validation has been improved to provide more useful errors and catch more invalid cases during terraform validate (#35543)

EXPERIMENTS:

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

  • ephemeral_values: This language experiment introduces a new special kind of value which Terraform allows to change between the plan phase and the apply phase, and between plan/apply rounds. Ephemeral values are never persisted in saved plan files or state snapshots, and so can only be used in parts of the language that don't require values to persist in those artifacts. Ephemeral input values are the main initial example of this concept, allowing the use of input variables to provide dynamic credentials that must change between plan and apply.
  • terraform test accepts a new option -junit-xml=FILENAME. If specified, and if the test configuration is valid enough to begin executing, then Terraform writes a JUnit XML test result report to the given filename, describing similar information as included in the normal test output. (#34291)
  • 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.10.0-alpha20240807

07 Aug 07:56
a3522cb
Compare
Choose a tag to compare
v1.10.0-alpha20240807 Pre-release
Pre-release

1.10.0-alpha20240807 (August 7, 2024)

BUG FIXES:

  • The error message for an invalid default value for an input variable now indicates when the problem is with a nested value in a complex data type. [GH-35465]
  • Sensitive marks could be incorrectly transferred to nested resource values, causing erroneous changes during a plan [GH-35501]
  • Allow unknown error_message values to pass the core validate step, so variable validation can be completed later during plan
    [GH-35537]

ENHANCEMENTS:

  • The element function now accepts negative indices [GH-35501]

EXPERIMENTS:

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

  • ephemeral_values: This language experiment introduces a new special kind of value which Terraform allows to change between the plan phase and the apply phase, and between plan/apply rounds. Ephemeral values are never persisted in saved plan files or state snapshots, and so can only be used in parts of the language that don't require values to persist in those artifacts. Ephemeral input values are the main initial example of this concept, allowing the use of input variables to provide dynamic credentials that must change between plan and apply.
  • terraform test accepts a new option -junit-xml=FILENAME. If specified, and if the test configuration is valid enough to begin executing, then Terraform writes a JUnit XML test result report to the given filename, describing similar information as included in the normal test output. (#34291)
  • 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.9.4

07 Aug 07:27
938d716
Compare
Choose a tag to compare

1.9.4 (August 7, 2024)

BUG FIXES:

  • core: Unneeded variable validations were being executed during a destroy plan, which could cause plans starting with incomplete state to fail. (#35511)
  • init: Don't crash when discovering invalid syntax in duplicate required_providers blocks. (#35533)

v1.10.0-alpha20240730

30 Jul 14:36
92574a7
Compare
Choose a tag to compare
v1.10.0-alpha20240730 Pre-release
Pre-release

1.10.0-alpha20240730 (July 30, 2024)

BUG FIXES:

  • The error message for an invalid default value for an input variable now indicates when the problem is with a nested value in a complex data type. [GH-35465]
  • Sensitive marks could be incorrectly transferred to nested resource values, causing erroneous changes during a plan [GH-35501]

ENHANCEMENTS:

  • The element function now accepts negative indices [GH-35501]

EXPERIMENTS:

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

  • ephemeral_values: This language experiment introduces a new special kind of value which Terraform allows to change between the plan phase and the apply phase, and between plan/apply rounds. Ephemeral values are never persisted in saved plan files or state snapshots, and so can only be used in parts of the language that don't require values to persist in those artifacts. Ephemeral input values are the main initial example of this concept, allowing the use of input variables to provide dynamic credentials that must change between plan and apply.
  • terraform test accepts a new option -junit-xml=FILENAME. If specified, and if the test configuration is valid enough to begin executing, then Terraform writes a JUnit XML test result report to the given filename, describing similar information as included in the normal test output. (#34291)
  • 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.9.3

24 Jul 19:08
Compare
Choose a tag to compare

1.9.3 (July 24, 2024)

ENHANCEMENTS:

  • Terraform now returns a more specific error message in the awkward situation where an input variable validation rule is known to have failed (condition returned false) but the error message is derived from an unknown value. (#35400)

BUG FIXES:

  • core: Terraform no longer performs an unnecessary refresh when removing an instance targeted by a removed block. (#35458)
  • config generation: Fix validation error when using nested computed or deprecated attributes. (#35484)
  • Updated to newer github.com/hashicorp/go-retryablehttp version, addressing CVE-2024-6104, and bringing in updates for several indirect dependencies. (#35473)
  • Moved to building with Go 1.22.5, which addresses CVE-2024-24791 and several other non-security bugs. (#35494)

v1.10.0-alpha20240717

17 Jul 09:35
Compare
Choose a tag to compare
v1.10.0-alpha20240717 Pre-release
Pre-release

1.10.0-alpha20240717 (July 17, 2024)

EXPERIMENTS:

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

  • ephemeral_values: This language experiment introduces a new special kind of value which Terraform allows to change between the plan phase and the apply phase, and between plan/apply rounds. Ephemeral values are never persisted in saved plan files or state snapshots, and so can only be used in parts of the language that don't require values to persist in those artifacts. Ephemeral input values are the main initial example of this concept, allowing the use of input variables to provide dynamic credentials that must change between plan and apply.
  • terraform test accepts a new option -junit-xml=FILENAME. If specified, and if the test configuration is valid enough to begin executing, then Terraform writes a JUnit XML test result report to the given filename, describing similar information as included in the normal test output. (#34291)
  • 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.9.2

10 Jul 11:18
Compare
Choose a tag to compare

1.9.2 (July 10, 2024)

BUG FIXES:

  • core: Fix panic when self-referencing direct instances from count and for_each meta attributes. (#35432)