feat(iceberg): storage & catalog parity for the ingestr destination - #2462
feat(iceberg): storage & catalog parity for the ingestr destination#2462iremcaginyurtturk wants to merge 1 commit into
Conversation
Prompt To Fix All With AI### Issue 1
pkg/iceberg/config.go:217-220
**Warehouse-less catalogs pass validation**
When SQLite, Postgres, or Hive omits `storage`, or Hadoop has neither `catalog.path` nor `storage`, this branch emits an Iceberg URI without a warehouse, causing ingestr destination initialization or table creation to fail at runtime.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
e529aea to
5c9f9f7
Compare
|
Reviews (2): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
5c9f9f7 to
6f79260
Compare
Prompt To Fix All With AI### Issue 1
pkg/iceberg/config.go:100-102
**Catalog-owned SQL warehouse rejected**
When a generic SQL catalog supplies its own warehouse and the connection omits storage, `catalogNeedsWarehouse` still requires a client-supplied warehouse, causing `GetIngestrURI` to reject the valid connection before ingestr starts.
```suggestion
case config.IcebergCatalogSQLite, config.IcebergCatalogPostgres,
config.IcebergCatalogHive, config.IcebergCatalogHadoop:
return true
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (3): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
6f79260 to
ededfe2
Compare
|
Reviews (4): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
ededfe2 to
f4281fb
Compare
Prompt To Fix All With AI### Issue 1
pkg/iceberg/config.go:214-217
**Optional storage remains schema-required**
When a Glue, REST, or SQL catalog supplies its warehouse and omits `storage`, this branch accepts the configuration, but the reflected connection schema still requires `storage`, causing schema-aware clients to reject the newly supported configuration before `GetIngestrURI` runs.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (5): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
f4281fb to
7baa637
Compare
|
Reviews (6): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
7baa637 to
15132a1
Compare
|
Reviews (7): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
Extend the Iceberg ingestr-destination connection to cover the rest of ingestr's URI surface: - REST catalog: rest_use_ssl to select HTTPS (Polaris, Unity, Tabular, ...) - SQL catalog: driver/dialect for the generic sql catalog - Storage: native GCS (key_file/key_json), local filesystem, and Hadoop object-storage warehouses (catalog path is now optional) - Storage block is optional when the catalog supplies its own warehouse Docs: per-backend storage examples (S3, MinIO/R2, GCS native, GCS interop, local) and the Postgres DSN parameter passthrough (sslmode, ...). Regenerate the connections schema expectation.
15132a1 to
22dacf7
Compare
|
Reviews (8): Last reviewed commit: "feat(iceberg): storage & catalog parity ..." | Re-trigger Greptile |
Follow-up to #2383 (which added Iceberg as an ingestr destination). This closes the remaining gaps so the Bruin connection can express ingestr's full Iceberg URI surface.
Catalog
rest_use_sslto select HTTPS — required for managed catalogs (Polaris, Unity, Lakekeeper, Tabular, R2); ingestr defaults REST to plain HTTP.driver/dialectfor the genericsqlcatalog (ingestr requires both; the dedicated sqlite/postgres types set them automatically).Storage
type: gcs):gs://warehouse withkey_file/key_jsonservice-account credentials (or ADC).type: local): a filesystem path →file://warehouse.pathis now optional, so the warehouse can come from the storage block (s3://,gs://) instead of a local dir.Docs
bucket+prefix, S3-compatible (MinIO/R2), native GCS, GCS via the S3-interop endpoint (HMAC), and local.sslmode,sslrootcert,connect_timeout, …) viaproperties, scoped totype: postgres.