Skip to content

tfzk/terraform-provider-zookeeper

Repository files navigation

TFZK: Terraform provider for ZooKeeper

Build and Test Terraform Provider ZooKeeper Documentation

A Terraform provider for Apache ZooKeeper.

To get started, go on terraform-provider-zookeeper registry page.

This provider focuses on Data Management for ZooKeeper: it offers a CRUD for Persistent ZNodes and Persistent Sequential ZNodes.

For example, it can be leveraged as part of a bigger infrastructure, where sharing data across multiple live services via ZooKeeper is desirable. Good examples can be runtime configuration data or large architectures topology data and so forth.

Data can be stored both as UTF-8 and binary (via Base64 encoding) inside ZooKeeper ZNodes.

Compatibility

Compatibility table between this provider, the Registry Protocol version it implements, and Terraform:

Provider Registry Protocol Terraform
>= 1.x 5 >= 0.12

CI Testing

The provider test suite is run against all Terraform versions from 0.12 to 1.9, as well as all ZooKeeper versions from 3.5 to 3.9.

See the Build and Test workflow for details.

Provider features

  • support for ZK standard multi-server connection string
  • support for ZK authentication
  • support for ZK ACLs
  • "session timeout" configuration
  • create ZNode
  • create Sequential ZNode
  • read ZNode
  • update ZNode
  • delete ZNode
  • import ZNode
  • import Sequential ZNode
  • support for binary data in Base64 format

Development

Requirements

Run acceptance tests locally

To run acceptance tests, you will need a ZooKeeper Ensemble running:

$ make local.zk.up

$ make local.test

# ... do your development / fixing ...

$ make local.zk.down

In scripts/zk-local-ensemble we provide a docker-compose.yml that can spin up an ensemble made of 3 servers, running on localhost ports 2181, 2182 and 2183. Everything can be controlled via the make local.* commands provided.

If you are curious, please take a look at the Makefile to understand how those are then passed to go during (Acceptance) Tests.

License

All the content of this repository is under MIT License