0.15.0 (Unreleased)
UPGRADE NOTES:
- config: The
list
andmap
functions, both of which were deprecated since Terraform v0.12, are now removed. You can replace uses of these functions withtolist([...])
andtomap({...})
respectively. (#26818) - cli: Interrupting execution will now cause terraform to exit with a non-0 status. (#26738)
- backend/atlas: the
atlas
backend, which was deprecated since v0.12, has been removed. (#26651) - backend/gcs: The
path
config argument, which was deprecated since v0.11, has been removed. Use theprefix
argument instead. (#26841)
ENHANCEMENTS:
- config: Terraform will now emit a warning if you declare a
backend
block in a non-root module. Terraform has always ignored such declarations, but previously did so silently. This is a warning rather than an error only because it is sometimes convenient to temporarily use a root module as if it were a child module in order to test or debug its behavior separately from its main backend. (#26954) - cli: Improved support for Windows console UI on Windows 10, including bold colors and underline for HCL diagnostics. (#26588)
- cli: The family of error messages with the summary "Invalid for_each argument" will now include some additional context about which external values contributed to the result. (#26747)
- cli: Typing an invalid top-level command, like
terraform destory
instead ofdestroy
, will now print out a specific error message about the command being invalid, rather than just printing out the usual help directory. (#26967) - cli: Plugin crashes will now be reported with more detail, pointing out the plugin name and the method call along with the stack trace (#26694)
- provisioner/remote-exec: Can now run in a mode that expects the remote system to be running Windows and excuting commands using the Windows command interpreter, rather than a Unix-style shell. Specify the
target_platform
as"windows"
in theconnection
block. (#26865)
BUG FIXES:
- cli: Exit with an error if unable to gather input from the UI. For example, this may happen when running in a non-interactive environment but without
-input=false
. Previously Terraform would interpret these errors as empty strings, which could be confusing. (#26509) - cli: TF_LOG levels other than
trace
will now work correctly (#26632) - cli: Core and Provider logs can now be enabled separately for debugging, using
TF_LOG_CORE
andTF_LOG_PROVIDER
(#26685) - command/console: expressions using
path
(path.root
,path.module
) now return the same result as they would in a configuration (#27263) - command/state list: fix bug where nested modules' resources were missing from
state list
output (#27268) - core: validate will now ignore providers without configuration (#24896)