Terraform 1.16.0 Ships In-Module Imports, Planned Provider State, and Store Blocks
HashiCorp has officially released Terraform 1.16.0, introducing a series of notable structural enhancements to the core engine and module ecosystem. Key updates include first-class support for import blocks inside child modules, planned private data persistence for providers between plan and apply phases, and the introduction of a new store block inside the terraform_data resource designed to safely handle ephemeral and sensitive values across execution stages. Additionally, the release introduces configurable failure modes for resource action triggers (allowing halt, taint, or continue policies), permits providers to define nested blocks as computed values, and supplies official pre-built binaries for Linux s390x (zLinux) architectures.
For infrastructure architects and platform engineers, these capabilities resolve several persistent operational bottlenecks. Historically, declarative resource imports were confined strictly to root modules, forcing teams to write awkward migration scaffolding or manage resource adoption outside reusable module abstractions. Supporting in-module imports empowers platform teams to package and distribute standardized adoption workflows directly within shared module repositories. Simultaneously, storing planned private provider data and introducing the store block in terraform_data resolves long-standing state-passing friction, allowing sensitive or short-lived operational credentials to traverse plan and apply cycles without being inadvertently exposed in unencrypted outputs or triggering artificial plan drift.
This release aligns with the broader maturation of the Infrastructure as Code (IaC) landscape, where enterprise requirements have shifted from raw provisioning toward complex Day-2 lifecycle maintenance, enterprise platform governance, and strict compliance boundaries. Following HashiCorp's integration under IBM, Terraform's roadmap has increasingly prioritized engine reliability, enterprise platform support (such as native zLinux compatibility), and tighter state lifecycle control. By refining how complex provider states and failure modes are handled during execution, the platform provides operators with much finer control over non-atomic deployments across hybrid and multi-cloud footprints.
Practitioners should approach adoption with a clear evaluation plan. While the 1.16.0 release maintains core backward compatibility, teams should audit their CI/CD automation and downstream parsing tools: maintainers relying on terraform-json and terraform-exec should upgrade to the latest versions to handle updated schema metadata. Platform engineering teams maintaining shared internal modules should begin replacing custom shell import scripts with declarative child-module import blocks to streamline the onboarding of legacy cloud assets. Finally, security leads should review existing modules that handle ephemeral tokens to leverage terraform_data store blocks for tighter boundary protection.
Read original source