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.
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 modules allow you to create reusable building blocks of infrastructure components. From Terraform 0.13 onwards, modules now can use
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 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:
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.
HashiCorp Consul Service (HCS) on Azure can be launched directly from the Azure Portal, but you can also launch HCS using Terraform Cloud.
Use Vault-generated dynamic credentials to provision infrastructure. Learn how to inject secrets into your Terraform configuration using the Vault provider.
New starter modules are available for Nomad, Consul, and Vault in AWS.