Vector Search endpoint support (direct only)#4887
Vector Search endpoint support (direct only)#4887janniklasrose wants to merge 36 commits intomainfrom
Conversation
andrewnester
left a comment
There was a problem hiding this comment.
Could you please add tests for bind / unbind for this resources before merging?
https://github.com/databricks/cli/tree/main/acceptance/bundle/deployment/bind
| } | ||
| } | ||
| info := remote.EndpointInfo | ||
| budgetPolicyId := info.EffectiveBudgetPolicyId // TODO: use info.BudgetPolicyId when available |
There was a problem hiding this comment.
Why this TODO though? Shouldn't we alway use EffectiveBudgetPolicyId anyway?
| } | ||
|
|
||
| func (r *ResourceVectorSearchEndpoint) DoUpdate(ctx context.Context, id string, config *vectorsearch.CreateEndpoint, entry *PlanEntry) (*VectorSearchRefreshOutput, error) { | ||
| if entry.Changes.HasChange(pathBudgetPolicyId) { |
There was a problem hiding this comment.
Did you consider sending these two requests in parallel in separate goroutines? pros / cons
There was a problem hiding this comment.
Don't expect this to be much of a bottleneck, but they're independent so we could. There's precedent in model_serving_endpoint.go to make them sequential on purpose (though granted it's following Terraform there, which only does 1 call for vector search since they're missing the min_qps path).
There was a problem hiding this comment.
I will double-check with the VS team if the APIs are safe to call in parallel and update in a follow-up.
Changes
Adds
vector_search_endpointsas a first-class resource type, using the direct deployment engine (only, no TF support).New configuration surface
Required fields:
name,endpoint_type. Optional:min_qps,budget_policy_id,permissions.Key points to note
State ID = endpoint name. The CRUD API identifies endpoints by name; the UUID
(
endpoint_uuid) is stored separately in the refresh output for use by the permissions API.endpoint_typeis immutable. Changing it triggers delete + recreate (resources.yml).Two separate update APIs.
DoUpdatedispatches to:UpdateEndpointBudgetPolicywhenbudget_policy_idchangesPatchEndpointwhenmin_qpschangesThese can fire in the same deploy if both fields change.
budget_policy_iddrift is suppressed. The API returnseffective_budget_policy_id(which includes inherited workspace policies), not the user-set value. Until the SDK
exposes
budget_policy_idseparately, remote changes to this field are ignored(
reason: effective_vs_requestedinresources.yml). See TODO inbundle/direct/dresources/vector_search_endpoint.go:53.Permissions use UUID, not name. The
PreparePermissionsInputConfigfunction uses${...endpoint_uuid}as the object ID when constructing the permissions API path forvector search endpoints.
Direct-only validation.
ValidateDirectOnlyResources(bundle/config/mutator/) emitsan error at plan/deploy time if vector_search_endpoints are present in a non-direct bundle.
Vector Search Endpoints have no Terraform provider.
No dev-mode name prefix. Like UC resources, vector search endpoint names are NOT
prefixed with the dev user name in development mode.
Tests