[HPR-838] cmd/hcl2_upgrade: Generate variable block for all referenced user input variables #12136
+95
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently the HCL2 upgrade command generates a valid variable block for all variables within the JSON variables property.
However JSON templates in Packer support variable interpolation for input variables defined within a variable definition file without it being declared within the variables property. When upgrading a JSON template to HCL2 the user variable reference gets converted to var.<var_name>. The upgraded template ultimately fails on validation or build execution with undefined variable errors. In order to improve the user experience when upgrading a JSON template to HCL2 the upgrade command will now create a variable block for all input variables referenced within the build template to ensure all required variables been defined.
Todo
Example Runs
Current HCL2 upgrade command experience
Updated HCL2 upgrade command experience