Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gardener/etcd-druid
An etcd operator to configure, provision, reconcile and monitor etcd clusters.
https://github.com/gardener/etcd-druid
backup cloud-native controller etcd etcd-operator gardener hosted-controlplanes k8s kubernetes operator
Last synced: 22 days ago
JSON representation
An etcd operator to configure, provision, reconcile and monitor etcd clusters.
- Host: GitHub
- URL: https://github.com/gardener/etcd-druid
- Owner: gardener
- License: apache-2.0
- Created: 2019-09-24T08:57:36.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-13T08:16:47.000Z (about 1 month ago)
- Last Synced: 2024-11-13T08:25:34.655Z (about 1 month ago)
- Topics: backup, cloud-native, controller, etcd, etcd-operator, gardener, hosted-controlplanes, k8s, kubernetes, operator
- Language: Go
- Homepage: https://gardener.github.io/etcd-druid/
- Size: 30.1 MB
- Stars: 77
- Watchers: 22
- Forks: 50
- Open Issues: 98
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-cloud-native - etcd-druid - A druid for etcd management in Gardener. (Operator)
README
[![REUSE status](https://api.reuse.software/badge/github.com/gardener/etcd-druid)](https://api.reuse.software/info/github.com/gardener/etcd-druid) [![CI Build status](https://concourse.ci.gardener.cloud/api/v1/teams/gardener/pipelines/etcd-druid-master/jobs/master-head-update-job/badge)](https://concourse.ci.gardener.cloud/teams/gardener/pipelines/etcd-druid-master/jobs/master-head-update-job) [![Go Report Card](https://goreportcard.com/badge/github.com/gardener/etcd-druid)](https://goreportcard.com/report/github.com/gardener/etcd-druid) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE) [![Release](https://img.shields.io/github/v/release/gardener/etcd-druid.svg?style=flat)](https://github.com/gardener/etcd-druid) [![Go Reference](https://pkg.go.dev/badge/github.com/gardener/etcd-druid.svg)](https://pkg.go.dev/github.com/gardener/etcd-druid) [![Docs](https://img.shields.io/badge/Docs-reference-orange)](https://gardener.github.io/etcd-druid/index.html)
`etcd-druid` is an [etcd](https://github.com/etcd-io/etcd) [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/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](config/crd/bases/crd-druid.gardener.cloud_etcds.yaml).
In every etcd cluster managed by `etcd-druid`, each etcd member is a two container `Pod` which consists of:
- [etcd-wrapper](https://github.com/gardener/etcd-wrapper) which manages the lifecycle (validation & initialization) of an etcd.
- [etcd-backup-restore](https://github.com/gardener/etcd-backup-restore) sidecar which currently provides the following capabilities (the list is not comprehensive):
- [etcd](https://github.com/etcd-io/etcd) DB validation.
- Scheduled [etcd](https://github.com/etcd-io/etcd) DB defragmentation.
- Backup - [etcd](https://github.com/etcd-io/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](https://github.com/etcd-io/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](https://etcd.io/docs/v3.4/op-guide/maintenance/).
- 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](https://kind.sigs.k8s.io/) cluster based setup.
https://github.com/user-attachments/assets/cfe0d891-f709-4d7f-b975-4300c6de67e4
For detailed documentation, see our [docs](https://gardener.github.io/etcd-druid/index.html).
## Contributions
If you wish to contribute then please see our [contributor guidelines](docs/development/contribution.md).
## 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](https://github.com/gardener/etcd-druid/issues).
## License
Release under [Apache-2.0](https://github.com/gardener/etcd-druid/blob/master/LICENSE) license.