All posts by Martin Atkins
Terraform 0.14 Introduces a Dependency Lock File for Providers
Terraform 0.14 Introduces a Dependency Lock File for Providers

New dependency lock files in Terraform 0.14 help duplicate previous runs so they use exactly the same provider versions.

HashiCorp Terraform 0.12 Preview: Reliable JSON Syntax
HashiCorp Terraform 0.12 Preview: Reliable JSON Syntax

As part of the lead up to the release of Terraform 0.12, we are publishing a series of feature preview blog posts. The post this week is on bringing a clear 1:1 mapping between JSON and HCL. Terraform has accepted JSON as configuration in addition to HCL since version 0.1. However, the implementation of this prior to version 0.12 had many shortcomings. The HCL improvements in Terraform 0.12 include a clear 1:1 mapping between HCL and JSON, including much clearer error messages and support for comments! These improvements make it easy to work with Terraform using HCL, JSON, or both.

HashiCorp Terraform 0.12 Preview: Template Syntax
HashiCorp Terraform 0.12 Preview: Template Syntax

As part of the lead up to the release of Terraform 0.12, we are publishing a series of feature preview blog posts. The post this week is on the addition of the template syntax. Terraform has always supported basic string interpolation using the ${...} syntax. Terraform 0.12 extends this syntax to support loops and conditionals that work directly within any value in a Terraform configuration.

HashiCorp Terraform 0.12 Preview: Rich Value Types
HashiCorp Terraform 0.12 Preview: Rich Value Types

As part of the lead up to the release of Terraform 0.12, we are publishing a series of feature preview blog posts. The post this week is on the addition of rich value types in variables and outputs. Terraform variables and outputs today support basic primitives and simple lists and maps. Lists and maps in particular have surprising limitations that lead to unintuitive and frustrating errors. Terraform 0.12 allows the use of arbitrarily complex values for both input variables and outputs, and the types of these values can be exactly specified.

HashiCorp Terraform 0.12 Preview: Conditional Operator Improvements and Conditionally Omitted Arguments
HashiCorp Terraform 0.12 Preview: Conditional Operator Improvements and Conditionally Omitted Arguments

As part of the lead up to the release of Terraform 0.12, we are publishing a series of feature preview blog posts. The post this week is on the improvements to conditional operators and introducing conditionally omitted arguments. Terraform has supported basic conditionals for two years, but conditionals have had major known limitations. In Terraform 0.12, these limitations have been lifted and conditionals work as expected in all cases. Terraform 0.12 also introduces the null value for conditionally omitting a value.

HashiCorp Terraform 0.12 Preview: Generalized Splat Operator
HashiCorp Terraform 0.12 Preview: Generalized Splat Operator

As part of the lead up to the release of Terraform 0.12, we are publishing a series of feature preview blog posts. The post this week is on the new generalized splat operator. Terraform has always supported a special syntax to obtain a list of attribute values from a set of resources created using the count argument, known as a "splat expression." In Terraform 0.12, we've generalized this to work with any list values and call it the "splat operator."