At the very least it would be very helpful to be able to use these functions inside terragrunt configurations:
See also - https://www.terraform.io/docs/configuration/interpolation.html
Agreed, but building them one at a time seems like a never-ending battle.
Thought experiment: is there a way to reuse Terraform's interpolation engine to get all of the functions it supports "for free"?
Yes, this should be possible from what I see in their code. Not sure about licensing or copyrights though. Do you have experience with it?
Terraform uses the Mozilla License. AFAIK, that means any changes we make to that source code would have to be open sourced as well. However, we're not making changes to Terraform's code, we're just using it as a library in our code, which should be fine. Moreover, Terragrunt is open source already :)
As of https://github.com/gruntwork-io/terragrunt/releases/tag/v0.19.0, we use the HCL2 parser, which has native support for built-in functions, and even ships with a collection of them. It should be straightforward to add support for all of these now if someone wants to submit a PR.
As of v0.19.4, all Terraform built-in functions are now supported.
Most helpful comment
Terraform uses the Mozilla License. AFAIK, that means any changes we make to that source code would have to be open sourced as well. However, we're not making changes to Terraform's code, we're just using it as a library in our code, which should be fine. Moreover, Terragrunt is open source already :)