apple / pkl

A configuration as code language with rich validation and tooling.
https://pkl-lang.org
Apache License 2.0
9.85k stars 258 forks source link

Feature Request: Add `hcl` format #488

Open garysassano opened 1 month ago

garysassano commented 1 month ago

While Pkl currently supports various formats like json and yaml, direct output in hcl would be a powerful addition for Terraform users.

Although generating HCL through intermediary formats like YAML or JSON is technically possible using HCL's yamldecode and jsondecode functions, it introduces unnecessary complexity. Direct HCL output would significantly streamline the workflow for creating .tfvars files used in Terraform configurations.

This feature would eliminate conversion steps, reduce potential errors, and solidify Pkl's position as a valuable tool within the Terraform ecosystem.

See also #59

holzensp commented 1 week ago

We don't plan to generate higher-level languages from Pkl. You can, of course, define your own renderers (see the TOML and CSV renderers, for example).

The problem is that we can't "inspect" constructs that change under evaluation (for/when/if/etc). We only render static output.

I have used Terraform's tf.json format quite a lot without any problems or notable "added complexity." Using it from HCL might add the extra indirection, but I just do everything in tf.json and forget about HCL altogether.