{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/16830","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/16830/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/16830/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/16830/events","html_url":"https://github.com/kubernetes/kubernetes/pull/16830","id":115191110,"number":16830,"title":"WIP: simple client library that implements leader election for a service","user":{"login":"mikedanese","id":1787169,"avatar_url":"https://avatars.githubusercontent.com/u/1787169?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedanese","html_url":"https://github.com/mikedanese","followers_url":"https://api.github.com/users/mikedanese/followers","following_url":"https://api.github.com/users/mikedanese/following{/other_user}","gists_url":"https://api.github.com/users/mikedanese/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedanese/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedanese/subscriptions","organizations_url":"https://api.github.com/users/mikedanese/orgs","repos_url":"https://api.github.com/users/mikedanese/repos","events_url":"https://api.github.com/users/mikedanese/events{/privacy}","received_events_url":"https://api.github.com/users/mikedanese/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/HA","name":"area/HA","color":"bfd4f2"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/L","name":"size/L","color":"ee9900"}],"state":"open","locked":false,"assignee":{"login":"mikedanese","id":1787169,"avatar_url":"https://avatars.githubusercontent.com/u/1787169?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedanese","html_url":"https://github.com/mikedanese","followers_url":"https://api.github.com/users/mikedanese/followers","following_url":"https://api.github.com/users/mikedanese/following{/other_user}","gists_url":"https://api.github.com/users/mikedanese/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedanese/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedanese/subscriptions","organizations_url":"https://api.github.com/users/mikedanese/orgs","repos_url":"https://api.github.com/users/mikedanese/repos","events_url":"https://api.github.com/users/mikedanese/events{/privacy}","received_events_url":"https://api.github.com/users/mikedanese/received_events","type":"User","site_admin":false},"milestone":null,"comments":25,"created_at":"2015-11-05T01:45:12Z","updated_at":"2015-11-20T04:57:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/16830","html_url":"https://github.com/kubernetes/kubernetes/pull/16830","diff_url":"https://github.com/kubernetes/kubernetes/pull/16830.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/16830.patch"},"body":"This client library helps to elect a leader for a service. It uses an annotation of the service's endpoints object to hold the leaderElectionRecord. Callbacks are triggered OnStartedLeading and OnStoppedLeading.\r\n\r\nThis is podmaster.go refactored into a library and adapted to use an endpoints annotation rather than an etcd key to store the leader record. Otherwise I've tried to keep the implementation as similar as possible.\r\n\r\nMy goal is to run controller-manager and scheduler self hosted, and update these components using a deployment object. \r\n\r\nTODO: unit, e2e tests\r\n\r\ncc @erictune @davidopp @brendandburns @bgrant0607 "},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/158280034","html_url":"https://github.com/kubernetes/kubernetes/pull/16830#issuecomment-158280034","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/16830","id":158280034,"user":{"login":"k8s-bot","id":12551979,"avatar_url":"https://avatars.githubusercontent.com/u/12551979?v=3","gravatar_id":"","url":"https://api.github.com/users/k8s-bot","html_url":"https://github.com/k8s-bot","followers_url":"https://api.github.com/users/k8s-bot/followers","following_url":"https://api.github.com/users/k8s-bot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-bot/subscriptions","organizations_url":"https://api.github.com/users/k8s-bot/orgs","repos_url":"https://api.github.com/users/k8s-bot/repos","events_url":"https://api.github.com/users/k8s-bot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-bot/received_events","type":"User","site_admin":false},"created_at":"2015-11-20T04:57:14Z","updated_at":"2015-11-20T04:57:14Z","body":"GCE e2e test build/test **passed** for commit 83bd28090bee3590ea870ab8fb6d83e1f0e04b0e.\n* [Build Log](https://storage.cloud.google.com/kubernetes-jenkins/pr-logs/83bd28090bee3590ea870ab8fb6d83e1f0e04b0e/kubernetes-pull-build-test-e2e-gce/17324/build-log.txt)\n* [Test Artifacts](https://console.developers.google.com/storage/browser/kubernetes-jenkins/pr-logs/83bd28090bee3590ea870ab8fb6d83e1f0e04b0e/kubernetes-pull-build-test-e2e-gce/17324/artifacts/)\n* [Internal Jenkins Results](http://goto.google.com/prkubekins/job/kubernetes-pull-build-test-e2e-gce//17324)\n"}}