Skip to content

Add direct-mode bundle support for AI Gateway model_service - #6525

Open
alex-khakhlyuk wants to merge 1 commit into
mainfrom
aigov-dabs-model-service
Open

Add direct-mode bundle support for AI Gateway model_service#6525
alex-khakhlyuk wants to merge 1 commit into
mainfrom
aigov-dabs-model-service

Conversation

@alex-khakhlyuk

Copy link
Copy Markdown
Member

Adds direct-engine Databricks Asset Bundle support for the Unity Catalog AI Gateway model service securable (model_services), so it can be declared and deployed from databricks.yml. First of a stacked split of #6410 (mcp_services and model_provider_services follow). Direct engine only.

  • bundle/config/resources/model_service.go: flat ConfigResource exposing the immutable parent + model_service_id identity plus the mutable comment/config body.
  • bundle/direct/dresources/model_service.go: CRUD onto the AiGateway service; DoRead reconstructs identity from the server-derived name so it participates in drift detection.
  • resources.yml: parent + model_service_id as immutable id fields; the server-computed output-only config fields (inference_table.table/is_deleted and routing.destinations[]/fallback.destinations[].is_deleted) suppressed to avoid phantom drift.
  • Registration, testserver implementation, regenerated schema, acceptance (basic + remote-delete + bind), and an invariant config.

Scope is strictly model_service: no changes to jobs suppression or other resources. Owner is deferred (the API returns effective_owner); permissions use grants; no Catalog Explorer URL is wired up yet.

Changes

Why

Tests

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Approval status: pending

/acceptance/bundle/ - needs approval

24 files changed
Suggested: @denik
Also eligible: @janniklasrose, @pietern, @andrewnester, @shreyas-goenka, @anton-107, @lennartkats-db

/bundle/ - needs approval

18 files changed
Suggested: @denik
Also eligible: @janniklasrose, @pietern, @andrewnester, @shreyas-goenka, @anton-107, @lennartkats-db

General files (require maintainer)

Files: libs/testserver/fake_workspace.go, libs/testserver/handlers.go, libs/testserver/model_services.go
Based on git history:

  • @denik -- recent work in libs/testserver/, bundle/direct/dresources/, acceptance/bundle/invariant/

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @shreyas-goenka, @simonfaltum, @renaudhartert-db, @janniklasrose, @lennartkats-db, @rugpanov, @rclarey) can approve all areas.
See OWNERS for ownership rules.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 42e7f39

Run: 33868972681

Env 🔄​flaky 💚​RECOVERED ✅​pass 🙈​skip Time
💚​ aws linux 1 309 345 10:39
🔄​ aws windows 1 1 310 343 13:20
💚​ azure linux 1 308 345 10:07
💚​ azure windows 1 310 343 13:01
💚​ gcp linux 1 309 345 11:41
💚​ gcp windows 1 311 343 11:46
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🔄​ TestSyncIncrementalFileOverwritesFolder ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p
Top 11 slowest tests (at least 2 minutes):
duration env testname
4:47 azure windows TestAccept
4:15 gcp windows TestAccept
4:02 aws windows TestAccept
3:55 aws linux TestAccept
3:54 gcp linux TestAccept
3:46 azure linux TestAccept
2:38 aws windows TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl
2:18 aws windows TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl
2:13 gcp linux TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl
2:06 azure windows TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl
2:04 gcp windows TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=app.yml.tmpl

@alex-khakhlyuk
alex-khakhlyuk force-pushed the aigov-dabs-model-service branch from c7221de to 61cb10b Compare September 4, 2026 11:03
Adds direct-engine Databricks Asset Bundle support for the Unity Catalog AI
Gateway model service securable (model_services), so it can be declared and
deployed from databricks.yml. First of a stacked split of #6410
(mcp_services and model_provider_services follow). Direct engine only.

- bundle/config/resources/model_service.go: flat ConfigResource exposing the
  immutable parent + model_service_id identity plus the mutable comment/config
  body.
- bundle/direct/dresources/model_service.go: CRUD onto the AiGateway service;
  DoRead reconstructs identity from the server-derived name so it participates
  in drift detection.
- resources.yml: parent + model_service_id as immutable id fields; the
  server-computed output-only config fields (inference_table.table/is_deleted
  and routing.destinations[*]/fallback.destinations[*].is_deleted) suppressed
  to avoid phantom drift.
- Registration, testserver implementation, regenerated schema, acceptance
  (basic + remote-delete + bind), and an invariant config.

- Wired model_services into the direct-only Terraform-lifecycle ignore list and
  the statemgmt full-resource-coverage test suite, and fully populated the SDK
  struct literals so the dresources exhaustruct lint passes.

Scope is strictly model_service: no changes to jobs suppression or other
resources. Owner is deferred (the API returns effective_owner); permissions
use grants; no Catalog Explorer URL is wired up yet.

Co-authored-by: Isaac <no-reply@databricks.com>
@alex-khakhlyuk
alex-khakhlyuk force-pushed the aigov-dabs-model-service branch from 61cb10b to 42e7f39 Compare September 4, 2026 11:38
Sign up for free to 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.

2 participants