Skip to content

bundle: don't set edition/channel defaults for ingestion pipelines#5418

Draft
shreyas-goenka wants to merge 3 commits into
mainfrom
ingestion-pipeline-defaults
Draft

bundle: don't set edition/channel defaults for ingestion pipelines#5418
shreyas-goenka wants to merge 3 commits into
mainfrom
ingestion-pipeline-defaults

Conversation

@shreyas-goenka
Copy link
Copy Markdown
Contributor

@shreyas-goenka shreyas-goenka commented Jun 2, 2026

Ingestion pipelines (ingestion_definition) use serverless compute. Setting edition or channel on them causes:

cannot create pipeline: You cannot provide cluster settings when using serverless compute

This PR skips those defaults for ingestion pipelines. Regular DLT pipelines are unaffected.

Note: The Terraform provider applies the same defaults unconditionally at the provider level (resource_pipeline.go:253), so a companion fix is needed there for TF-engine users.

Ingestion pipelines (those with `ingestion_definition`) use serverless
compute by default. The Databricks API rejects `edition` and `channel`
fields as "cluster settings" when a pipeline runs on serverless compute.

Previously, DABs unconditionally set `edition: ADVANCED` and `channel:
CURRENT` as defaults for all pipeline types. This caused creation of
LakeFlow Connect ingestion pipelines to fail with:
  "cannot create pipeline: You cannot provide cluster settings when
   using serverless compute"

The fix conditionally applies these defaults only to pipelines without
`ingestion_definition`. The test `change-ingestion-definition` is
restructured to use per-engine output files since the TF provider
independently adds these defaults for all pipeline types.

Co-authored-by: Shreyas Goenka <shreyas.goenka@databricks.com>
@eng-dev-ecosystem-bot
Copy link
Copy Markdown
Collaborator

eng-dev-ecosystem-bot commented Jun 2, 2026

Commit: 9c7c82c

Run: 26950445109

Replace the dyn.Value pattern walk with a direct loop over
b.Config.Resources.Pipelines to conditionally apply edition/channel
defaults. Also remove the now-unused setPipelineDefault helper.

Add acceptance/bundle/resources/pipelines/ingestion-defaults, a cloud
test (direct engine) that deploys an ingestion pipeline and asserts
edition and channel are absent from the POST /api/2.0/pipelines request
body. The deploy fails with "connection not found" — not "cluster
settings" — confirming the fix.

Co-authored-by: Shreyas Goenka <shreyas.goenka@databricks.com>
@shreyas-goenka shreyas-goenka changed the title bundle: skip edition/channel defaults for ingestion pipelines bundle: don't set edition/channel defaults for ingestion pipelines Jun 4, 2026
Extends the ingestion-defaults acceptance test to run both direct and
terraform engines, showing the contrast:
- Direct engine: edition/channel absent from POST (DABs fix working)
- Terraform engine: edition/channel present (provider-level SetDefault,
  companion fix in terraform-provider-databricks#5783)

Badness clause documents the known terraform engine gap.

Co-authored-by: Shreyas Goenka <shreyas.goenka@databricks.com>
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