databricks-cli/bundle/config
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
..
generate Fixed generated YAML missing 'default' for empty values (#1765) 2024-09-11 09:49:58 +00:00
loader Return diagnostics from `config.Load` (#1324) 2024-03-28 10:59:03 +00:00
mutator Refactor jobs path translation (#1782) 2024-09-24 13:51:54 +00:00
resources Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
validate Add JobTaskClusterSpec validate mutator (#1784) 2024-09-25 11:30:14 +00:00
variable Alias variables block in the `Target` struct (#1748) 2024-09-10 14:49:34 +00:00
artifact.go Stop tracking file path locations in bundle resources (#1673) 2024-08-13 12:50:15 +00:00
artifacts_test.go Added exec.NewCommandExecutor to execute commands with correct interpreter (#1075) 2023-12-21 15:45:23 +00:00
bundle.go Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
deployment.go Make lock optional in the JSON schema (#1738) 2024-09-02 08:39:08 +00:00
experimental.go Make `pydabs/venv_path` optional (#1687) 2024-08-20 13:26:57 +00:00
filename.go Move bundle configuration filename code (#917) 2023-10-25 09:54:39 +00:00
filename_test.go Move bundle configuration filename code (#917) 2023-10-25 09:54:39 +00:00
git.go Use dynamic configuration model in bundles (#1098) 2024-02-16 19:41:58 +00:00
lock.go Disable locking for development mode (#1302) 2024-04-18 01:59:39 +00:00
lock_test.go Acquire lock prior to deploy (#270) 2023-03-22 16:37:26 +01:00
presets.go Add configurable presets for name prefixes, tags, etc. (#1490) 2024-08-19 18:18:50 +00:00
resources.go Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
resources_test.go Use dynamic walking to validate unique resource keys (#1614) 2024-07-29 13:04:02 +00:00
root.go Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
root_test.go Alias variables block in the `Target` struct (#1748) 2024-09-10 14:49:34 +00:00
sync.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
target.go Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
workspace.go Added `auth describe` command (#1244) 2024-04-03 08:14:04 +00:00
workspace_test.go Resolve configuration before performing verification (#890) 2023-10-20 13:10:31 +00:00