hashicorp / nomad

Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.
https://www.nomadproject.io/
Other
14.78k stars 1.94k forks source link

Intent to Deprecate HCLv1 #20195

Closed schmichael closed 6 days ago

schmichael commented 5 months ago

Nomad adopted HCLv2 for Jobspecs in 2020. HCLv2 is not strictly backward compatible with HCLv1, so we have maintained the HCLv1 jobspec parser behind the nomad job run -hcl1 ... flag, the job parse HCLv1 field, and the jobspec Go package.

Deprecation Plan

The time has come to deprecate HCLv1.

TODO

Resources

42wim commented 1 month ago

Hi, I'm wondering if there will be a solution for the heredoc issue before hcl1 gets removed ?

tgross commented 1 month ago

Yeah we'll certainly need to do that.

tgross commented 1 week ago

Wanted to follow up on this after my investigations in https://github.com/hashicorp/nomad/issues/9838. There's no way for us to do this without direct support in HCL. Adding support for this was previously rejected by the core HCL maintainer team, but even if we got past that (probably possible) it's a lot of work at the very "bottom" of the HCL stack, and we don't have the resources to do this work currently. Given that there's a workaround for this already (either manually escaping in the template.data or using template.source), we're not going to block HCL1 removal for heredoc support.