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 table between this provider, the Registry Protocol version it implements, and Terraform:
Provider | Registry Protocol | Terraform |
---|---|---|
>= 1.x |
5 |
>= 0.12 |
This provider is tested against Terraform versions from 0.12
to 1.9
.
See the Build and Test
workflow.
- 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
- Go >=
1.23
- Docker
- Docker Compose
- golangci-lint
To run acceptance tests, you will need a ZooKeeper Ensemble running:
$ make local.zk.up
$ make local.testacc
# ... do your development / fixing ...
$ make local.zk.down
In tools/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.
All the content of this repository is under MIT License