Help us shape the future of Go! Take the 2026 Go Developer Survey

etcd-druid

module
v0.39.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2026 License: Apache-2.0

README

REUSE status Build Go Report Card Release Go Reference Docs

etcd-druid is an etcd operator which makes it easy to configure, provision, reconcile, monitor and delete etcd clusters. It enables management of etcd clusters through declarative Kubernetes API model.

In every etcd cluster managed by etcd-druid, each etcd member is a two container Pod which consists of:

  • etcd-wrapper which manages the lifecycle (validation & initialization) of an etcd.
  • etcd-backup-restore sidecar which currently provides the following capabilities (the list is not comprehensive):
    • etcd DB validation.
    • Scheduled etcd DB defragmentation.
    • Backup - etcd DB snapshots are taken regularly and 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 latest set of snapshots (full & delta).
    • Member control operations.

etcd-druid additionally provides the following capabilities:

  • Facilitates declarative scale-out of etcd clusters.
  • Provides protection against accidental deletion/mutation of resources provisioned as part of an etcd cluster.
  • Offers an asynchronous and threshold based capability to process backed up snapshots to:
    • Potentially minimize the recovery time by leveraging restoration from backups followed by etcd's compaction and defragmentation.
    • Indirectly assert integrity of the backed up snaphots.
  • Allows seamless copy of backups between any two object store buckets.

Start using or developing etcd-druid locally

If you are looking to try out druid then you can use a Kind cluster based setup.

https://github.com/user-attachments/assets/cfe0d891-f709-4d7f-b975-4300c6de67e4

For detailed documentation, see our docs.

Contributions

If you wish to contribute then please see our contributor guidelines.

Feedback and Support

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

License

Release under Apache-2.0 license.

Directories

Path Synopsis
api module
client module
cmd
druidctl module
examples
client command
internal
client/etcd
Package etcd provides a thin clientv3 wrapper for the membership operations required by quorum-safe scale-in.
Package etcd provides a thin clientv3 wrapper for the membership operations required by quorum-safe scale-in.
client/etcd/fake
Package fake provides concurrency-safe test doubles for clientetcd.Client and clientetcd.Factory.
Package fake provides concurrency-safe test doubles for clientetcd.Client and clientetcd.Factory.
mock/controller-runtime/client
Package client is a generated GoMock package.
Package client is a generated GoMock package.
mock/controller-runtime/manager
Package manager is a generated GoMock package.
Package manager is a generated GoMock package.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL