From b5b573655e195055908f68128179f394200137e6 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 14:10:09 +0100 Subject: [PATCH 01/17] add acceptance/invariant/no_drift + check_plan.py --- acceptance/bin/check_plan.py | 30 +++++++++++++++++ acceptance/invariant/configs/schema.yml.tmpl | 9 +++++ acceptance/invariant/no_drift/out.test.toml | 6 ++++ acceptance/invariant/no_drift/output.txt | 1 + acceptance/invariant/no_drift/script | 35 ++++++++++++++++++++ acceptance/invariant/test.toml | 12 +++++++ 6 files changed, 93 insertions(+) create mode 100755 acceptance/bin/check_plan.py create mode 100644 acceptance/invariant/configs/schema.yml.tmpl create mode 100644 acceptance/invariant/no_drift/out.test.toml create mode 100644 acceptance/invariant/no_drift/output.txt create mode 100644 acceptance/invariant/no_drift/script create mode 100644 acceptance/invariant/test.toml diff --git a/acceptance/bin/check_plan.py b/acceptance/bin/check_plan.py new file mode 100755 index 0000000000..522d2defad --- /dev/null +++ b/acceptance/bin/check_plan.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +import sys +import json + + +def check_plan(path): + with open(path) as fobj: + data = fobj.read() + + changes_detected = 0 + + data = json.loads(data) + for key, value in data["plan"].items(): + if value["action"] != "skip": + print("Unexpected action in", key, value["action"]) + pprint.pprint(value) + print() + changes_detected += 1 + + if changes_detected: + sys.exit(10) + + +def main(): + for path in sys.argv[1:]: + check_plan(path) + + +if __name__ == "__main__": + main() diff --git a/acceptance/invariant/configs/schema.yml.tmpl b/acceptance/invariant/configs/schema.yml.tmpl new file mode 100644 index 0000000000..a997f8bfc2 --- /dev/null +++ b/acceptance/invariant/configs/schema.yml.tmpl @@ -0,0 +1,9 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + schemas: + foo: + catalog_name: main + name: test-schema-$UNIQUE_NAME diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml new file mode 100644 index 0000000000..b41f2cd79b --- /dev/null +++ b/acceptance/invariant/no_drift/out.test.toml @@ -0,0 +1,6 @@ +Local = true +Cloud = true + +[EnvMatrix] + DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] + INPUT_CONFIG = ["schema.yml.tmpl"] diff --git a/acceptance/invariant/no_drift/output.txt b/acceptance/invariant/no_drift/output.txt new file mode 100644 index 0000000000..7a28cb73a5 --- /dev/null +++ b/acceptance/invariant/no_drift/output.txt @@ -0,0 +1 @@ +INPUT_CONFIG_OK diff --git a/acceptance/invariant/no_drift/script b/acceptance/invariant/no_drift/script new file mode 100644 index 0000000000..4cb66f448b --- /dev/null +++ b/acceptance/invariant/no_drift/script @@ -0,0 +1,35 @@ +# Invariant to test: no drift after deploy +# Additional checks: no internal errors / panics in validate/plan/deploy + +envsubst < $TESTDIR/../configs/$INPUT_CONFIG > databricks.yml + +cp databricks.yml LOG.config + +# We redirect output rather than record it because some configs that are being tested may produce warnings +trace $CLI bundle validate &> LOG.validate + +cat LOG.validate | contains.py '!panic' '!internal error' > /dev/null + +cleanup() { + trace $CLI bundle destroy --auto-approve &> LOG.destroy + cat LOG.destroy | contains.py '!panic' '!internal error' > /dev/null +} + +trap cleanup EXIT + +trace $CLI bundle deploy &> LOG.deploy +cat LOG.deploy | contains.py '!panic' '!internal error' > /dev/null + +# Special message to fuzzer that generated config was fine. +# Any failures after this point will be considered as "bug detected" by fuzzer. +echo INPUT_CONFIG_OK + +$CLI bundle plan -o json &> plan.json +cat plan.json | contains.py '!panic' '!internal error' > /dev/null + +# Check both text and JSON plan for no changes +# Note, expect that there maybe more than one resource unchanged +$CLI bundle plan | contains.py '!panic' '!internal error' 'Plan: 0 to add, 0 to change, 0 to delete' > LOG.plan + +$CLI bundle plan -o json > plan.json +check_plan.py plan.json diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml new file mode 100644 index 0000000000..40156a336a --- /dev/null +++ b/acceptance/invariant/test.toml @@ -0,0 +1,12 @@ +Local = true +Cloud = true + +Ignore = [ + ".databricks", + "databricks.yml", + "plan.json", +] + +EnvMatrix.INPUT_CONFIG = [ + "schema.yml.tmpl", +] From 66dc2a886523d23a6a04a7ae0355873c6b1ebfb3 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 14:49:02 +0100 Subject: [PATCH 02/17] Add minimal resource configs for no_drift invariant test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add 9 minimal resource configuration templates to test the no-drift invariant across different resource types (jobs, pipelines, experiments, models, volumes, schemas, clusters, model serving endpoints). Changes: - Add configs/ directory with minimal .yml.tmpl files for each resource type - Add data/ directory for supporting files (pipeline.py) - Update no_drift/script to copy data files at test start - Update test.toml to include new configs and ignore *.py files - Update out.test.toml with expanded config matrix All configs tested and verified on both testserver and AWS cloud with direct and terraform deployment engines. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- acceptance/invariant/configs/cluster.yml.tmpl | 11 +++++++++++ acceptance/invariant/configs/experiment.yml.tmpl | 8 ++++++++ acceptance/invariant/configs/job.yml.tmpl | 8 ++++++++ acceptance/invariant/configs/model.yml.tmpl | 8 ++++++++ .../configs/model_serving_endpoint.yml.tmpl | 8 ++++++++ acceptance/invariant/configs/pipeline.yml.tmpl | 11 +++++++++++ .../invariant/configs/quality_monitor.yml.tmpl | 16 ++++++++++++++++ .../invariant/configs/registered_model.yml.tmpl | 10 ++++++++++ acceptance/invariant/configs/volume.yml.tmpl | 10 ++++++++++ acceptance/invariant/data/pipeline.py | 6 ++++++ acceptance/invariant/no_drift/out.test.toml | 2 +- acceptance/invariant/no_drift/script | 3 +++ acceptance/invariant/test.toml | 9 +++++++++ 13 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 acceptance/invariant/configs/cluster.yml.tmpl create mode 100644 acceptance/invariant/configs/experiment.yml.tmpl create mode 100644 acceptance/invariant/configs/job.yml.tmpl create mode 100644 acceptance/invariant/configs/model.yml.tmpl create mode 100644 acceptance/invariant/configs/model_serving_endpoint.yml.tmpl create mode 100644 acceptance/invariant/configs/pipeline.yml.tmpl create mode 100644 acceptance/invariant/configs/quality_monitor.yml.tmpl create mode 100644 acceptance/invariant/configs/registered_model.yml.tmpl create mode 100644 acceptance/invariant/configs/volume.yml.tmpl create mode 100644 acceptance/invariant/data/pipeline.py diff --git a/acceptance/invariant/configs/cluster.yml.tmpl b/acceptance/invariant/configs/cluster.yml.tmpl new file mode 100644 index 0000000000..488dc5aded --- /dev/null +++ b/acceptance/invariant/configs/cluster.yml.tmpl @@ -0,0 +1,11 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + clusters: + foo: + cluster_name: test-cluster-$UNIQUE_NAME + spark_version: 13.3.x-scala2.12 + node_type_id: i3.xlarge + num_workers: 1 diff --git a/acceptance/invariant/configs/experiment.yml.tmpl b/acceptance/invariant/configs/experiment.yml.tmpl new file mode 100644 index 0000000000..2526d0f8d2 --- /dev/null +++ b/acceptance/invariant/configs/experiment.yml.tmpl @@ -0,0 +1,8 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + experiments: + foo: + name: /Users/$CURRENT_USER_NAME/test-experiment-$UNIQUE_NAME diff --git a/acceptance/invariant/configs/job.yml.tmpl b/acceptance/invariant/configs/job.yml.tmpl new file mode 100644 index 0000000000..9478e3e613 --- /dev/null +++ b/acceptance/invariant/configs/job.yml.tmpl @@ -0,0 +1,8 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + jobs: + foo: + name: test-job-$UNIQUE_NAME diff --git a/acceptance/invariant/configs/model.yml.tmpl b/acceptance/invariant/configs/model.yml.tmpl new file mode 100644 index 0000000000..48d6039cb3 --- /dev/null +++ b/acceptance/invariant/configs/model.yml.tmpl @@ -0,0 +1,8 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + models: + foo: + name: test-model-$UNIQUE_NAME diff --git a/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl b/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl new file mode 100644 index 0000000000..fb215c5197 --- /dev/null +++ b/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl @@ -0,0 +1,8 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + model_serving_endpoints: + foo: + name: test-endpoint-$UNIQUE_NAME diff --git a/acceptance/invariant/configs/pipeline.yml.tmpl b/acceptance/invariant/configs/pipeline.yml.tmpl new file mode 100644 index 0000000000..d9c4693dc8 --- /dev/null +++ b/acceptance/invariant/configs/pipeline.yml.tmpl @@ -0,0 +1,11 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + pipelines: + foo: + name: test-pipeline-$UNIQUE_NAME + libraries: + - file: + path: pipeline.py diff --git a/acceptance/invariant/configs/quality_monitor.yml.tmpl b/acceptance/invariant/configs/quality_monitor.yml.tmpl new file mode 100644 index 0000000000..30a985340c --- /dev/null +++ b/acceptance/invariant/configs/quality_monitor.yml.tmpl @@ -0,0 +1,16 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + schemas: + schema1: + catalog_name: main + name: test-schema-$UNIQUE_NAME + + quality_monitors: + foo: + table_name: main.test-schema-$UNIQUE_NAME.test_table + assets_dir: /Workspace/Users/$USER_NAME/monitor_assets_$UNIQUE_NAME + output_schema_name: main.test-schema-$UNIQUE_NAME + snapshot: {} diff --git a/acceptance/invariant/configs/registered_model.yml.tmpl b/acceptance/invariant/configs/registered_model.yml.tmpl new file mode 100644 index 0000000000..da3a98d34f --- /dev/null +++ b/acceptance/invariant/configs/registered_model.yml.tmpl @@ -0,0 +1,10 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + registered_models: + foo: + name: test-model-$UNIQUE_NAME + catalog_name: main + schema_name: default diff --git a/acceptance/invariant/configs/volume.yml.tmpl b/acceptance/invariant/configs/volume.yml.tmpl new file mode 100644 index 0000000000..6cd0fe1d58 --- /dev/null +++ b/acceptance/invariant/configs/volume.yml.tmpl @@ -0,0 +1,10 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + volumes: + foo: + name: test-volume-$UNIQUE_NAME + catalog_name: main + schema_name: default diff --git a/acceptance/invariant/data/pipeline.py b/acceptance/invariant/data/pipeline.py new file mode 100644 index 0000000000..e1b4968c11 --- /dev/null +++ b/acceptance/invariant/data/pipeline.py @@ -0,0 +1,6 @@ +import dlt + + +@dlt.table +def my_table(): + return spark.range(1) diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml index b41f2cd79b..83237d0427 100644 --- a/acceptance/invariant/no_drift/out.test.toml +++ b/acceptance/invariant/no_drift/out.test.toml @@ -3,4 +3,4 @@ Cloud = true [EnvMatrix] DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] - INPUT_CONFIG = ["schema.yml.tmpl"] + INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl"] diff --git a/acceptance/invariant/no_drift/script b/acceptance/invariant/no_drift/script index 4cb66f448b..db80c73cdc 100644 --- a/acceptance/invariant/no_drift/script +++ b/acceptance/invariant/no_drift/script @@ -1,6 +1,9 @@ # Invariant to test: no drift after deploy # Additional checks: no internal errors / panics in validate/plan/deploy +# Copy data files to test directory +cp -r $TESTDIR/../data/* . 2>/dev/null || true + envsubst < $TESTDIR/../configs/$INPUT_CONFIG > databricks.yml cp databricks.yml LOG.config diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml index 40156a336a..60ffde9e94 100644 --- a/acceptance/invariant/test.toml +++ b/acceptance/invariant/test.toml @@ -5,8 +5,17 @@ Ignore = [ ".databricks", "databricks.yml", "plan.json", + "*.py", ] EnvMatrix.INPUT_CONFIG = [ "schema.yml.tmpl", + "job.yml.tmpl", + "pipeline.yml.tmpl", + "experiment.yml.tmpl", + "registered_model.yml.tmpl", + "volume.yml.tmpl", + "cluster.yml.tmpl", + "model_serving_endpoint.yml.tmpl", + "model.yml.tmpl", ] From a4321b8aef3d97233b47e3b5ec9a5ff4762742e9 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 14:56:32 +0100 Subject: [PATCH 03/17] Add configs for alerts, dashboards, apps, and secret scopes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add 4 more resource configurations to the no_drift invariant test, bringing the total to 13 working configs. New configs: - alerts (with .dbalert.json file) - dashboards (with .lvdash.json file) - apps (with source_code_path directory) - secret_scopes Also created sql_warehouse.yml.tmpl but excluded from test due to drift issues. Changes: - Add 5 new config templates in configs/ - Add 3 new data files in data/ (alert.dbalert.json, dashboard.lvdash.json, app/) - Update test.toml to include new configs and ignore *.json and app directory - Update out.test.toml with expanded config matrix All 13 configs tested on testserver with both direct and terraform engines. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- acceptance/invariant/configs/alert.yml.tmpl | 10 +++++++ acceptance/invariant/configs/app.yml.tmpl | 9 +++++++ .../invariant/configs/dashboard.yml.tmpl | 10 +++++++ .../invariant/configs/secret_scope.yml.tmpl | 9 +++++++ .../invariant/configs/sql_warehouse.yml.tmpl | 10 +++++++ acceptance/invariant/data/alert.dbalert.json | 27 +++++++++++++++++++ acceptance/invariant/data/app/app.py | 8 ++++++ acceptance/invariant/data/app/app.yaml | 1 + .../invariant/data/dashboard.lvdash.json | 1 + acceptance/invariant/no_drift/out.test.toml | 2 +- acceptance/invariant/test.toml | 6 +++++ 11 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 acceptance/invariant/configs/alert.yml.tmpl create mode 100644 acceptance/invariant/configs/app.yml.tmpl create mode 100644 acceptance/invariant/configs/dashboard.yml.tmpl create mode 100644 acceptance/invariant/configs/secret_scope.yml.tmpl create mode 100644 acceptance/invariant/configs/sql_warehouse.yml.tmpl create mode 100644 acceptance/invariant/data/alert.dbalert.json create mode 100644 acceptance/invariant/data/app/app.py create mode 100644 acceptance/invariant/data/app/app.yaml create mode 100644 acceptance/invariant/data/dashboard.lvdash.json diff --git a/acceptance/invariant/configs/alert.yml.tmpl b/acceptance/invariant/configs/alert.yml.tmpl new file mode 100644 index 0000000000..be0e0384cd --- /dev/null +++ b/acceptance/invariant/configs/alert.yml.tmpl @@ -0,0 +1,10 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + alerts: + foo: + warehouse_id: $TEST_DEFAULT_WAREHOUSE_ID + display_name: test-alert-$UNIQUE_NAME + file_path: ./alert.dbalert.json diff --git a/acceptance/invariant/configs/app.yml.tmpl b/acceptance/invariant/configs/app.yml.tmpl new file mode 100644 index 0000000000..1592aae93f --- /dev/null +++ b/acceptance/invariant/configs/app.yml.tmpl @@ -0,0 +1,9 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + apps: + foo: + name: test-app-$UNIQUE_NAME + source_code_path: ./app diff --git a/acceptance/invariant/configs/dashboard.yml.tmpl b/acceptance/invariant/configs/dashboard.yml.tmpl new file mode 100644 index 0000000000..a8edff51d4 --- /dev/null +++ b/acceptance/invariant/configs/dashboard.yml.tmpl @@ -0,0 +1,10 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + dashboards: + foo: + warehouse_id: $TEST_DEFAULT_WAREHOUSE_ID + display_name: test-dashboard-$UNIQUE_NAME + file_path: ./dashboard.lvdash.json diff --git a/acceptance/invariant/configs/secret_scope.yml.tmpl b/acceptance/invariant/configs/secret_scope.yml.tmpl new file mode 100644 index 0000000000..e51f578bfe --- /dev/null +++ b/acceptance/invariant/configs/secret_scope.yml.tmpl @@ -0,0 +1,9 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + secret_scopes: + foo: + name: test-scope-$UNIQUE_NAME + backend_type: DATABRICKS diff --git a/acceptance/invariant/configs/sql_warehouse.yml.tmpl b/acceptance/invariant/configs/sql_warehouse.yml.tmpl new file mode 100644 index 0000000000..5389d9ff2c --- /dev/null +++ b/acceptance/invariant/configs/sql_warehouse.yml.tmpl @@ -0,0 +1,10 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + sql_warehouses: + foo: + name: test-warehouse-$UNIQUE_NAME + cluster_size: X-Small + max_num_clusters: 1 diff --git a/acceptance/invariant/data/alert.dbalert.json b/acceptance/invariant/data/alert.dbalert.json new file mode 100644 index 0000000000..2b78b24c90 --- /dev/null +++ b/acceptance/invariant/data/alert.dbalert.json @@ -0,0 +1,27 @@ +{ + "custom_summary": "test-alert", + "evaluation": { + "source": { + "name": "1", + "display": "1", + "aggregation": "MAX" + }, + "comparison_operator": "EQUAL", + "threshold": { + "value": { + "double_value": 1.0 + } + }, + "notification": { + "retrigger_seconds": 60, + "notify_on_ok": false + } + }, + "schedule": { + "quartz_cron_schedule": "0 0 * * * ?", + "timezone_id": "UTC" + }, + "query_lines": [ + "select 1" + ] +} diff --git a/acceptance/invariant/data/app/app.py b/acceptance/invariant/data/app/app.py new file mode 100644 index 0000000000..5d37802a07 --- /dev/null +++ b/acceptance/invariant/data/app/app.py @@ -0,0 +1,8 @@ +from flask import Flask + +app = Flask(__name__) + + +@app.route("/") +def hello(): + return "Hello" diff --git a/acceptance/invariant/data/app/app.yaml b/acceptance/invariant/data/app/app.yaml new file mode 100644 index 0000000000..489ab6586c --- /dev/null +++ b/acceptance/invariant/data/app/app.yaml @@ -0,0 +1 @@ +command: ["flask", "--app", "app", "run"] diff --git a/acceptance/invariant/data/dashboard.lvdash.json b/acceptance/invariant/data/dashboard.lvdash.json new file mode 100644 index 0000000000..4b8560b160 --- /dev/null +++ b/acceptance/invariant/data/dashboard.lvdash.json @@ -0,0 +1 @@ +{"pages":[{"name":"page1","displayName":"Test Page"}]} diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml index 83237d0427..eab38e4ac9 100644 --- a/acceptance/invariant/no_drift/out.test.toml +++ b/acceptance/invariant/no_drift/out.test.toml @@ -3,4 +3,4 @@ Cloud = true [EnvMatrix] DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] - INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl"] + INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl"] diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml index 60ffde9e94..7d39d38223 100644 --- a/acceptance/invariant/test.toml +++ b/acceptance/invariant/test.toml @@ -6,6 +6,8 @@ Ignore = [ "databricks.yml", "plan.json", "*.py", + "*.json", + "app", ] EnvMatrix.INPUT_CONFIG = [ @@ -18,4 +20,8 @@ EnvMatrix.INPUT_CONFIG = [ "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", + "alert.yml.tmpl", + "dashboard.yml.tmpl", + "app.yml.tmpl", + "secret_scope.yml.tmpl", ] From a813d6bcb90548d1474072ec38296a92fdbd6d62 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 15:00:41 +0100 Subject: [PATCH 04/17] Add remaining resource configs (quality monitors and database resources) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete the no_drift invariant test coverage by adding the remaining resource types, bringing the total to 17 working configs. New configs: - quality_monitor (with dependent schema) - database_instance - database_catalog (with dependent database_instance) - synced_database_table (with dependent instance and catalog) Changes: - Add 3 new config templates in configs/ - Fix quality_monitor to use $CURRENT_USER_NAME - Update test.toml with 4 additional configs - Update out.test.toml with full config matrix All 17 configs tested successfully on testserver with both direct and terraform deployment engines, showing zero drift after deploy. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../configs/database_catalog.yml.tmpl | 16 +++++++++++ .../configs/database_instance.yml.tmpl | 9 +++++++ .../configs/quality_monitor.yml.tmpl | 2 +- .../configs/synced_database_table.yml.tmpl | 27 +++++++++++++++++++ acceptance/invariant/no_drift/out.test.toml | 2 +- acceptance/invariant/test.toml | 4 +++ 6 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 acceptance/invariant/configs/database_catalog.yml.tmpl create mode 100644 acceptance/invariant/configs/database_instance.yml.tmpl create mode 100644 acceptance/invariant/configs/synced_database_table.yml.tmpl diff --git a/acceptance/invariant/configs/database_catalog.yml.tmpl b/acceptance/invariant/configs/database_catalog.yml.tmpl new file mode 100644 index 0000000000..175374e32e --- /dev/null +++ b/acceptance/invariant/configs/database_catalog.yml.tmpl @@ -0,0 +1,16 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + database_instances: + instance1: + name: test-db-instance-$UNIQUE_NAME + capacity: CU_1 + + database_catalogs: + foo: + database_instance_name: ${resources.database_instances.instance1.name} + database_name: test_db + name: test-catalog-$UNIQUE_NAME + create_database_if_not_exists: true diff --git a/acceptance/invariant/configs/database_instance.yml.tmpl b/acceptance/invariant/configs/database_instance.yml.tmpl new file mode 100644 index 0000000000..54de57c405 --- /dev/null +++ b/acceptance/invariant/configs/database_instance.yml.tmpl @@ -0,0 +1,9 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + database_instances: + foo: + name: test-db-instance-$UNIQUE_NAME + capacity: CU_1 diff --git a/acceptance/invariant/configs/quality_monitor.yml.tmpl b/acceptance/invariant/configs/quality_monitor.yml.tmpl index 30a985340c..ca0a4e042f 100644 --- a/acceptance/invariant/configs/quality_monitor.yml.tmpl +++ b/acceptance/invariant/configs/quality_monitor.yml.tmpl @@ -11,6 +11,6 @@ resources: quality_monitors: foo: table_name: main.test-schema-$UNIQUE_NAME.test_table - assets_dir: /Workspace/Users/$USER_NAME/monitor_assets_$UNIQUE_NAME + assets_dir: /Workspace/Users/$CURRENT_USER_NAME/monitor_assets_$UNIQUE_NAME output_schema_name: main.test-schema-$UNIQUE_NAME snapshot: {} diff --git a/acceptance/invariant/configs/synced_database_table.yml.tmpl b/acceptance/invariant/configs/synced_database_table.yml.tmpl new file mode 100644 index 0000000000..3a3ec4015a --- /dev/null +++ b/acceptance/invariant/configs/synced_database_table.yml.tmpl @@ -0,0 +1,27 @@ +bundle: + name: test-bundle-$UNIQUE_NAME + + +resources: + database_instances: + instance1: + name: test-db-instance-$UNIQUE_NAME + capacity: CU_1 + + database_catalogs: + catalog1: + database_instance_name: ${resources.database_instances.instance1.name} + database_name: test_db + name: test-catalog-$UNIQUE_NAME + create_database_if_not_exists: true + + synced_database_tables: + foo: + name: ${resources.database_catalogs.catalog1.name}.${resources.database_catalogs.catalog1.database_name}.test_table + database_instance_name: ${resources.database_instances.instance1.name} + logical_database_name: ${resources.database_catalogs.catalog1.database_name} + spec: + source_table_full_name: samples.nyctaxi.trips + scheduling_policy: SNAPSHOT + primary_key_columns: + - tpep_pickup_datetime diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml index eab38e4ac9..19d60aeb77 100644 --- a/acceptance/invariant/no_drift/out.test.toml +++ b/acceptance/invariant/no_drift/out.test.toml @@ -3,4 +3,4 @@ Cloud = true [EnvMatrix] DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] - INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl"] + INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", "quality_monitor.yml.tmpl", "database_instance.yml.tmpl", "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl"] diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml index 7d39d38223..857776a065 100644 --- a/acceptance/invariant/test.toml +++ b/acceptance/invariant/test.toml @@ -24,4 +24,8 @@ EnvMatrix.INPUT_CONFIG = [ "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", + "quality_monitor.yml.tmpl", + "database_instance.yml.tmpl", + "database_catalog.yml.tmpl", + "synced_database_table.yml.tmpl", ] From 775159e360220e96861b703b71cf269936138c37 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 15:19:34 +0100 Subject: [PATCH 05/17] update check_plan.py to print whole original input --- acceptance/bin/check_plan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/acceptance/bin/check_plan.py b/acceptance/bin/check_plan.py index 522d2defad..2a2eb79706 100755 --- a/acceptance/bin/check_plan.py +++ b/acceptance/bin/check_plan.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import sys import json +import pprint def check_plan(path): @@ -13,11 +14,10 @@ def check_plan(path): for key, value in data["plan"].items(): if value["action"] != "skip": print("Unexpected action in", key, value["action"]) - pprint.pprint(value) - print() changes_detected += 1 if changes_detected: + print(data, flush=True) sys.exit(10) From e9c4ea46b8fb513eff49c2d64685d866ae08844e Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 15:21:30 +0100 Subject: [PATCH 06/17] rm quality_monitor.yml.tmpl, requires more complex setup with table creation --- .../invariant/configs/quality_monitor.yml.tmpl | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 acceptance/invariant/configs/quality_monitor.yml.tmpl diff --git a/acceptance/invariant/configs/quality_monitor.yml.tmpl b/acceptance/invariant/configs/quality_monitor.yml.tmpl deleted file mode 100644 index ca0a4e042f..0000000000 --- a/acceptance/invariant/configs/quality_monitor.yml.tmpl +++ /dev/null @@ -1,16 +0,0 @@ -bundle: - name: test-bundle-$UNIQUE_NAME - - -resources: - schemas: - schema1: - catalog_name: main - name: test-schema-$UNIQUE_NAME - - quality_monitors: - foo: - table_name: main.test-schema-$UNIQUE_NAME.test_table - assets_dir: /Workspace/Users/$CURRENT_USER_NAME/monitor_assets_$UNIQUE_NAME - output_schema_name: main.test-schema-$UNIQUE_NAME - snapshot: {} From 3e7fb40ec778e57325a5e7600cfbf1a9e05888e2 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 15:22:17 +0100 Subject: [PATCH 07/17] Fix app name length to be under 30 characters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit App names must be between 2-30 characters. Changed from 'test-app-' to 'app-' to fit within the limit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- acceptance/invariant/configs/app.yml.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance/invariant/configs/app.yml.tmpl b/acceptance/invariant/configs/app.yml.tmpl index 1592aae93f..01b7591702 100644 --- a/acceptance/invariant/configs/app.yml.tmpl +++ b/acceptance/invariant/configs/app.yml.tmpl @@ -5,5 +5,5 @@ bundle: resources: apps: foo: - name: test-app-$UNIQUE_NAME + name: app-$UNIQUE_NAME source_code_path: ./app From 44e5b0a361c554b9d009e3fbc136cdf5f180d325 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 15:24:34 +0100 Subject: [PATCH 08/17] rm quality monitor --- acceptance/invariant/no_drift/out.test.toml | 2 +- acceptance/invariant/test.toml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml index 19d60aeb77..11a663f96a 100644 --- a/acceptance/invariant/no_drift/out.test.toml +++ b/acceptance/invariant/no_drift/out.test.toml @@ -3,4 +3,4 @@ Cloud = true [EnvMatrix] DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] - INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", "quality_monitor.yml.tmpl", "database_instance.yml.tmpl", "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl"] + INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", "database_instance.yml.tmpl", "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl"] diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml index 857776a065..41a299786a 100644 --- a/acceptance/invariant/test.toml +++ b/acceptance/invariant/test.toml @@ -24,7 +24,6 @@ EnvMatrix.INPUT_CONFIG = [ "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", - "quality_monitor.yml.tmpl", "database_instance.yml.tmpl", "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl", From 9c36000b553b60356afe4f2952cf94e0f94953a3 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 16:56:52 +0100 Subject: [PATCH 09/17] improve check_plan.py --- acceptance/bin/check_plan.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/acceptance/bin/check_plan.py b/acceptance/bin/check_plan.py index 2a2eb79706..33db4c5efc 100755 --- a/acceptance/bin/check_plan.py +++ b/acceptance/bin/check_plan.py @@ -6,18 +6,22 @@ def check_plan(path): with open(path) as fobj: - data = fobj.read() + raw = fobj.read() changes_detected = 0 - data = json.loads(data) - for key, value in data["plan"].items(): - if value["action"] != "skip": - print("Unexpected action in", key, value["action"]) - changes_detected += 1 + try: + data = json.loads(raw) + for key, value in data["plan"].items(): + if value["action"] != "skip": + print(f"Unexpected {action=} for {key}") + changes_detected += 1 + except Exception: + print(raw, flush=True) + raise if changes_detected: - print(data, flush=True) + print(raw, flush=True) sys.exit(10) From 333f84544fbc649a3cb30fc9c751dc4a45980062 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 16:58:02 +0100 Subject: [PATCH 10/17] enable on direct only --- acceptance/invariant/test.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml index 41a299786a..14e212665b 100644 --- a/acceptance/invariant/test.toml +++ b/acceptance/invariant/test.toml @@ -10,6 +10,12 @@ Ignore = [ "app", ] +EnvMatrix.DATABRICKS_BUNDLE_ENGINE = [ + "direct", + # These tests work on terraform but commented out to save time on test run + #"terraform", +] + EnvMatrix.INPUT_CONFIG = [ "schema.yml.tmpl", "job.yml.tmpl", From f0bea744b152bcc243b1c0eb010629f2f8f91444 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:01:14 +0100 Subject: [PATCH 11/17] add README.md --- acceptance/invariant/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 acceptance/invariant/README.md diff --git a/acceptance/invariant/README.md b/acceptance/invariant/README.md new file mode 100644 index 0000000000..cf6f44b775 --- /dev/null +++ b/acceptance/invariant/README.md @@ -0,0 +1,6 @@ +Invariant tests are acceptance tests that can be run against many configs to check for certains properties. +Unlike regular acceptance tests full output is not recorded, unless the condition is not met. For example, +no\_drift test checks that there are no actions planned after successful deploy. If that's not the case, the +test will dump full JSON plan to the output. + +In order to add a new test, add a config to configs/ and include it in test.toml. From 72425d9b57e494e7e74568a3ddb8b071b2d2bfdf Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:01:26 +0100 Subject: [PATCH 12/17] update out tests --- acceptance/invariant/no_drift/out.test.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml index 11a663f96a..1a5793ca26 100644 --- a/acceptance/invariant/no_drift/out.test.toml +++ b/acceptance/invariant/no_drift/out.test.toml @@ -2,5 +2,5 @@ Local = true Cloud = true [EnvMatrix] - DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] + DATABRICKS_BUNDLE_ENGINE = ["direct"] INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", "database_instance.yml.tmpl", "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl"] From e787c137ffa6cd4394f194c2634f8d49775dd798 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:08:29 +0100 Subject: [PATCH 13/17] fix README --- acceptance/invariant/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/acceptance/invariant/README.md b/acceptance/invariant/README.md index cf6f44b775..184d3f541c 100644 --- a/acceptance/invariant/README.md +++ b/acceptance/invariant/README.md @@ -1,6 +1,6 @@ -Invariant tests are acceptance tests that can be run against many configs to check for certains properties. +Invariant tests are acceptance tests that can be run against many configs to check for certain properties. Unlike regular acceptance tests full output is not recorded, unless the condition is not met. For example, -no\_drift test checks that there are no actions planned after successful deploy. If that's not the case, the +no_drift test checks that there are no actions planned after successful deploy. If that's not the case, the test will dump full JSON plan to the output. In order to add a new test, add a config to configs/ and include it in test.toml. From 70b6a90afd70ab1eb379caff38a2d2496c530b02 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:14:01 +0100 Subject: [PATCH 14/17] add docstring --- acceptance/bin/check_plan.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/acceptance/bin/check_plan.py b/acceptance/bin/check_plan.py index 33db4c5efc..b570e09749 100755 --- a/acceptance/bin/check_plan.py +++ b/acceptance/bin/check_plan.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +""" +Check that all actions in plan are "skip". +""" import sys import json import pprint From c1a18736d87c3883b135dbe099a25fd6319b0908 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:14:50 +0100 Subject: [PATCH 15/17] whitespace --- acceptance/bin/check_plan.py | 1 + acceptance/invariant/configs/alert.yml.tmpl | 1 - acceptance/invariant/configs/app.yml.tmpl | 1 - acceptance/invariant/configs/cluster.yml.tmpl | 1 - acceptance/invariant/configs/dashboard.yml.tmpl | 1 - 5 files changed, 1 insertion(+), 4 deletions(-) diff --git a/acceptance/bin/check_plan.py b/acceptance/bin/check_plan.py index b570e09749..eeb1480690 100755 --- a/acceptance/bin/check_plan.py +++ b/acceptance/bin/check_plan.py @@ -2,6 +2,7 @@ """ Check that all actions in plan are "skip". """ + import sys import json import pprint diff --git a/acceptance/invariant/configs/alert.yml.tmpl b/acceptance/invariant/configs/alert.yml.tmpl index be0e0384cd..ea4acf7ffa 100644 --- a/acceptance/invariant/configs/alert.yml.tmpl +++ b/acceptance/invariant/configs/alert.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: alerts: foo: diff --git a/acceptance/invariant/configs/app.yml.tmpl b/acceptance/invariant/configs/app.yml.tmpl index 01b7591702..7506f8fdc9 100644 --- a/acceptance/invariant/configs/app.yml.tmpl +++ b/acceptance/invariant/configs/app.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: apps: foo: diff --git a/acceptance/invariant/configs/cluster.yml.tmpl b/acceptance/invariant/configs/cluster.yml.tmpl index 488dc5aded..aece5a3619 100644 --- a/acceptance/invariant/configs/cluster.yml.tmpl +++ b/acceptance/invariant/configs/cluster.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: clusters: foo: diff --git a/acceptance/invariant/configs/dashboard.yml.tmpl b/acceptance/invariant/configs/dashboard.yml.tmpl index a8edff51d4..a8a6d95ba1 100644 --- a/acceptance/invariant/configs/dashboard.yml.tmpl +++ b/acceptance/invariant/configs/dashboard.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: dashboards: foo: From 337a18ba7dd430b335e0ce2417bc97889a1f7db8 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:30:13 +0100 Subject: [PATCH 16/17] clean up --- acceptance/invariant/configs/database_catalog.yml.tmpl | 1 - acceptance/invariant/configs/database_instance.yml.tmpl | 1 - acceptance/invariant/configs/experiment.yml.tmpl | 1 - acceptance/invariant/configs/job.yml.tmpl | 1 - acceptance/invariant/configs/model.yml.tmpl | 1 - acceptance/invariant/configs/model_serving_endpoint.yml.tmpl | 1 - acceptance/invariant/configs/pipeline.yml.tmpl | 1 - acceptance/invariant/configs/registered_model.yml.tmpl | 1 - acceptance/invariant/configs/schema.yml.tmpl | 1 - acceptance/invariant/configs/secret_scope.yml.tmpl | 1 - acceptance/invariant/configs/sql_warehouse.yml.tmpl | 1 - acceptance/invariant/configs/synced_database_table.yml.tmpl | 1 - acceptance/invariant/configs/volume.yml.tmpl | 1 - 13 files changed, 13 deletions(-) diff --git a/acceptance/invariant/configs/database_catalog.yml.tmpl b/acceptance/invariant/configs/database_catalog.yml.tmpl index 175374e32e..78d20eee42 100644 --- a/acceptance/invariant/configs/database_catalog.yml.tmpl +++ b/acceptance/invariant/configs/database_catalog.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: database_instances: instance1: diff --git a/acceptance/invariant/configs/database_instance.yml.tmpl b/acceptance/invariant/configs/database_instance.yml.tmpl index 54de57c405..1498593596 100644 --- a/acceptance/invariant/configs/database_instance.yml.tmpl +++ b/acceptance/invariant/configs/database_instance.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: database_instances: foo: diff --git a/acceptance/invariant/configs/experiment.yml.tmpl b/acceptance/invariant/configs/experiment.yml.tmpl index 2526d0f8d2..58a442e523 100644 --- a/acceptance/invariant/configs/experiment.yml.tmpl +++ b/acceptance/invariant/configs/experiment.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: experiments: foo: diff --git a/acceptance/invariant/configs/job.yml.tmpl b/acceptance/invariant/configs/job.yml.tmpl index 9478e3e613..c94cc5bc8b 100644 --- a/acceptance/invariant/configs/job.yml.tmpl +++ b/acceptance/invariant/configs/job.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: jobs: foo: diff --git a/acceptance/invariant/configs/model.yml.tmpl b/acceptance/invariant/configs/model.yml.tmpl index 48d6039cb3..e105a731a3 100644 --- a/acceptance/invariant/configs/model.yml.tmpl +++ b/acceptance/invariant/configs/model.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: models: foo: diff --git a/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl b/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl index fb215c5197..102f14c049 100644 --- a/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl +++ b/acceptance/invariant/configs/model_serving_endpoint.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: model_serving_endpoints: foo: diff --git a/acceptance/invariant/configs/pipeline.yml.tmpl b/acceptance/invariant/configs/pipeline.yml.tmpl index d9c4693dc8..8e412adbcd 100644 --- a/acceptance/invariant/configs/pipeline.yml.tmpl +++ b/acceptance/invariant/configs/pipeline.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: pipelines: foo: diff --git a/acceptance/invariant/configs/registered_model.yml.tmpl b/acceptance/invariant/configs/registered_model.yml.tmpl index da3a98d34f..5f605085d7 100644 --- a/acceptance/invariant/configs/registered_model.yml.tmpl +++ b/acceptance/invariant/configs/registered_model.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: registered_models: foo: diff --git a/acceptance/invariant/configs/schema.yml.tmpl b/acceptance/invariant/configs/schema.yml.tmpl index a997f8bfc2..658dce88dd 100644 --- a/acceptance/invariant/configs/schema.yml.tmpl +++ b/acceptance/invariant/configs/schema.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: schemas: foo: diff --git a/acceptance/invariant/configs/secret_scope.yml.tmpl b/acceptance/invariant/configs/secret_scope.yml.tmpl index e51f578bfe..e891ad0000 100644 --- a/acceptance/invariant/configs/secret_scope.yml.tmpl +++ b/acceptance/invariant/configs/secret_scope.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: secret_scopes: foo: diff --git a/acceptance/invariant/configs/sql_warehouse.yml.tmpl b/acceptance/invariant/configs/sql_warehouse.yml.tmpl index 5389d9ff2c..3fefbdaa35 100644 --- a/acceptance/invariant/configs/sql_warehouse.yml.tmpl +++ b/acceptance/invariant/configs/sql_warehouse.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: sql_warehouses: foo: diff --git a/acceptance/invariant/configs/synced_database_table.yml.tmpl b/acceptance/invariant/configs/synced_database_table.yml.tmpl index 3a3ec4015a..ebb8161dc2 100644 --- a/acceptance/invariant/configs/synced_database_table.yml.tmpl +++ b/acceptance/invariant/configs/synced_database_table.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: database_instances: instance1: diff --git a/acceptance/invariant/configs/volume.yml.tmpl b/acceptance/invariant/configs/volume.yml.tmpl index 6cd0fe1d58..69d462b942 100644 --- a/acceptance/invariant/configs/volume.yml.tmpl +++ b/acceptance/invariant/configs/volume.yml.tmpl @@ -1,7 +1,6 @@ bundle: name: test-bundle-$UNIQUE_NAME - resources: volumes: foo: From f1c5164d14058005227b584dea8743ca6f215cb0 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Mon, 19 Jan 2026 17:42:25 +0100 Subject: [PATCH 17/17] update order --- acceptance/invariant/no_drift/out.test.toml | 2 +- acceptance/invariant/test.toml | 22 ++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/acceptance/invariant/no_drift/out.test.toml b/acceptance/invariant/no_drift/out.test.toml index 1a5793ca26..4f2b1ccc28 100644 --- a/acceptance/invariant/no_drift/out.test.toml +++ b/acceptance/invariant/no_drift/out.test.toml @@ -3,4 +3,4 @@ Cloud = true [EnvMatrix] DATABRICKS_BUNDLE_ENGINE = ["direct"] - INPUT_CONFIG = ["schema.yml.tmpl", "job.yml.tmpl", "pipeline.yml.tmpl", "experiment.yml.tmpl", "registered_model.yml.tmpl", "volume.yml.tmpl", "cluster.yml.tmpl", "model_serving_endpoint.yml.tmpl", "model.yml.tmpl", "alert.yml.tmpl", "dashboard.yml.tmpl", "app.yml.tmpl", "secret_scope.yml.tmpl", "database_instance.yml.tmpl", "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl"] + INPUT_CONFIG = ["alert.yml.tmpl", "app.yml.tmpl", "cluster.yml.tmpl", "dashboard.yml.tmpl", "database_catalog.yml.tmpl", "database_instance.yml.tmpl", "experiment.yml.tmpl", "job.yml.tmpl", "model.yml.tmpl", "model_serving_endpoint.yml.tmpl", "pipeline.yml.tmpl", "registered_model.yml.tmpl", "schema.yml.tmpl", "secret_scope.yml.tmpl", "synced_database_table.yml.tmpl", "volume.yml.tmpl"] diff --git a/acceptance/invariant/test.toml b/acceptance/invariant/test.toml index 14e212665b..80a8f50378 100644 --- a/acceptance/invariant/test.toml +++ b/acceptance/invariant/test.toml @@ -17,20 +17,20 @@ EnvMatrix.DATABRICKS_BUNDLE_ENGINE = [ ] EnvMatrix.INPUT_CONFIG = [ - "schema.yml.tmpl", + "alert.yml.tmpl", + "app.yml.tmpl", + "cluster.yml.tmpl", + "dashboard.yml.tmpl", + "database_catalog.yml.tmpl", + "database_instance.yml.tmpl", + "experiment.yml.tmpl", "job.yml.tmpl", + "model.yml.tmpl", + "model_serving_endpoint.yml.tmpl", "pipeline.yml.tmpl", - "experiment.yml.tmpl", "registered_model.yml.tmpl", - "volume.yml.tmpl", - "cluster.yml.tmpl", - "model_serving_endpoint.yml.tmpl", - "model.yml.tmpl", - "alert.yml.tmpl", - "dashboard.yml.tmpl", - "app.yml.tmpl", + "schema.yml.tmpl", "secret_scope.yml.tmpl", - "database_instance.yml.tmpl", - "database_catalog.yml.tmpl", "synced_database_table.yml.tmpl", + "volume.yml.tmpl", ]