-
Notifications
You must be signed in to change notification settings - Fork 142
Replace server_side_default with backend_default #4490
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
denik
wants to merge
13
commits into
main
Choose a base branch
from
denik/backend_defaults
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
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
Collaborator
|
Commit: 8795ceb
24 interesting tests: 7 KNOWN, 6 flaky, 5 SKIP, 5 RECOVERED, 1 FAIL
Top 50 slowest tests (at least 2 minutes):
|
70c35f1 to
2fb9d43
Compare
88e8d44 to
4aaf27c
Compare
4aaf27c to
3dc1550
Compare
ilyakuz-db
approved these changes
Feb 11, 2026
denik
added a commit
that referenced
this pull request
Feb 11, 2026
…#4491) ## Changes New "empty" reason in plan triggers when old/new & remote values are all either nil or zero or empty slice/map. ## Why Ignoring differences like nil vs "" and nil vs 0 reduces drift when backend has preferred representation. For example, model_serving_endpoints.description is converted from nil to "" by backend. jobs.timeout_seconds has a default 0. This supports removing server_side_default rule which currently marks this changes as "skip". #4490 ## Tests Existing tests.
Adds a new `backend_defaults` rule type that skips changes where old/new are nil but remote is set, constrained to specific field patterns and optionally to specific allowed values. Values use json.RawMessage to support type-accurate comparison against the remote state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ouses Each entry references the corresponding Terraform provider default with a link to the source and the exact line that sets the default. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Based on analysis of Terraform provider (commit 4eba541): - clusters: ignore aws/azure/gcp_attributes (SetSuppressDiff), enable_elastic_disk (SetComputed) - sql_warehouses: ignore channel, tags, warehouse_type (SetSuppressDiff) - model_serving_endpoints: ignore config.traffic_config (SetComputed + SuppressDiff on routes); backend_defaults for served_entities name/ workload_type and auto_capture_config.enabled (SetComputed) - dashboards: backend_defaults for embed_credentials=true (SetDefault) - apps: backend_defaults for compute_size (SetComputed) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…efaults The generic catch-all rule that marked all remote-only fields as server_side_default is replaced with explicit backend_defaults entries for each resource type. This makes field handling explicit and auditable. New backend_defaults entries: - jobs: timeout_seconds, tasks[*].timeout_seconds, tasks[*].notebook_task.source, tasks[*].new_cluster.data_security_mode, job_clusters[*].new_cluster.data_security_mode - pipelines: storage, root_path - model_serving_endpoints: route_optimized - registered_models: storage_location, owner, full_name, metastore_id (plus ignore_remote_changes for created_at/by, updated_at/by) - volumes: storage_location Also removes the server_side_default special case in configsync/diff.go (per existing TODO) and the ReasonServerSideDefault constant. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
e2ec42e to
7626cbd
Compare
…aults
Cross-referenced terraform-provider-databricks source (SetComputed,
SetSuppressDiff, SetForceNew) against resources.yml to fix gaps.
Added backend_defaults (SetComputed/SetSuppressDiff — backend-set fields):
- clusters: enable_local_disk_encryption, node_type_id, driver_node_type_id,
driver_instance_pool_id
- jobs: run_as, spark_python_task.source, sql_task.file.source,
dbt_task.source (+ for_each_task variants for all), new_cluster computed
fields matching clusters
- pipelines: event_log.catalog, event_log.schema, cluster computed fields
- sql_warehouses: enable_serverless_compute
- experiments: artifact_location
Added ignore_remote_changes:
- sql_warehouses: min_num_clusters (SetSuppressDiff)
- quality_monitors: skip_builtin_dashboard (not returned by API)
Added recreate_on_changes:
- pipelines: gateway_definition.{connection_id,connection_name,
gateway_storage_catalog,gateway_storage_schema},
ingestion_definition.ingest_from_uc_foreign_catalog
Removed dead backend_defaults — these are TF client-side SetDefault()
values already applied by resource_mutator.go, so the field is never nil
and backend_defaults (which triggers on old=nil AND new=nil) never fires:
- jobs: max_concurrent_runs, schedule/trigger/continuous.pause_status
- pipelines: edition, channel
- dashboards: embed_credentials (also had wrong value: yml said true,
mutator sets false)
- clusters: autotermination_minutes
- sql_warehouses: auto_stop_mins, enable_photon, max_num_clusters,
spot_instance_policy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Changes
Why
The "server_side_default" assumes that any setting appearing in the remote state that is not in the config should be ignored. This works when resources are only edited via DABs. However, if we need bundle plan to detect remote changes, this can ignore too much.
Tests
Existing tests.