Skip to content

bundle: delete the terraform deployment engine code - #6889

Merged
denik merged 8 commits into
mainfrom
denik/delete-terraform
Oct 6, 2026
Merged

denik merged 8 commits into
mainfrom
denik/delete-terraform

Conversation

@denik

@denik denik commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Deletes the now-unreachable Terraform deployment engine code. The previous PR (#6888) made engine: terraform error and the tf->direct migration mandatory, so nothing reaches the engine anymore. This is the removal announced in #6765.

Removed: the terraform engine implementation (apply/convert/plan/init/install/import/interpolate/pubkey/showplanfile/unbind/write) and the entire tfdyn package; the terraform branches in the deploy/bind/destroy phases; Bundle.Terraform* fields and deployplan.NewPlanTerraform; the terraform-exec, hc-install and terraform-json dependencies; and terraform from the bundle.engine schema enum. Also removed: the terraform-only YAML-sync config snapshot (resources-config-sync-snapshot.json), which only a terraform deploy wrote and only a terraform state read; the snapshot-comparison test that compared it with migrate output is dropped in #6888.

Kept: the state-migration infrastructure (terraform state parsing, and the state-mapping helpers still used by the migration, kept in showplanfile.go, plus BindOptions in import.go) so existing Terraform state still migrates to the direct engine.

This pull request and its description were written by Isaac.

@denik denik mentioned this pull request Sep 30, 2026
2 of 4 tasks
@denik
denik force-pushed the denik/reject-terraform branch from dc5f96a to 26b45a6 Compare October 1, 2026 13:42
@denik
denik force-pushed the denik/delete-terraform branch from 4013de4 to d7a3c8a Compare October 1, 2026 13:42
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 734eb70

Run: 37362160857

Env ✅​pass 🙈​skip Time
✅​ aws linux 276 16 4:54
✅​ aws windows 278 14 3:00
✅​ azure linux 275 16 4:52
✅​ azure windows 277 14 2:58
✅​ gcp linux 276 16 6:46
✅​ gcp windows 278 14 5:00
Top 3 slowest tests (at least 2 minutes):
duration env testname
3:50 gcp linux TestAccept
2:57 aws linux TestAccept
2:57 azure linux TestAccept

@denik
denik force-pushed the denik/reject-terraform branch from 26b45a6 to cfa9047 Compare October 1, 2026 21:11
@denik
denik force-pushed the denik/delete-terraform branch from d7a3c8a to 1457e7c Compare October 1, 2026 21:11
@denik
denik force-pushed the denik/reject-terraform branch from cfa9047 to 3fd66af Compare October 2, 2026 09:34
@denik
denik force-pushed the denik/delete-terraform branch from 1457e7c to dc73a41 Compare October 2, 2026 09:34
@denik
denik force-pushed the denik/reject-terraform branch from 3fd66af to 8e85239 Compare October 2, 2026 10:28
@denik
denik force-pushed the denik/delete-terraform branch from dc73a41 to d179912 Compare October 2, 2026 10:28
@denik
denik force-pushed the denik/reject-terraform branch from 8e85239 to daa60dd Compare October 2, 2026 11:11
@denik
denik force-pushed the denik/delete-terraform branch 2 times, most recently from ccb9f0b to 001d263 Compare October 2, 2026 11:44
@denik
denik force-pushed the denik/reject-terraform branch from daa60dd to 6db050d Compare October 2, 2026 11:44
philip pushed a commit to philip/databricks-cli that referenced this pull request Oct 2, 2026
…#6877)

Removes the terraform engine from the acceptance CI matrix so the suite
runs direct-only, and drops the now-single-value
`DATABRICKS_BUNDLE_ENGINE` matrix pins (using
`Env.DATABRICKS_BUNDLE_ENGINE` only where a test forces a specific
engine). The terraform engine code itself is untouched here; it is
rejected in [databricks#6888](databricks#6888) and
removed in [databricks#6889](databricks#6889).

This pull request and its description were written by Isaac.

---------

Co-authored-by: Isaac <no-reply@databricks.com>
@denik
denik force-pushed the denik/reject-terraform branch from 6db050d to 33ec5c0 Compare October 5, 2026 07:28
@denik
denik force-pushed the denik/delete-terraform branch from 001d263 to 91b68d0 Compare October 5, 2026 07:28
@denik
denik marked this pull request as ready for review October 5, 2026 07:34
@denik
denik requested review from a team as code owners October 5, 2026 07:34
@denik
denik requested a review from janniklasrose October 5, 2026 07:34
@denik
denik force-pushed the denik/delete-terraform branch from 91b68d0 to e1d8315 Compare October 5, 2026 07:44
@denik
denik force-pushed the denik/reject-terraform branch from 95b6da3 to c5674aa Compare October 5, 2026 09:13
@denik
denik force-pushed the denik/delete-terraform branch 2 times, most recently from aa0a153 to a0bcf0b Compare October 5, 2026 09:44
@github-actions github-actions Bot added the DABs DABs related issues label Oct 5, 2026
@denik
denik enabled auto-merge October 5, 2026 13:48
@denik
denik disabled auto-merge October 5, 2026 14:26
@denik
denik requested a review from a team as a code owner October 5, 2026 18:29
@denik
denik force-pushed the denik/delete-terraform branch from 4fbb709 to 2b29094 Compare October 5, 2026 18:29
@denik
denik enabled auto-merge October 5, 2026 18:50
denik and others added 8 commits October 5, 2026 21:11
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
UploadStateForYamlSync wrote resources-config-sync-snapshot.json only after a
terraform deploy, and config-remote-sync read it only for a terraform state.
With the terraform engine removed neither path runs, so drop the mutator, the
snapshot path helper, and ErrStateSnapshotNotFound. reverseInterpolate is still
used by the state migration and moves to its own file unchanged.

Co-authored-by: Isaac <no-reply@databricks.com>
Trim showplanfile.go and import.go to the declarations that migration and bind still use, instead of moving them to statemap.go, so the diff only deletes lines.

Co-authored-by: Isaac <no-reply@databricks.com>
It undid terraform.Interpolate, which only ran inside the terraform deploy, bind and destroy phases. The migration runs before any phase and terraform.Interpolate is gone, so the config never has terraform-style references here.

Co-authored-by: Isaac <no-reply@databricks.com>
Only the tfstate resource mode type and its "managed" constant were used; replace them with a local constant. The TF schema codegen module keeps its own pin.

Co-authored-by: Isaac <no-reply@databricks.com>
@denik
denik force-pushed the denik/delete-terraform branch from 2b29094 to 734eb70 Compare October 5, 2026 19:14
@denik
denik added this pull request to the merge queue Oct 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 5, 2026
@denik
denik added this pull request to the merge queue Oct 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 5, 2026
@denik
denik added this pull request to the merge queue Oct 6, 2026
Merged via the queue into main with commit 92d8b14 Oct 6, 2026
36 checks passed
@denik
denik deleted the denik/delete-terraform branch October 6, 2026 05:57
yiweidai-db pushed a commit to yiweidai-db/cli that referenced this pull request Oct 6, 2026
Stacked on databricks#6889.

Removes the hidden `bundle debug terraform` command. It printed the
Terraform and Databricks Terraform provider versions (and checksums) the
terraform engine used, for the VS Code extension and the Docker image
build. With the engine gone there is nothing to report.

The Docker image no longer downloads Terraform and the provider; it now
contains just the CLI. Also drops the `hashicorp/go-version` dependency
and the matching NOTICE entries.

This pull request and its description were written by Isaac.

---------

Co-authored-by: Isaac <no-reply@databricks.com>
deco-sdk-tagging Bot added a commit that referenced this pull request Oct 7, 2026
## Release v1.20.0

### Notable Changes

 * Remove the Terraform deployment engine. `bundle.engine: terraform` and `DATABRICKS_BUNDLE_ENGINE=terraform` now error, and a failed migration of existing Terraform state is reported as an error instead of falling back to Terraform. To keep deploying with Terraform, use Databricks CLI v1.19.x. ([#6888](#6888), [#6889](#6889))

### CLI

 * `databricks aitools install` now supports Kiro, installing Databricks agent skills into its skills directory. ([#6908](#6908))
 * Fixed `databricks api` corrupting integers larger than 2^53 (such as job and pipeline ids) — request bodies and responses now preserve them exactly. ([#6884](#6884))
 * Added `--auth-mode` and `--set <plugin>.<resourceKey>.authMode=obo|sp|both` to `databricks apps init` so AppKit resources can be accessed on behalf of the user, by the service principal, or both. The default stays service principal. ([#6886](#6886))
 * `databricks apps init` now requires a value for every field a service principal resource binding references, prompting for missing values in an interactive terminal and otherwise failing with the `--set` key to use, instead of creating a project with unset variables. ([#6903](#6903))
 * Add `databricks apps init --package-manager <npm|pnpm>` to select the package manager for Node.js templates. Infer the default quietly from template lockfiles and AppKit version, check prerequisites before creating files, and preserve template formatting and pnpm version pins. ([#6902](#6902))
 * Select npm or pnpm from `packageManager` declarations and lockfiles for `apps validate` and project validation during `apps deploy`. ([#6892](#6892))
 * Fix `auth docker host` reporting the credential helper as configured when its executable is missing from `PATH`. ([#6880](#6880))
 * Warn when the CLI binary was built more than 6 months ago and recommend updating. ([#6898](#6898))

### AI Runtime

 * Add an experimental rank-partitioned container images to AI Runtime jobs. ([#6841](#6841))
 * Support snapshot fields directly under `code_source` without requiring `type` or a nested `snapshot` block. ([#6927](#6927))
 * Map AIR priority and Unity Catalog image fields when converting run configurations to bundles. ([#6905](#6905))
 * Add workspace backend validation to `air run --dry-run`. ([#6934](#6934))

### Bundles

 * Warn that `bundle.terraform` is deprecated and has no effect since the Terraform deployment engine was removed. ([#6940](#6940))
 * Direct engine now detects and applies an explicitly configured zero-value boolean or float (e.g. `gcp_attributes.use_preemptible_executors: false`, `azure_attributes.spot_bid_max_price: 0`) added to a resource first deployed without the field, matching the existing handling of an explicit integer zero. ([#6882](#6882))
 * Fix `bundle deployment migrate` failing with "no such file or directory" when the Terraform state has no resources or the configuration no longer declares any of them. ([#6958](#6958))
 * `bundle run` and `pipelines run` now send the per-update `development` parameter for pipelines in development mode targets. Setting `development` on a pipeline is deprecated and now emits a warning; use `mode: development` instead. ([#6863](#6863))
 * Remove the hidden `bundle debug terraform` command. ([#6933](#6933))
 * Add support for `run_as.group_name` at the bundle and target levels for jobs and pipelines. ([#6676](#6676))
 * Fix recreating a secret scope that was deleted outside of the bundle with the direct deployment engine. ([#6970](#6970))
 * Accept title-case booleans (`True`/`False`, as rendered by Azure Pipelines) for boolean variables, and accept the same boolean strings (`yes`/`no`, `on`/`off`, ...) in Python bundles as in YAML. ([#6942](#6942))

### Dependency Updates

 * Bump `github.com/databricks/databricks-sdk-go` from v0.182.0 to v0.185.0. ([#6928](#6928))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants