Skip to content
No description or website provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
apis Transfer copyright to "The etcdadm authors" Jan 10, 2019
binary Transfer copyright to "The etcdadm authors" Jan 10, 2019
certs
cmd Transfer copyright to "The etcdadm authors" Jan 10, 2019
constants Transfer copyright to "The etcdadm authors" Jan 10, 2019
etcd Transfer copyright to "The etcdadm authors" Jan 10, 2019
pkg/logrus Add support for log verbosity (#74) Oct 19, 2018
preflight
service
util
vendor
.gitignore
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
OWNERS
OWNERS_ALIASES
README.md Add slack channel information in the README (#78) Dec 11, 2018
SECURITY_CONTACTS
demo.svg
git_utils.sh
main.go
version.sh

README.md

etcdadm

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.

Table of Contents

Getting Started

Building

go get -u github.com/platform9/etcdadm

Creating a new cluster

  1. Copy etcdadm to each machine that will become a member.
  2. Choose one machine and run
etcdadm init

Adding a member

  1. Copy the CA certificate and key from any machine in the cluster to the machine being added.
  2. Choose a cluster endpoint (i.e. client URL of some member) and run
etcdadm join <endpoint>

Removing a member

On the machine being removed, run

etcdadm reset

Advanced Usage

Creating a new cluster from a snapshot

If you have an existing etcd snapshot, you can use it to create a new cluster:

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.
  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.

Questions?

For more information reach out to etcdadm slack channel

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.