HashiConf Digital June 2020: Terraform News in Review

HashiConf is our annual gathering of practitioners, ranging from open-source users to enterprise customers and partners. In a typical year, we would bring together hundreds of practitioners in Amsterdam (NL) to enjoy the European edition of HashiConf.

Acknowledging the situation at hand, our experiential team transformed HashiConf to HashiConf Digital. In removing the need to travel to a physical location, HashiConf became more accessible. We welcomed more than 6500 attendees over three days, with sold-out workshops across the board and lots of great conversations as part of the panels, sessions, and side-events.

As a Developer Advocate for and active user of the HashiCorp Terraform line of products, this edition of HashiConf was my favorite one, so I'd like to take you on a brief tour of all that is new and noteworthy with Terraform.

»Building on Terraform 0.12’s Foundation

A bit more than a year ago, Terraform 0.12 introduced a new iteration of HCL and brought many significant changes to how we use Terraform. From deeper integration of expressions to an improved type system and contextually useful error messages, the Terraform team had a solid base to build more features for a better developer experience.

During HashiConf Digital, we announced the availability of the first beta of Terraform 0.13, and with it came the second part of a story we began to tell with the release of Terraform 0.12.

»Terraform 0.13: A Better Developer Experience Right Now

Terraform modules allow you to create reusable building blocks of infrastructure components. From Terraform 0.13 onwards, modules now can use count, depends_on, and for_each structures to create more flexible and less repetitive code. As an active Terraform module builder, I have been looking forward to these changes!

On a higher level, Terraform 0.13 also sees the graduation of the validation syntax for variables. First introduced in Terraform 0.12.20, behind a feature-flag, the option to specify custom validation rules for variables is now generally available. It is also HashiCorp product management director Robbie Th'ng’s favorite feature

This seemingly small feature supplies operators with the tools to write more robust Terraform code — consisting of an expression that specifies how a variable should look and an error message (hopefully!) with helpful context as to what a variable should contain.

In addition to all of these changes to Terraform, we saw a few updates around the Terraform ecosystem. Announced just before HashiConf Digital, the release of version 2.0.0 of the Terraform Extension for Visual Studio Code included support of Terraform 0.12 (and, of course, Terraform 0.13) syntax and uses the Terraform Language Server. The new extension also offers improved autocompletion for the AWS, Azure, and Google Cloud Platform providers.

»Terraform 1.0: The Journey Ahead

Terraform has been in the 0.x version range for a long time. A large contributing factor to this is that we have a unique definition of what "1.0" means to us, including our thoughts on backward compatibility and overall product stability.

In her session The Path to Terraform 1.0, HashiCorp senior Terraform engineer Kristin Laemmert dives into the reasoning of why we are not yet at "one point zero" and shares her insights into what we need before Terraform will, indeed, be crowned 1.0.

Whether you have been waiting for Terraform 1.0 or have many plan and apply cycles in your shell history or continuous integration pipelines, the video is worth watching to get a better understanding of why the future of Terraform is a bright one:

»More Cloud, More Services

The Terraform Registry hosts more than 200 providers (and several thousand modules!). Ranging from HashiCorp-maintained providers to community-supported ones, Terraform has seen rapid adoption and expansion in supported services.

With Terraform 0.13, you no longer need custom configuration files such as a per-user .terraformrc file to handle third-party providers. First and third-party providers are now automatically installed through terraform init, which will fetch provider information and system-aware binaries to set up your local Terraform environment.


As we gear up for HashiConf Digital US, running from October 12 through October 15, I invite you to (re-)experience the sessions from June.

Sign up for the latest HashiCorp news