{"id":22856629,"url":"https://github.com/deis/etcd","last_synced_at":"2025-09-14T07:23:33.467Z","repository":{"id":71904463,"uuid":"44122405","full_name":"deis/etcd","owner":"deis","description":"Etcd cluster for Deis v2","archived":false,"fork":false,"pushed_at":"2017-05-11T20:59:26.000Z","size":55,"stargazers_count":12,"open_issues_count":2,"forks_count":13,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-30T15:14:40.618Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://deis.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-12T17:20:27.000Z","updated_at":"2017-10-12T08:55:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"b710835c-f38e-4802-a0c1-24a073f653bf","html_url":"https://github.com/deis/etcd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deis%2Fetcd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deis%2Fetcd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deis%2Fetcd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deis%2Fetcd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deis","download_url":"https://codeload.github.com/deis/etcd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251729734,"owners_count":21634281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T08:09:16.744Z","updated_at":"2025-04-30T15:14:44.903Z","avatar_url":"https://github.com/deis.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Etcd Service\n\nThis project provides an Etcd service that can run inside of Kubernetes.\n\nThere are two parts:\n\n- An in-cluster discovery service (`deis-etcd-discovery`)\n- A dynamic etcd cluster (`deis-etcd`)\n\nBoth parts run inside of any Kubernetes 1.0+ cluster. No modifications\nneed to be made to Kubernetes.\n\n## Usage\n\nCurrently, this project is under heavy development. Eventually,\ninstalling will be a matter of running a few `kubectl` commands, but\nright now it needs a little more.\n\nAssuming you have `kubectl`, `docker`, a Docker registry, and `go` 1.5.1\nor greater, you can do this:\n\nGet your dev environment ready:\n```\n$ go get github.com/Masterminds/glide\n$ $GOPATH/bin/glide install\n$ export DEV_REGISTRY=your.docker.registry.url:port\n```\n\nStart the services and mount the secrets volumes:\n```\n$ make kube-service\n```\n\nBuild it all, push it to Docker, and then load it into Kubernetes:\n```\n$ make all\n```\n\nYou can check on things using kubectl:\n```\n$ kubectl get pod\n```\n\nNote that if your registry is insecure, you need to configure\nKubernetes' Docker instances to allow the `--insecure-registry`.\n\n## Notes\n\n1. Right now, the discovery token is hard-coded into the secret. Feel\n   free to change it to meet your needs.\n2. Persistent storage for Etcd is not yet implemented, though it will be\n   in short order.\n3. The cluster is designed to be relatively self-healing. When a Pod\n   dies, the pod that is spawned in its place will attempt to clean up\n   mess.\n4. The discovery instance of etcd is also used for an additional\n   heartbeats layer, so it must stay running in order to help a failed\n   cluster rebuild.\n5. This project builds one Docker image that has two executable paths.\n   If it is started with the `/usr/local/bin/boot`, it will be an etcd cluster\n   member. If it is started with `/usr/local/bin/discovery` it will come up as a\n   discovery service.\n\nFinally, this distribution will _not_ work outside of Kubernetes unless\nyou do a lot of environment altering. It uses Kubernetes service\ndiscovery environment variables, secrets volume mounts, and the\nKubernetes API server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeis%2Fetcd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeis%2Fetcd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeis%2Fetcd/lists"}