Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

Commit

Permalink
README: Explain high-level design and update demo (#65)
Browse files Browse the repository at this point in the history
  • Loading branch information
dlipovetsky committed Sep 28, 2018
1 parent f05d107 commit f9dd843
Show file tree
Hide file tree
Showing 2 changed files with 212 additions and 3 deletions.
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
etcdadm
=======

etcdadm is a command-line tool for managing an etcd cluster. It makes it easy to create a new cluster, add a member to, or remove a member from an existing cluster. Its user experience is inspired by [kubeadm](https://kubernetes.io/docs/reference/setup-tools/kubeadm/).
etcdadm is a command-line tool for operating an etcd cluster. It makes it easy to create a new cluster, add a member to, or remove a member from an existing cluster. Its user experience is inspired by [kubeadm](https://kubernetes.io/docs/reference/setup-tools/kubeadm/).

[![asciicast](https://asciinema.org/a/Ham0ZE4YobtgfJTvcfn1SKfZN.png)](https://asciinema.org/a/Ham0ZE4YobtgfJTvcfn1SKfZN)
![alt text](demo.svg "etcdadm demo - generated with https://github.com/nbedos/termtosvg")

## Table of Contents

Expand All @@ -15,6 +15,7 @@ etcdadm is a command-line tool for managing an etcd cluster. It makes it easy to
- [Advanced Usage](#advanced-usage)
- [Creating a new cluster from a snapshot](#creating-a-new-cluster-from-a-snapshot)
- [Caveats & Limitations](#caveats--limitations)
- [Design](#design)

## Getting Started

Expand Down Expand Up @@ -63,4 +64,13 @@ etcdadm init --snapshot /path/to/etcd.snapshot
## Caveats and Limitations

1. Must run as root. (This is because etcdadm creates a systemd service)
2. Does not support etcd v2.
2. Does not support etcd v2.
3. Currently tested on Container Linux, with plans for other platforms.

## Design

The goal of etcdadm is to make it easy to operate an etcd cluster. It downloads a specific etcd release, installs the binary, configures a systemd service, generates certificates, calls the etcd API to add (or remove) a member, and verifies that the new member is healthy.

Etcdadm must be run on the machine that is being added or removed. As a consequence, if a member permanently fails, and the operator cannot invoke `etcdadm reset` on that machine, the operator must use the etcd API to delete the failed member from the list of members.

On its own, etcdadm does not automate cluster operation, but a cluster orchestrator can delegate all the above tasks to etcdadm.
199 changes: 199 additions & 0 deletions demo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f9dd843

Please sign in to comment.