databricks-cli/bundle
Gleb Kanterov 3d9decdda9
Add JobTaskClusterSpec validate mutator (#1784)
## Changes
Add JobTaskClusterSpec validate mutator. It catches the case when tasks
don't which cluster to use.

For example, we can get this error with minor modifications to
`default-python` template:

```yaml
      tasks:
        - task_key: python_file_task
          spark_python_task:
            python_file: ../src/my_project_10/main.py
```

```
 % databricks bundle validate
Error: Missing required cluster or environment settings
  at resources.jobs.my_project_10_job.tasks[0]
  in resources/my_project_10_job.yml:17:11

Task "print_github_stars" requires a cluster or an environment to run.
Specify one of the following fields: job_cluster_key, environment_key, existing_cluster_id, new_cluster.
```

We implicitly rely on "one of" validation, which does not exist. Many
bundle fields can't co-exist, for instance, specifying:
`JobTask.{existing_cluster_id,job_cluster_key}`, `Library.{whl,pypi}`,
`JobTask.{notebook_task,python_wheel_task}`, etc.

## Tests
Unit tests

---------

Co-authored-by: Pieter Noordhuis <pcnoordhuis@gmail.com>
2024-09-25 11:30:14 +00:00
..
artifacts Pass copy of `dyn.Path` to callback function (#1747) 2024-09-05 11:05:16 +00:00
config Add JobTaskClusterSpec validate mutator (#1784) 2024-09-25 11:30:14 +00:00
deploy Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
env Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
internal Upgrade to TF provider 1.52 (#1781) 2024-09-19 11:21:32 +00:00
libraries Expand library globs relative to the sync root (#1756) 2024-09-09 09:56:16 +00:00
metadata Make `file_path` and `artifact_path` fields consistent with json tag (#987) 2023-11-15 13:37:26 +00:00
permissions Properly deal with nil values in `convert.FromTyped` (#1511) 2024-06-21 13:43:21 +00:00
phases Add verbose flag to the "bundle deploy" command (#1774) 2024-09-23 10:09:11 +00:00
python Consider serverless clusters as compatible for Python wheel tasks (#1733) 2024-08-29 12:47:44 +00:00
render Support multiple paths for diagnostics (#1616) 2024-07-25 15:16:27 +00:00
run Upgrade Go SDK to 0.44.0 (#1679) 2024-08-15 13:23:07 +00:00
schema Alias variables block in the `Target` struct (#1748) 2024-09-10 14:49:34 +00:00
scripts Print diagnostics in 'bundle deploy' (#1579) 2024-07-10 11:14:57 +00:00
tests Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
bundle.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
bundle_read_only.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
bundle_test.go Update error checks that use the `os` package to use `errors.Is` (#1461) 2024-06-03 12:39:36 +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
if.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
if_test.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +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 Fix flaky tests for the parallel mutator (#1426) 2024-05-13 12:16:43 +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