databricks-cli/bundle
Andrew Nester 5fb40f9d07
Allow referencing bundle resources by name (#872)
## Changes
Now we can define variables with values which reference different
Databricks resources by name.
When references like this, DABs automatically looks up the resource by
this name and replaces the reference with ID of the resource referenced.
Thus when the variable is used in the configuration it will contain the
correct resolved ID of resource.

The resolvers are code generated and thus DABs support referencing all
resources which has `GetByName`-like methods in Go SDK.

### Example

```
variables:
  my_cluster_id:
    description: An existing cluster.
    lookup: 
      cluster: "12.2 shared"

resources:
  jobs:
    my_job:
      name: "My Job"
      tasks:
        - task_key: TestTask
          existing_cluster_id: ${var.my_cluster_id}

targets:
  dev:
    variables:
      my_cluster_id:
        lookup: 
           cluster: "dev-cluster"
```

## Tests
Added unit test + manual testing

---------

Co-authored-by: shreyas-goenka <88374338+shreyas-goenka@users.noreply.github.com>
2024-01-04 21:04:42 +00:00
..
artifacts Added exec.NewCommandExecutor to execute commands with correct interpreter (#1075) 2023-12-21 15:45:23 +00:00
config Allow referencing bundle resources by name (#872) 2024-01-04 21:04:42 +00:00
deploy Improve error when bundle root is not writable (#1093) 2023-12-28 13:15:21 +00:00
deployer Fix locker unlock for destroy (#492) 2023-06-19 15:57:25 +02:00
env Consolidate environment variable interaction (#747) 2023-09-11 08:18:43 +00:00
internal Upgrade Terraform schema version to v1.31.1 (#1055) 2023-12-11 21:53:21 +00:00
libraries Fixed using repo files as pipeline libraries (#847) 2023-10-09 10:10:28 +00:00
metadata Make `file_path` and `artifact_path` fields consistent with json tag (#987) 2023-11-15 13:37:26 +00:00
permissions Use resource key as name in permissions code (#1087) 2023-12-22 14:45:53 +00:00
phases Allow referencing bundle resources by name (#872) 2024-01-04 21:04:42 +00:00
python Pass parameters to task when run with `--python-params` and `python_wheel_wrapper` is true (#1037) 2023-12-01 10:35:20 +00:00
run Pass parameters to task when run with `--python-params` and `python_wheel_wrapper` is true (#1037) 2023-12-01 10:35:20 +00:00
schema Upgrade Go SDK to 0.27.0 (#1064) 2023-12-14 08:15:00 +00:00
scripts Added exec.NewCommandExecutor to execute commands with correct interpreter (#1075) 2023-12-21 15:45:23 +00:00
tests Allow referencing bundle resources by name (#872) 2024-01-04 21:04:42 +00:00
bundle.go Fix panic when bundle auth resolution fails (#1002) 2023-11-30 14:28:01 +00:00
bundle_test.go Consolidate environment variable interaction (#747) 2023-09-11 08:18:43 +00:00
context.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00
context_test.go Add command that writes the materialized bundle configuration to stdout (#95) 2022-11-21 15:39:53 +01:00
deferred.go Added support for bundle.Seq, simplified Mutator.Apply interface (#403) 2023-05-24 14:45:19 +02:00
deferred_test.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00
log_string.go Tune output of bundle deploy command (#1047) 2023-12-21 08:00:37 +00:00
mutator.go Added support for bundle.Seq, simplified Mutator.Apply interface (#403) 2023-05-24 14:45:19 +02:00
mutator_test.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00
root.go Consolidate environment variable interaction (#747) 2023-09-11 08:18:43 +00:00
root_test.go Consolidate environment variable interaction (#747) 2023-09-11 08:18:43 +00:00
seq.go Added support for bundle.Seq, simplified Mutator.Apply interface (#403) 2023-05-24 14:45:19 +02:00
seq_test.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00