mirror of https://github.com/databricks/cli.git
f70ec359dc
## Changes This builds on #1098 and uses the `dyn.Value` representation of the bundle configuration to generate the Terraform JSON definition of resources in the bundle. The existing code (in `BundleToTerraform`) was not great and in an effort to slightly improve this, I added a package `tfdyn` that includes dedicated files for each resource type. Every resource type has its own conversion type that takes the `dyn.Value` of the bundle-side resource and converts it into Terraform resources (e.g. a job and optionally its permissions). Because we now use a `dyn.Value` as input, we can represent and emit zero-values that have so far been omitted. For example, setting `num_workers: 0` in your bundle configuration now propagates all the way to the Terraform JSON definition. ## Tests * Unit tests for every converter. I reused the test inputs from `convert_test.go`. * Equivalence tests in every existing test case checks that the resulting JSON is identical. * I manually compared the TF JSON file generated by the CLI from the main branch and from this PR on all of our bundles and bundle examples (internal and external) and found the output doesn't change (with the exception of the odd zero-value being included by the version in this PR). |
||
---|---|---|
.. | ||
tfdyn | ||
apply.go | ||
convert.go | ||
convert_test.go | ||
destroy.go | ||
dir.go | ||
filer.go | ||
import.go | ||
init.go | ||
init_test.go | ||
interpolate.go | ||
interpolate_test.go | ||
load.go | ||
load_test.go | ||
pkg.go | ||
plan.go | ||
state_pull.go | ||
state_pull_test.go | ||
state_push.go | ||
state_push_test.go | ||
state_test.go | ||
unbind.go | ||
util.go | ||
util_test.go | ||
write.go |