Integrate deployment metadata service for locking and state#4856
Draft
shreyas-goenka wants to merge 1 commit intomainfrom
Draft
Integrate deployment metadata service for locking and state#4856shreyas-goenka wants to merge 1 commit intomainfrom
shreyas-goenka wants to merge 1 commit intomainfrom
Conversation
Collaborator
|
Commit: 342fef8
|
shreyas-goenka
commented
Apr 8, 2026
bundle/direct/bundle_apply.go
Outdated
|
|
||
| // Report skip actions to the metadata service. On initial registration, | ||
| // these are recorded as INITIAL_REGISTER operations. | ||
| if action == deployplan.Skip && b.OperationReporter != nil { |
Contributor
Author
There was a problem hiding this comment.
move the initial registration up
shreyas-goenka
commented
Apr 10, 2026
| @@ -0,0 +1,6 @@ | |||
| Local = true | |||
| Cloud = false | |||
Contributor
Author
There was a problem hiding this comment.
The service needs to roll out to prod before we enable this on cloud.
Add server-side deployment locking and state management via the Deployment Metadata Service (DMS), gated behind DATABRICKS_BUNDLE_MANAGED_STATE=true. Key changes: - DeploymentLock interface with factory (DMS or filesystem based on env) - DMS lock: version-based locking with heartbeat, operation reporting - State read/write via ListResources/CreateOperation with per-resource state - withDeploymentLock helper extracts lock boilerplate from deploy/destroy - Temporary DMS client (libs/tmpdms) mirroring future SDK-generated code - Mock DMS server for acceptance tests - 6 acceptance tests covering deploy, destroy, plan, summary, sequential deploys, and adding resources with remote state Co-authored-by: Isaac
38076ea to
32ae5ff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/api/2.0/bundle/) for server-side deployment locking and resource state trackingINITIAL_REGISTERfor first-time tracking)Gated behind
DATABRICKS_BUNDLE_DEPLOYMENT_SERVICE=trueenvironment variable. Zero behavior change when the flag is off.New files
bundle/env/deployment_metadata.go— env var definitionbundle/deploy/metadata/service/types.go— Go structs matching the proto APIbundle/deploy/metadata/service/client.go— HTTP client for all deployment metadata endpointsbundle/deploy/metadata/service/heartbeat.go— background lock renewalbundle/phases/deploy_metadata.go— new deploy flow with metadata servicebundle/phases/destroy_metadata.go— new destroy flow with metadata serviceModified files
bundle/deploy/state_update.go— exportLoadState()functionbundle/phases/deploy.go— feature flag checkbundle/phases/destroy.go— feature flag checkTest plan
[[Server]]stubs for deploy/destroy flowsThis pull request was AI-assisted by Isaac.