Terraform provider for Lakekeeper.
Important
⚠️ Breaking changes may occur without notice- 🔄 APIs and behavior may change significantly between versions
- 🧪 Use at your own risk for development and testing purposes only
🚧 This project is currently in preview and under active development. It is not production-ready and should not be used in production environments.
💬 We welcome feedback, bug reports, and contributions during this preview phase. Please report issues or share your experience to help us improve the provider before its stable release.
All documentation for this provider can be found on the Terraform Registry: https://registry.terraform.io/providers/baptistegh/lakekeeper/latest/docs.
The provider is also available from OpenTofu registry.
This provider can be installed automatically by using the terraform configuration block:
terraform {
required_providers {
lakekeeper = {
source = "baptistegh/lakekeeper"
}
}
}This provider will officially support the latest three last versions of Lakekeeper, although older versions may still work.
The following Lakekeeper versions are used when running acceptance tests in CI:
- Unreleased (latest-main)
- v0.10.4
- v0.10.3
- v0.10.2
The provider should be compatible with Lakekeeper >= v0.9.3.
Acceptance tests are executed using Terraform v1.9.8.
A sample playground project is available in the playground/ directory. It is based on the Official Lakekeeper Examples.
This playground will set up the following structure:
- Warehouses:
test-warehouse-gcs: Configured using agcs(Google Cloud Storage) storage profile.test-warehouse-s3: Configured using as3(AWS S3) storage profile.test-warehouse-adls: Configured using aadls(Azure Data Lake Storage) storage profile.
- Roles:
read-role: withselectanddescribepermissions on all the warehouses.write-role: withcreateandmodifypermissions on thetest-warehouse-s3warehouse.
- Users:
- Anna:
- username:
anna - password:
iceberg project_adminassignment on the default project
- username:
- Peter:
- username:
peter - password:
iceberg - assignee to the
read-roleandwrite-role
- username:
- Anna:
Anna is a project_admin and Peter has read access on all the warehouses and can write on the test-warehouse-s3 warehouse.
To create and launch the playground:
make testacc-up # Sets up required services via Docker Compose (Lakekeeper, Keycloak, OpenFGA, PostgreSQL)
make playground # Creates the playground structureTo tear down and clean up the playground:
make playground-destroyYou can connect to the web interface at http://localhost:8181 using one of the user credentials listed above to explore the configured resources.
Feel free to modify playground/main.tf to customize the structure according to your needs.
This project requires Go 1.24 and Terraform >= 1.9.8.
After cloning the repository, you can build the project by running make build
You can spin up a local developer environment via Docker Compose by running make testacc-up. This will spin up a few containers for Lakekeeper, Keycloak, PostgreSQL and OpenFGA, which can be used for testing the provider.
To stop the environment you can use the make clean.
Every resource supported by this provider will have a reasonable amount of acceptance test coverage.
You can run acceptance tests against a Lakekeeper instance by running make testacc.
This provider uses GoReleaser to build and publish releases. Each release published to GitHub contains binary files for Linux, macOS (darwin), and Windows, as configured within the .goreleaser.yml file.
Each release also contains a terraform-provider-lakekeeper_${RELEASE_VERSION}_SHA256SUMS file that can be used to check integrity.
You can find the list of releases and the changelog for each version.