Skip to content

Normalize clusters in jobs according to Terraform provider logic - #3198

Merged
denik merged 8 commits into
mainfrom
denik/jobs-clusters-clear-nodetypeid
Jul 9, 2025
Merged

Normalize clusters in jobs according to Terraform provider logic#3198
denik merged 8 commits into
mainfrom
denik/jobs-clusters-clear-nodetypeid

Conversation

@denik

@denikdenik commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

Changes

Apply changes in resource normalization that are applied by TF and cause invalid configuration to be fixed and accepted by the backend.

For example, when InstancePoolId is set, clear NodeTypeId field.

Why

For direct deployment we do all resource transformations in initialize phase rather than before deployment.

This makes no effect on the resource - the APIs are called with the same payload because this transformations are idempotent when applied for the second time.

However,

  • this makes it visible to user (via bundle validate -o json) what is the final configuration that is being sent to the backend
  • makes the same configuration work equally in terraform and direct backend even through direct backend does not transform resources in any way.

Same reasoning as in #2767

Tests

A few tests that were failing on direct backend are now enabled.

denik added 3 commits July 8, 2025 17:56
- This helps to prepare the resource for direct deployment, where we don't do any kind of processing.
- This makes configuration changes visible to use in bundle validate/summary.
@denik
deniktemporarily deployed to test-trigger-is July 8, 2025 16:04 — with GitHub Actions Inactive
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Jul 8, 2025

Copy link
Copy Markdown
Collaborator

Run: 16170796595

Env✅‌pass❌‌FAIL💥‌PANIC🔄‌flaky🙈‌skip🤯‌MISS
❌‌aws linux23723238245
❌‌aws windows23221236569
💥‌aws-ucws linux40412839
💥‌aws-ucws windows40512829
❌‌azure linux30114382
🔄‌azure windows3072381
✅‌azure-ucws linux416280
✅‌azure-ucws windows417279
❌‌gcp linux2969384
❌‌gcp windows27421138310
114 failing tests:
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsgcp linuxgcp windows
TestAccept🤯‌MISS🤯‌MISS✅‌pass✅‌pass🔄‌flaky✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/dashboard/nested-folders❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/dashboard/simple❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/dashboard/simple_outside_bundle_root✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/dashboard/simple_syncroot❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/files/no-snapshot-sync🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/check-metadata🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/check-metadata/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/check-metadata/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/double-underscore-keys✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/fail-on-active-runs🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/fail-on-active-runs/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/fail-on-active-runs/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/shared-root-path🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/shared-root-path/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/jobs/shared-root-path/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/pipeline/auto-approve🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/pipeline/auto-approve/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deploy/pipeline/auto-approve/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deployment/bind/dashboard✅‌pass✅‌pass✅‌pass✅‌pass🔄‌flaky✅‌pass✅‌pass✅‌pass
TestAccept/bundle/deployment/bind/dashboard/recreation✅‌pass✅‌pass✅‌pass✅‌pass🔄‌flaky✅‌pass✅‌pass✅‌pass
TestAccept/bundle/destroy/jobs-and-pipeline🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/local_state_staleness🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/local_state_staleness/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/local_state_staleness/DATABRICKS_CLI_DEPLOYMENT=terraform🤯‌MISS💥‌PANIC✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/resources/pipelines🤯‌MISS❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/resources/pipelines/DATABRICKS_CLI_DEPLOYMENT=direct-exp🤯‌MISS❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/resources/pipelines/DATABRICKS_CLI_DEPLOYMENT=terraform❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/classic🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=no/PY=no❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=no/PY=yes🤯‌MISS❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=yes/PY=no❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=yes/PY=yes🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=no/PY=no💥‌PANIC❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=no/PY=yes🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=yes/PY=no🤯‌MISS❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=yes/PY=yes🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=no/PY=no🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=no/PY=yes🤯‌MISS❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=yes/PY=no🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=yes/PY=yes🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=no/PY=no🤯‌MISS❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=no/PY=yes🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=yes/PY=no🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=yes/PY=yes🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/serverless✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=no/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=no/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=yes/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=no/NBOOK=yes/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=no/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=no/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=yes/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=direct-exp/DLT=yes/NBOOK=yes/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=no/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=no/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=yes/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=no/NBOOK=yes/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=no/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=no/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=yes/PY=no🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_CLI_DEPLOYMENT=terraform/DLT=yes/NBOOK=yes/PY=yes🙈‌skip🤯‌MISS✅‌pass✅‌pass🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/integration_classic❌‌FAIL🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/UV_PYTHON=3.10✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/UV_PYTHON=3.11✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/UV_PYTHON=3.12❌‌FAIL🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/UV_PYTHON=3.13❌‌FAIL🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=direct-exp/UV_PYTHON=3.9✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.10✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.11✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.12✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.13❌‌FAIL🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.9❌‌FAIL🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/basic✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/basic/DATABRICKS_CLI_DEPLOYMENT=direct-exp✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/basic/DATABRICKS_CLI_DEPLOYMENT=terraform✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/error✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/error/DATABRICKS_CLI_DEPLOYMENT=direct-exp✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/error/DATABRICKS_CLI_DEPLOYMENT=terraform✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/pipeline-crud✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/pipeline-crud/DATABRICKS_CLI_DEPLOYMENT=direct-exp✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/pipeline-crud/DATABRICKS_CLI_DEPLOYMENT=terraform✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/workspace-file-io✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/workspace-file-io/DATABRICKS_CLI_DEPLOYMENT=direct-exp✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/selftest/record_cloud/workspace-file-io/DATABRICKS_CLI_DEPLOYMENT=terraform✅‌pass🤯‌MISS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestFetchRepositoryInfoAPI_FromRepo❌‌FAIL❌‌FAIL✅‌pass✅‌pass❌‌FAIL✅‌pass❌‌FAIL❌‌FAIL
TestFilerReadDir❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestFilerReadDir/workspace_files❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestInprocessMode🤯‌MISS🤯‌MISS🙈‌skip🙈‌skip🙈‌skip🙈‌skip🙈‌skip🙈‌skip
TestReposCreateWithProvider❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass🔄‌flaky✅‌pass❌‌FAIL
TestReposCreateWithoutProvider❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestReposDeleteByID✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestReposDeleteByPath❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestReposGet❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL
TestReposUpdate❌‌FAIL❌‌FAIL✅‌pass✅‌pass🔄‌flaky✅‌pass✅‌pass❌‌FAIL
TestSparkJarTaskDeployAndRunOnWorkspace❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_14.3_LTS❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_15.4_LTS✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestSyncEnsureRemotePathIsUsableIfRepoDoesntExist🤯‌MISS🤯‌MISS🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncEnsureRemotePathIsUsableIfRepoExists🤯‌MISS🤯‌MISS🤯‌MISS🤯‌MISS✅‌pass🔄‌flaky❌‌FAIL🤯‌MISS
TestSyncEnsureRemotePathIsUsableInWorkspace🤯‌MISS🤯‌MISS🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncFullFileSync❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestSyncIncrementalFileOverwritesFolder💥‌PANIC💥‌PANIC🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncIncrementalFileSync❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL💥‌PANIC
TestSyncIncrementalSyncFileToPythonNotebook🤯‌MISS🤯‌MISS🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncIncrementalSyncPythonNotebookDelete🤯‌MISS🤯‌MISS🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncIncrementalSyncPythonNotebookToFile🤯‌MISS🤯‌MISS🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncNestedFolderDoesntFailOnNonEmptyDirectory✅‌pass✅‌pass🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncNestedFolderSync✅‌pass✅‌pass💥‌PANIC💥‌PANIC✅‌pass✅‌pass✅‌pass🤯‌MISS
TestSyncNestedSpacePlusAndHashAreEscapedSync✅‌pass✅‌pass🤯‌MISS🤯‌MISS✅‌pass✅‌pass✅‌pass🤯‌MISS

@denik
deniktemporarily deployed to test-trigger-is July 8, 2025 16:15 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is July 8, 2025 16:16 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is July 9, 2025 07:21 — with GitHub Actions Inactive
@denikdenik changed the title WIP Apply TF transformations on jobs's clustersApply TF transformations on jobs's clusters when initializing the bundleJul 9, 2025
@denik
denik marked this pull request as ready for review July 9, 2025 07:52
@denikdenik changed the title Apply TF transformations on jobs's clusters when initializing the bundleNormalize clusters in jobs according to Terraform provider logicJul 9, 2025
Comment threadbundle/config/mutator/resourcemutator/job_cluster_fixups.go Outdated
c.EnableElasticDisk = false
c.NodeTypeId = ""
c.DriverNodeTypeId = ""
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This clears computed fields on the TF side. We don't have that problem here because we exclusively use the configuration as input to our requests. What doesn't work if we don't apply these fixups?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the tests that were enabled in this PR.

The field 'node_type_id' cannot be supplied when an instance pool ID is provided."

Other fields are copied from TF for completeness -- If they are output-only it does not hurt to clear them.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are output only IFF the instance pool is set.

If a user configures both an instance pool and a node type ID, I think we should raise an error.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, that would be a breaking change, so we probably should start with a warning. However, this is out of scope in this PR, here I'm just surfacing what TF already does so that we have parity between deployment backends.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense. Can you throw in a TODO for good measure so we look at this later?

I prefer removing these modifications if we don't need them once direct is the only deployment mode.

Co-authored-by: Pieter Noordhuis <pieter.noordhuis@databricks.com>
@denik
deniktemporarily deployed to test-trigger-is July 9, 2025 12:36 — with GitHub Actions Inactive
@denik
denik requested a review from pieternJuly 9, 2025 12:36
c.EnableElasticDisk = false
c.NodeTypeId = ""
c.DriverNodeTypeId = ""
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense. Can you throw in a TODO for good measure so we look at this later?

I prefer removing these modifications if we don't need them once direct is the only deployment mode.

@denik
deniktemporarily deployed to test-trigger-is July 9, 2025 13:32 — with GitHub Actions Inactive
@denik
denik merged commit ff6271c into mainJul 9, 2025
12 of 13 checks passed
@denik
denik deleted the denik/jobs-clusters-clear-nodetypeid branch July 9, 2025 14:55
github-merge-queueBot pushed a commit that referenced this pull request Jul 10, 2025
…ation (#3226)
## Tests
- Move bundle/resources/jobs bundle/resources/jobs/update
- Add new test bundle/resources/jobs/instance_pool_and_node_type that
tests mutator added in #3198
## Why
We only had slow integration test that checks this behaviour, this is
local and explicit and highlights an issue with node_type_id being ""
rather than being omitted which trips the backend.
denik added a commit that referenced this pull request May 20, 2026
## Changes
Apply changes in resource normalization that are applied by TF and cause
invalid configuration to be fixed and accepted by the backend.
For example, when InstancePoolId is set, clear NodeTypeId field.
## Why
For direct deployment we do all resource transformations in initialize
phase rather than before deployment.
This makes no effect on the resource - the APIs are called with the same
payload because this transformations are idempotent when applied for the
second time.
However,
- this makes it visible to user (via bundle validate -o json) what is
the final configuration that is being sent to the backend
- makes the same configuration work equally in terraform and direct
backend even through direct backend does not transform resources in any
way.
Same reasoning as in #2767
## Tests
A few tests that were failing on direct backend are now enabled.
---------
Co-authored-by: Pieter Noordhuis <pieter.noordhuis@databricks.com>
denik added a commit that referenced this pull request May 20, 2026
…ation (#3226)
## Tests
- Move bundle/resources/jobs bundle/resources/jobs/update
- Add new test bundle/resources/jobs/instance_pool_and_node_type that
tests mutator added in #3198
## Why
We only had slow integration test that checks this behaviour, this is
local and explicit and highlights an issue with node_type_id being ""
rather than being omitted which trips the backend.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@denik@eng-dev-ecosystem-bot@pietern