ishan16696 / etcd-wrapper

Configures and starts an embedded ETCD

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

etcd-wrapper

REUSE status CI Build status Go Report Card License: Apache-2.0

etcd-wrapper configures and starts an embedded etcd.

In gardener context, each control plane (whether it is part of a seed or a shoot) gets its own etcd cluster. An etcd cluster is realized as a StatefulSet.

Each etcd member is a two container Pod which consists of:

  • etcd-wrapper which is the main etcd process.
  • etcd-backup-restore sidecar which currently provides the following capabilities (the list is not comprehensive):
    • etcd DB validation.
    • Scheduled DB defragmentation.
    • Snapshotting - delta and full snapshots are taken at regularly.
    • Backup - delta and full snapshots are backed in an object store if one is configured.
    • Restoration - In case of a DB corruption for a single member cluster it helps in restoring from last full snapshot.
    • Member control operations e.g. adding the peer etcd process as a learner.

etcd-wrapper currently depends upon backup-restore sidecar container for the following:

  • Validation of etcd DB
  • Optionally restore the etcd DB from the backup object store in case the DB is corrupt (this is only relevant in a single node etcd cluster).
  • Provide user provided etcd configuration.

To learn more about etcd-wrapper see /docs directory, please find the index here.

Future improvements

  • It is currently not possible to productively use etcd-wrapper without its sidecar(etcd-backup-restore). We intend to change this in the near future to make it possible to even productively consume etcd-wrapper independently.

Feedback and Support

We always look forward to active community engagement. Please report bugs or suggestions on how we can enhance etcd-wrapper on Github Issues.

More Learning

  • For more information on gardener refer to the docs.
  • For more information on the etcd operator that is used in gardener see etcd-druid.

About

Configures and starts an embedded ETCD

License:Apache License 2.0


Languages

Language:Go 57.9%Language:Shell 40.0%Language:Makefile 1.3%Language:Dockerfile 0.9%