databricks-cli/bundle/deploy
shreyas-goenka 4e8e027380
Sort tasks by `task_key` before generating the Terraform configuration (#1776)
## Changes
Sort the tasks in the resultant `bundle.tf.json`. This is important
because configuration from one task can leak into another if the tasks
are not sorted.

For more details see:
1.
https://github.com/databricks/terraform-provider-databricks/issues/3951
2.
https://github.com/databricks/terraform-provider-databricks/issues/4011

## Tests
Unit test and manually.

For manual testing I used the following configuration:
```
resources:
  jobs:
    foo:
      tasks: 
        - task_key: task-Z
          notebook_task: 
            notebook_path: nb.py
            source: GIT
          existing_cluster_id: 0715-133738-ju0ma84z

        - task_key: task-1
          notebook_task: 
            notebook_path: ${workspace.file_path}/local.py
            source: WORKSPACE
          existing_cluster_id: 0715-133738-ju0ma84z
          depends_on: 
            - task_key: task-Z


      git_source: 
        git_provider: gitHub
        git_url: https://github.com/shreyas-goenka/job-source-tmp.git
        git_branch: main
```

Steps (1):
1. Deploy this bundle.
2. Comment out "source: GIT"
3. Deploy again

Before:
Deploying this bundle twice would fail. This is because the "source:
GIT" would carry over to the next deployment.

After:
There was no error on the subsequent deployment.

Steps (2):
1. Deploy once
2. Deploy again

Before:
Works correctly but leads to a update API call every time.

After:
No diff is detected by terraform.
2024-09-26 13:22:22 +00:00
..
files Add verbose flag to the "bundle deploy" command (#1774) 2024-09-23 10:09:11 +00:00
lock Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
metadata Modify SetLocation test utility to take full locations as argument 2024-09-24 14:45:14 +02:00
terraform Sort tasks by `task_key` before generating the Terraform configuration (#1776) 2024-09-26 13:22:22 +00:00
filer.go Added deployment state for bundles (#1267) 2024-03-18 14:41:58 +00:00
state.go Add UUID to uniquely identify a deployment state (#1595) 2024-07-16 10:01:58 +00:00
state_pull.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
state_pull_test.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
state_push.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
state_push_test.go Move path field to bundle type (#1316) 2024-03-27 09:03:24 +00:00
state_test.go Make fileset take optional list of paths to list (#1684) 2024-08-19 15:15:14 +00:00
state_update.go Add UUID to uniquely identify a deployment state (#1595) 2024-07-16 10:01:58 +00:00
state_update_test.go Make fileset take optional list of paths to list (#1684) 2024-08-19 15:15:14 +00:00