Change8

v1.16.0-rc2

📦 terraformView on GitHub →
6 features🐛 11 fixes🔧 10 symbols

Summary

This release introduces new features for provider data storage, module import support, and enhanced resource action triggers. It also includes numerous bug fixes and improvements to commands like `state show` and `terraform graph`.

Migration Steps

  1. Review your provisioner configurations to verify the configured `bastion_host_key` is correct before upgrading.

✨ New Features

  • Terraform now stores planned private data for providers, allowing provider-specific state to be preserved across plan and apply.
  • The new `store` block in `terraform_data` can hold ephemeral and sensitive values across plan and apply.
  • Providers can now use nested blocks as computed values.
  • `import` blocks inside modules are now supported.
  • Terraform is now available as a pre-built binary for Linux s390x (zLinux).
  • Resource action triggers can now use `on_failure` modes of `halt`, `taint`, or `continue`.

🐛 Bug Fixes

  • `import` blocks now correctly respect provider local names.
  • `terraform apply` no longer panics when the plan contains a no-op change for a deposed resource that has `lifecycle.precondition` or `lifecycle.postcondition` blocks.
  • Terraform now raises an error if an invalid workspace name becomes selected due to out-of-band changes.
  • Terraform now raises a warning when a file referenced via the `-filter` flag does not exist.
  • Terraform no longer removes locks from the dependency lock file for providers configured as `dev_override`.
  • Terraform now warns when unmanaged providers are in use and may impact provider installation.
  • Actions are now invoked with respect to all resource dependencies.
  • Terraform now returns the correct error when an `import` target exists in state but has no corresponding configuration.
  • The `merge()` function no longer panics when passed `null` objects.
  • Allow underscores in provider source address namespaces, so private registry provider addresses are no longer rejected as invalid.
  • Optional ephemeral values do not have to be set at plan time for tests.

Affected Symbols