F8N is an etcdshim that translated etcd API to FoundationDB.
The repo implements the Etcd API on top of the FoundationDB. The implementation is a backend for Kine Kine gRPC server narrows the Etcd API surface to the minimum required by Kubernetes.
All the required features are implemented:
- lists, watches, ttl, compaction, etc.
- records up to 2MiB in size
- databases of arbitrary size
The implementation:
- passes
sig-api-machinery
tests for K8Sv1.33.3
- a subset of the ETCD K8S robustness tests to validate the ETCD API responses and watch API guarantees
F8N is a drop-in replacement for ETCD. Images are published at ghcr.io/melgenek/f8n:
docker pull ghcr.io/melgenek/f8n:v0.3.0
Run the F8N image as a container and configure your API server to connect to it instead of ETCD with --etcd-servers
.
For a full mTLS example, see the demo/tls
folder.
Docs are available in the docs directory.
Spin up FoundationDB, F8N, and K3s with Docker:
- The demos are in the
demo
folder:
cd demo/simple
- Start docker compose:
docker compose up
- Run kubectl
docker exec k3s-demo kubectl get nodes -A
NAME STATUS ROLES AGE VERSION
77232a04e727 Ready control-plane,master 23s v1.33.3+k3s1