Skip to content

baptistegh/terraform-provider-lakekeeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

231 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform Provider for Lakekeeper

docs docs Nightly Acceptance Tests Tests

Terraform provider for Lakekeeper.

Important

⚠️ Preview Status Notice

  • ⚠️ 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.

Table of Contents

Documentation

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.

Installation

This provider can be installed automatically by using the terraform configuration block:

terraform {
  required_providers {
    lakekeeper = {
      source = "baptistegh/lakekeeper"
    }
  }
}

Supported Versions

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.

Playground

A sample playground project is available in the playground/ directory. It is based on the Official Lakekeeper Examples.

Overview

This playground will set up the following structure:

  • Warehouses:
    • test-warehouse-gcs: Configured using a gcs (Google Cloud Storage) storage profile.
    • test-warehouse-s3: Configured using a s3 (AWS S3) storage profile.
    • test-warehouse-adls: Configured using a adls (Azure Data Lake Storage) storage profile.
  • Roles:
    • read-role: with select and describe permissions on all the warehouses.
    • write-role: with create and modify permissions on the test-warehouse-s3 warehouse.
  • Users:
    • Anna:
      • username: anna
      • password: iceberg
      • project_admin assignment on the default project
    • Peter:
      • username: peter
      • password: iceberg
      • assignee to the read-role and write-role

Anna is a project_admin and Peter has read access on all the warehouses and can write on the test-warehouse-s3 warehouse.

Setup Instructions

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 structure

To tear down and clean up the playground:

make playground-destroy

You 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.

Development

This project requires Go 1.24 and Terraform >= 1.9.8.

After cloning the repository, you can build the project by running make build

Local Environment

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.

Tests

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.

Releases

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.

About

Terraform provider for Lakekeeper

Topics

Resources

License

Code of conduct

Contributing

Stars

8 stars

Watchers

1 watching

Forks

Contributors

Languages