chore(iceberg): remove dead S3 Tables backend#648
Open
benben wants to merge 1 commit into
Open
Conversation
S3 Tables was the original Iceberg backend; Lakekeeper has replaced it end-to-end (see #635 / mw-dev validation). This rip-out drops the unused S3 Tables code path entirely — both backends ATTACH against DuckDB iceberg, but the credential/secret shape and ATTACH SQL are incompatible, so the dual-backend dispatcher was just dead code. Production code: - server/iceberg: drop BackendS3Tables, TableBucket, BuildIcebergAttachStmt - server/server.go: collapse AttachIcebergCatalog → Lakekeeper-only (drop attachS3TablesIcebergCatalog) - duckdbservice/activation.go: drop TableBucket from sameTenantActivationRuntime - configresolve, configloader, cliflags, cmd/duckgres-worker: drop --iceberg-table-bucket / DUCKGRES_ICEBERG_TABLE_BUCKET / YAML knob - controlplane/configstore: drop ManagedWarehouseIceberg.TableBucketArn, IcebergBackendS3Tables constant, migrateIcebergBackendBackfill one-shot - controlplane/admin: drop iceberg_table_bucket_arn from update column list - controlplane/org_router, shared_worker_activator: drop backend switch - controlplane/provisioner: drop addIcebergStatusUpdates + applyIcebergUpdatesToWarehouse + tableBucketArn read on Duckling status; Lakekeeper readiness is owned by reconcileLakekeeper The Backend column / constant is retained for forward-compat — empty or "s3_tables" rows now resolve to lakekeeper rather than dispatching. The DB column iceberg_table_bucket_arn stays in the schema (GORM doesn't drop columns) and is simply ignored. Tests: - delete server/iceberg/dispatch_test.go (dispatcher gone) - delete tests/k8s/iceberg_test.go (entirely S3-Tables-shaped; no Lakekeeper k8s test replacement in this PR — unit coverage in controlplane/shared_worker_activator_iceberg_test.go validates the Lakekeeper activation wiring) - trim S3 Tables cases from migration_test, dispatch checks, refresh, column metadata, controller, activator tests - main_test iceberg precedence test now exercises region/namespace knobs that remain
bf52fff to
f05e2e6
Compare
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
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.
S3 Tables was the original Iceberg backend; Lakekeeper has replaced it
end-to-end (see #635 / mw-dev validation across 9 duckling combos).
This rip-out drops the unused S3 Tables code path entirely — both
backends ATTACH against DuckDB iceberg, but the credential/secret shape
and ATTACH SQL are incompatible, so the dual-backend dispatcher was just
dead code carrying configuration and tests for a path nobody hits.
Production code
server/iceberg: dropBackendS3Tables,TableBucket,BuildIcebergAttachStmtserver/server.go: collapseAttachIcebergCatalog→ Lakekeeper-only(drop
attachS3TablesIcebergCatalog)duckdbservice/activation.go: dropTableBucketfromsameTenantActivationRuntimeconfigresolve/configloader/cliflags/cmd/duckgres-worker:drop
--iceberg-table-bucket,DUCKGRES_ICEBERG_TABLE_BUCKET, YAML knobcontrolplane/configstore: dropManagedWarehouseIceberg.TableBucketArn,IcebergBackendS3Tablesconst,migrateIcebergBackendBackfillone-shotcontrolplane/admin: dropiceberg_table_bucket_arnfrom update column listcontrolplane/org_router/shared_worker_activator: drop backend switchcontrolplane/provisioner: dropaddIcebergStatusUpdates+applyIcebergUpdatesToWarehouse+tableBucketArnread on Ducklingstatus; Lakekeeper readiness is owned by
reconcileLakekeeperThe
Backendcolumn / constant is retained for forward-compat — emptyor legacy
"s3_tables"rows now resolve tolakekeeperrather thandispatching. The DB column
iceberg_table_bucket_arnstays in theschema (GORM doesn't drop columns) and is simply ignored.
Tests
server/iceberg/dispatch_test.go(dispatcher gone)tests/k8s/iceberg_test.go(entirely S3-Tables-shaped; noLakekeeper k8s test replacement in this PR — unit coverage in
controlplane/shared_worker_activator_iceberg_test.govalidates theLakekeeper activation wiring)
column metadata, controller, activator tests
main_testiceberg precedence test now exercises region/namespaceknobs that remain
🤖 Generated with Claude Code