Skip to main content

Lakekeeper

What it is. Lakekeeper is an Iceberg REST catalog (chart lakekeeper/lakekeeper 0.11.0, appVersion 0.12.2).

Why stardelt uses it. Lakekeeper vends table metadata and coordinates access to Iceberg tables. It is the catalog layer that attaches policy and provides a single point for catalog operations; engines like Trino use it to discover and manage Iceberg tables.

How it fits. Lakekeeper runs in the data plane alongside Postgres (CloudNativePG) for its metadata. It connects to SeaweedFS as the object store backend for table data. Trino reads/writes through the Iceberg REST catalog; Nova and other components interact with the catalog via Lakekeeper. See Services and How it works.

What you can tune. Key settings from stardelt-platform/helm-values/lakekeeper.yaml:

SettingValues fileKeyDefaultWhat it changes
Authorization backendhelm-values/lakekeeper.yamlauthz.backendopenfgaAuthorization backend used by Lakekeeper.
OpenFGA endpointhelm-values/lakekeeper.yamlauthz.openfga.endpointhttp://openfga.stardelt.svc.cluster.local:8081Endpoint for OpenFGA authorization checks.
OPA bridge enabledhelm-values/lakekeeper.yamlOPABridge.enabledtrueEnables the OPA bridge sidecar for policy decisions.
OPA bridge catalogshelm-values/lakekeeper.yamlOPABridge.catalogs[{"trinoCatalog": "warehouse", "lakekeeperWarehouse": "warehouse"}]Maps Trino catalogs to Lakekeeper warehouses.
Database (external)helm-values/lakekeeper.yamlexternalDatabaseCNPG lakekeeper-pg (lakekeeper-pg-rw.stardelt.svc.cluster.local:5432)External Postgres cluster for Lakekeeper metadata.
Catalog resourceshelm-values/lakekeeper.yamlcatalog.resourcesrequests: {cpu: "50m", memory: "256Mi"}, limits: {cpu: "1", memory: "512Mi"}Resources for the Lakekeeper catalog pod.

What it replaces. Lakekeeper replaces a traditional Hive Metastore for Iceberg table metadata in this platform.

Operating it.

  • Health check: Check Lakekeeper pods in the cluster (e.g. kubectl -n stardelt get pods -l app.kubernetes.io/name=lakekeeper).
  • Logs: View logs with kubectl -n stardelt logs -l app.kubernetes.io/name=lakekeeper -c lakekeeper.
  • Install step: make step-lakekeeper (see stardelt-platform/Makefile). Also applies bootstrap and network policy.
  • Bootstrap: The warehouse is bootstrapped by manifests/lakekeeper-bootstrap.yaml (creates/updates the warehouse pointing to SeaweedFS).
  • Network policy: manifests/lakekeeper-network-policy.yaml restricts ingress to authorized callers.
  • Backup: Lakekeeper metadata is stored in Postgres (CNPG); backups follow Postgres backup configuration. See Backups.