databricks-cli/bundle
shreyas-goenka 1d9bf4b2c4
Add legacy option for `run_as` (#1384)
## Changes
This PR partially reverts the changes in
https://github.com/databricks/cli/pull/1233 and puts the old code under
an "experimental.use_legacy_run_as" configuration. This gives customers
who ran into the breaking change made in the PR a way out.


## Tests
Both manually and via unit tests.

Manually verified that run_as works for pipelines now. And if a user
wants to use the feature they need to be both a Metastore and a
workspace admin.

---------

Error when the deploying user is a workspace admin but not a metastore
admin:
```
Error: terraform apply: exit status 1

Error: cannot update permissions: User is not a metastore admin for Metastore 'deco-uc-prod-aws-us-east-1'.

  with databricks_permissions.pipeline_foo,
  on bundle.tf.json line 23, in resource.databricks_permissions.pipeline_foo:
  23:       }
```

--------

Output of bundle validate:
```
➜  bundle-playground git:(master) ✗ cli bundle validate
Warning: You are using the legacy mode of run_as. The support for this mode is experimental and might be removed in a future release of the CLI. In order to run the DLT pipelines in your DAB as the run_as user this mode changes the owners of the pipelines to the run_as identity, which requires the user deploying the bundle to be a workspace admin, and also a Metastore admin if the pipeline target is in UC.
  at experimental.use_legacy_run_as
  in databricks.yml:13:22

Name: bundle-playground
Target: default
Workspace:
  Host: https://dbc-a39a1eb1-ef95.cloud.databricks.com
  User: shreyas.goenka@databricks.com
  Path: /Users/shreyas.goenka@databricks.com/.bundle/bundle-playground/default

Found 1 warning
```
2024-04-22 11:51:41 +00:00
..
artifacts Added support for job environments (#1379) 2024-04-22 11:44:34 +00:00
config Add legacy option for `run_as` (#1384) 2024-04-22 11:51:41 +00:00
deploy Added support for job environments (#1379) 2024-04-22 11:44:34 +00:00
deployer Fix locker unlock for destroy (#492) 2023-06-19 15:57:25 +02:00
env Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
internal Upgrade terraform-provider-databricks to 1.40.0 (#1376) 2024-04-18 20:20:01 +00:00
libraries Added support for job environments (#1379) 2024-04-22 11:44:34 +00:00
metadata Make `file_path` and `artifact_path` fields consistent with json tag (#987) 2023-11-15 13:37:26 +00:00
permissions Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
phases Added support for job environments (#1379) 2024-04-22 11:44:34 +00:00
python Added support for job environments (#1379) 2024-04-22 11:44:34 +00:00
run Processing and completion of positional args to bundle run (#1120) 2024-04-22 11:50:13 +00:00
schema Bump github.com/databricks/databricks-sdk-go from 0.37.0 to 0.38.0 (#1361) 2024-04-16 12:03:21 +00:00
scripts Move path field to bundle type (#1316) 2024-03-27 09:03:24 +00:00
tests Add legacy option for `run_as` (#1384) 2024-04-22 11:51:41 +00:00
bundle.go Load bundle configuration from mutator (#1318) 2024-03-27 10:49:05 +00:00
bundle_read_only.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
bundle_test.go Load bundle configuration from mutator (#1318) 2024-03-27 10:49:05 +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 Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
deferred_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
log_string.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator_read_only.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
mutator_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
parallel.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
parallel_test.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
root.go Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
root_test.go Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
seq.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
seq_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00