Terraform 1.15 Lands With Dynamic Module Sources and More

HashiCorp has shipped Terraform 1.15, and the release brings several practical upgrades for infrastructure teams. Chief among them is support for Terraform 1.15 dynamic module sources, a long-requested capability that changes how practitioners work with module dependencies.
Previously, module source paths had to be static. Now, teams can use variables directly within module sources and version references. To make this work, Terraform 1.15 introduces a new const attribute for variables. Setting const = true signals that a variable is safe to evaluate during terraform init. Note that const cannot be combined with the sensitive or ephemeral attributes, they are mutually exclusive.
This change is especially useful for teams managing complex, multi-environment configurations. Rather than duplicating module blocks, practitioners can pass in dynamic paths and keep their code clean.
Alongside Terraform 1.15 dynamic module sources, the release adds a deprecated attribute for both variable and output blocks. Module authors often need to retire old variables or outputs without breaking things immediately. With this feature, Terraform will emit a warning diagnostic when deprecated items are used, during validation, not just at apply time. That gives teams earlier, clearer signals to update their configurations. Deprecated values are also permitted within deprecated outputs, allowing gradual migration paths.
Another addition is the convert function, which enables explicit inline type conversions. Terraform’s type inference handles most cases well, but edge cases, especially around empty containers, conditional expressions, and equality comparisons, have long been a friction point. The convert function resolves this cleanly, letting users define exact types without workarounds.
On the platform side, Terraform now ships native Windows ARM64 binaries. This means the tool runs on devices like the Surface Pro and Windows Dev Kit 2023. It also works on ARM virtual machines running on Mac M1/M2 hardware via Parallels.
The S3 backend gains support for AWS Login authentication, introduced in AWS CLI v2.32.0. Developers can now use AWS Management Console credentials for programmatic access, eliminating the need for long-term access keys.
Further, output blocks now support explicit type constraints, bringing the same validation rigor to outputs that input variables have long had. The Terraform Test framework also gains the ability to use functions inside mock blocks, which makes generating test data like GUIDs and Azure resource IDs far more straightforward.
Finally, the Stacks ecosystem continues to grow. This release adds validation blocks for Stacks variables, including condition and error_message attributes. Module authors can enforce expectations early and avoid errors that would otherwise only surface after a provider operation begins.
Teams can download Terraform 1.15, review the upgrade guide, or work through the Terraform tutorials to get started. The full list of changes is available in the Terraform 1.15 changelog on GitHub.






