Deployment¶
Everything needed to run an EtcFS cluster outside docker compose, in order:
- Infrastructure (Terraform) — provision the EC2 nodes,
the shared io2 Multi-Attach EBS volume, security group and fencing IAM
profile on AWS. Autoscaling (ASG) covers the
alternative Terraform module that runs nodes in an Auto Scaling Group
instead, with self-joining nodes and graceful
etcd member removeon scale-in. For a CloudFormation stack rather than Terraform, etcfs-cloudformation-template builds the same cluster by running that module's node-bootstrap script, so the join protocol is not implemented twice. - Binaries and containers — install
etcfuse,etcfuse-metaandetcfsctlfrom a GitHub release (.deb/.rpm, tarball + checksum) or pull theghcr.iocontainer images. - Configuration — every daemon flag, the systemd units, and how the pieces (etcd endpoints, node ID, device, fencing mode) fit together.
- etcfsctl — the operator CLI: status, members, arenas, fsck, scrub, fencing, quotas.
- Kubernetes (CSI driver) — run EtcFS as a
ReadWriteManyvolume for Kubernetes workloads: the Helm chart, the volume model, and how a departed node's volume release drives the existing fence. - Monitoring — Prometheus scrape config, alert rules, and the Grafana dashboard.
For local development instead of a real deployment, see make dev and
deploy/docker/docker-compose.yml — a 3-node cluster on one machine, no AWS
account needed.
For what EtcFS actually is and how it works, start at the Home page and Architecture.