Terraform's HCL lacks quite many programming features like iterators, true variables, advanced string manipulation, functions etc.
This Ruby tool provides an easy-to-use DSL to define Terraform compatible .json files which can then be used with Terraform side-by-side with HCL files.