Skip to content

Deployment

These pages cover running an EtcFS cluster on real machines, in the order you need them:

  1. Infrastructure (Terraform): provision the EC2 nodes, the shared io2 Multi-Attach EBS volume, the security group and the fencing IAM profile on AWS.
  2. Autoscaling (ASG) describes a second Terraform module that runs the nodes in an Auto Scaling Group. Nodes join the cluster by themselves, and on scale-in a node removes itself from etcd cleanly.
  3. For CloudFormation instead of Terraform, etcfs-cloudformation-template builds the same cluster. It runs the same node bootstrap script as the ASG module, so both paths join nodes the same way.
  4. Binaries and containers: install etcfuse, etcfuse-meta and etcfsctl from a GitHub release (.deb/.rpm, tarball + checksum) or pull the ghcr.io container images.
  5. Configuration: every daemon flag, the systemd units, and how etcd endpoints, node ID, device and fencing mode fit together.
  6. etcfsctl: the operator CLI: status, members, arenas, fsck, scrub, fencing, quotas.
  7. Kubernetes (CSI driver): run EtcFS as a ReadWriteMany volume for Kubernetes workloads. Covers the Helm chart, how volumes map onto the filesystem, and how a node that leaves Kubernetes gets fenced.
  8. Monitoring: Prometheus scrape config, alert rules, and the Grafana dashboard.

For local development, make dev and deploy/docker/docker-compose.yml run a 3-node cluster on one machine without an AWS account.

For what EtcFS is and how it works, start at the Home page and Architecture.