Fix Trino catalog creation: use fs.native-s3.enabled (Trino 476)#681
Merged
Conversation
buildCatalogProperties emitted `fs.s3.enabled=true`, which Trino 476
rejects at CREATE CATALOG ("Configuration property 'fs.s3.enabled' was
not used"), cascading s3.region + s3.iam-role into "unused" and breaking
every per-org Iceberg catalog.
Trino removed the legacy Hadoop S3 filesystem; since Trino 458 the native
S3 filesystem must be enabled per-catalog with `fs.native-s3.enabled=true`.
The prop set had drifted from the proven-working maintenance script
(charts/trino/files/trino_maintenance.py) the doc comment claims to
mirror -- it uses fs.native-s3.enabled + s3.region + s3.iam-role. This
restores that match (one property name).
Latent until now: no org could be Trino-enabled until the numeric-org-id
validator was removed (#672), so CREATE CATALOG had never executed
end-to-end. Found live enabling the first Trino org (ben-cnpg-ice) in
mw-dev, where the reconcile loops on this error every ~10s.
- buildCatalogProperties: fs.s3.enabled -> fs.native-s3.enabled
- Correct the doc comment + the unit test that asserted the wrong name
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
buildCatalogPropertiesemittedfs.s3.enabled=truein each per-org Iceberg catalog. Trino 476 rejects it atCREATE CATALOG:Trino removed the legacy Hadoop S3 filesystem; since Trino 458 the native S3 filesystem must be enabled per-catalog with
fs.native-s3.enabled=true. The unrecognized toggle cascadess3.region+s3.iam-roleinto "unused," so every per-org catalog fails to create.Root cause — drift
The prop set drifted from the proven-working maintenance script (
charts/trino/files/trino_maintenance.py) that the doc comment claims to mirror — the script usesfs.native-s3.enabled+s3.region+s3.iam-role; the Go code hadfs.s3.enabled. This restores the match (one property name). The other two props were already correct and only failed because the native filesystem never turned on.Latent until now: no org could be Trino-enabled until the numeric-org-id validator was removed (#672), so
CREATE CATALOGhad never executed end-to-end against the real coordinator.Found live
Enabling the first real Trino org (
ben-cnpg-ice) in mw-dev: the projections (resource-groups, auth files) succeed, then the reconcile loops on thisCREATE CATALOGerror every ~10s.Changes
buildCatalogProperties:fs.s3.enabled→fs.native-s3.enabled.Test
go build/go test -tags kubernetes ./controlplane/provisioner— pass.org_ben_cnpg_ice_icebergis created with no re-enable.Follow-up (not in this PR)
The Trino coordinator catalog-creation path has no e2e harness coverage — the harness is PG-wire-scoped and never reaches the coordinator, which is why this slipped through (unit tests assert the static property string; nothing asserts Trino accepts it). A regression assertion (enable Trino → assert the catalog exists on the coordinator) is a new harness capability worth its own PR. Asserting only the resource-groups projection would not catch this — projections succeed before the failing
CREATE CATALOG.🤖 Generated with Claude Code