{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/84197691","pull_request_review_id":4989533,"id":84197691,"diff_hunk":"@@ -0,0 +1,387 @@\n+<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->\n+\n+<!-- BEGIN STRIP_FOR_RELEASE -->\n+\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+\n+<h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>\n+\n+If you are using a released version of Kubernetes, you should\n+refer to the docs that go with that version.\n+\n+Documentation for other releases can be found at\n+[releases.k8s.io](http://releases.k8s.io).\n+</strong>\n+--\n+\n+<!-- END STRIP_FOR_RELEASE -->\n+\n+<!-- END MUNGE: UNVERSIONED_WARNING -->\n+\n+# Simplified Federation Control Plane Deployment\n+\n+**Author**: Madhusudan C.S. <madhusudancs@google.com>  \n+**Last updated**: 10/07/2016  \n+**Status**: **Draft**|Approved|Abandoned|Obsolete\n+\n+\n+**Table of Contents**\n+<!-- BEGIN MUNGE: GENERATED_TOC -->\n+\n+- [Simplified Federation Control Plane Deployment](#simplified-federation-control-plane-deployment)\n+  - [Background](#background)\n+  - [Goals](#goals)\n+  - [User Experience](#user-experience)\n+      - [Federation Control Plane Deployment Experience](#federation-control-plane-deployment-experience)\n+      - [Cluster Registration Experience](#cluster-registration-experience)\n+      - [Cluster Deregistration Experience](#cluster-deregistration-experience)\n+    - [Points for Discussion:](#points-for-discussion)\n+  - [Design](#design)\n+      - [Federation Control Plane Bootstrap](#federation-control-plane-bootstrap)\n+        - [Additional enhancements](#additional-enhancements)\n+        - [Caveats](#caveats)\n+      - [Cluster Registration/Deregistration](#cluster-registrationderegistration)\n+        - [Registration](#registration)\n+        - [Deregistration](#deregistration)\n+  - [Test Plan](#test-plan)\n+      - [Federation Control Plane Bootstrap](#federation-control-plane-bootstrap-1)\n+      - [Cluster Registration/Deregistration](#cluster-registrationderegistration-1)\n+  - [Timeline](#timeline)\n+  - [Maturity Level](#maturity-level)\n+\n+<!-- END MUNGE: GENERATED_TOC -->\n+\n+## Background\n+\n+Kubernetes Cluster Federation has its own control plane which is similar\n+to the control plane of a Kubernetes cluster. Like Kubernetes, a\n+federation control plane is composed of an API server and a controller\n+manager that bundles all the core controllers. While that looks simple\n+on paper, deploying a federation control plane comes with its own set of\n+challenges. Deploying a federation control plane not just involves\n+deploying a federation API server and a federation controller manager,\n+but also other components that support the control plane. This includes:\n+\n+1. A persistent store to store the state of the federation - `etcd`.\n+2. A persistent device to store `etcd` data.\n+3. A secret store to store the federation API server credentials.\n+\n+And these components must be setup in such a way that they can\n+appropriately coordinate with each other. While this is already starting\n+to look complicated, this is only one part of the problem.\n+\n+Kubernetes Cluster Federation operates only on the clusters that it is\n+responsible for. So once a federation control plane is deployed, for it\n+to be useful, users should be able to register and deregister Kubernetes\n+clusters with/from their federation. In order to register a cluster,\n+users should supply the cluster's credentials and its API server\n+endpoint.\n+\n+**Side note**: It is a mouthful to always prefix \"federation\" to each of\n+its control plane components. But it is necessary to disambiguate these\n+components from the almost identical components in a Kubernetes cluster.\n+\n+## Goals\n+\n+Today, we ship bash scripts to facilitate the federation control plane\n+deployment process and the registration/deregistration process is mostly\n+manual. Both these processes involve multiple coordinated steps and are\n+error prone. For example, to register a Kubernetes cluster with\n+federation users have to write a yaml file describing a cluster\n+resource. They have to specify the cluster's endpoint in the right\n+format. That field is too restrictive and hard to get it right. They\n+also have to correctly specify where the credentials for the cluster is\n+stored.\n+\n+Therefore, the goal here is to simplify both the federation control\n+plane deployment experience and the cluster registration and\n+deregistration process. Each of these processes will be reduced to a\n+single command with additional flags for customization.\n+\n+\n+## User Experience\n+\n+Kubernetes v1.4 shipped a new command line tool called\n+[`kubeadm`](http://kubernetes.io/docs/getting-started-guides/kubeadm/).\n+`kubeadm` simplifies Kubernetes control plane deployment. Federation\n+control plane deployment builds on top of this tool. Cluster\n+registration and deregistration will be facilitated through\n+[`kubectl`](http://kubernetes.io/docs/user-guide/kubectl-overview/).\n+\n+\n+#### Federation Control Plane Deployment Experience\n+\n+1. User provisions their cloud/compute resources: a VM or a physical\n+   machine.\n+2. Downloads the\n+   [`kubeadm`](http://kubernetes.io/docs/getting-started-guides/kubeadm/)\n+   executable on to each of those machines, virtual or physical.\n+3. Runs:\n+\n+    ```shell\n+    $ kubeadm init federation\n+    ```\n+\n+   to set up a Kubernetes control plane and a federation control plane\n+   on that machine.\n+\n+\n+#### Cluster Registration Experience\n+\n+1. User downloads the\n+   [`kubectl`](http://kubernetes.io/docs/user-guide/kubectl-overview/)\n+   executable on their local computer, i.e. the computer they use for\n+   their day-to-day activities.\n+2. Runs:\n+\n+    ```shell\n+    $ kubectl register mycluster","path":"docs/design/simplified_federation_deployment.md","position":147,"original_position":147,"commit_id":"8be20085d66dbe9cc0ed91451125980afb654417","original_commit_id":"8be20085d66dbe9cc0ed91451125980afb654417","user":{"login":"quinton-hoole","id":10390785,"avatar_url":"https://avatars.githubusercontent.com/u/10390785?v=3","gravatar_id":"","url":"https://api.github.com/users/quinton-hoole","html_url":"https://github.com/quinton-hoole","followers_url":"https://api.github.com/users/quinton-hoole/followers","following_url":"https://api.github.com/users/quinton-hoole/following{/other_user}","gists_url":"https://api.github.com/users/quinton-hoole/gists{/gist_id}","starred_url":"https://api.github.com/users/quinton-hoole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quinton-hoole/subscriptions","organizations_url":"https://api.github.com/users/quinton-hoole/orgs","repos_url":"https://api.github.com/users/quinton-hoole/repos","events_url":"https://api.github.com/users/quinton-hoole/events{/privacy}","received_events_url":"https://api.github.com/users/quinton-hoole/received_events","type":"User","site_admin":false},"body":"kubectl already calls the Federation API server.  It's already the primary tool for interacting with the Federation API server, and has been since Kubernetes v1.3.\r\n\r\nSee e.g. http://kubernetes.io/docs/user-guide/federation/federated-services/  ","created_at":"2016-10-20T01:03:33Z","updated_at":"2016-10-20T01:03:33Z","html_url":"https://github.com/kubernetes/kubernetes/pull/34484#discussion_r84197691","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/84197691"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/34484#discussion_r84197691"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484","id":88720773,"html_url":"https://github.com/kubernetes/kubernetes/pull/34484","diff_url":"https://github.com/kubernetes/kubernetes/pull/34484.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/34484.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/34484","number":34484,"state":"open","locked":false,"title":"Simplified Federation Control Plane Deployment.","user":{"login":"madhusudancs","id":10183,"avatar_url":"https://avatars.githubusercontent.com/u/10183?v=3","gravatar_id":"","url":"https://api.github.com/users/madhusudancs","html_url":"https://github.com/madhusudancs","followers_url":"https://api.github.com/users/madhusudancs/followers","following_url":"https://api.github.com/users/madhusudancs/following{/other_user}","gists_url":"https://api.github.com/users/madhusudancs/gists{/gist_id}","starred_url":"https://api.github.com/users/madhusudancs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madhusudancs/subscriptions","organizations_url":"https://api.github.com/users/madhusudancs/orgs","repos_url":"https://api.github.com/users/madhusudancs/repos","events_url":"https://api.github.com/users/madhusudancs/events{/privacy}","received_events_url":"https://api.github.com/users/madhusudancs/received_events","type":"User","site_admin":false},"body":"I am not entirely sure whom to assign this to for reviews since this spans multiple SIGs.\r\n\r\n(Assigning it to myself for now to disable bot assignments).\r\n\r\n@kubernetes/sig-cluster-federation @kubernetes/sig-cluster-lifecycle @kubernetes/sig-cli PTAL.\r\n\r\n**Note**: The goal (and the plan) is to implement this in v1.5 time frame and will be considered \"alpha\".\r\n\r\ncc @quinton-hoole @nikhiljindal @roberthbailey @mikedanese @allannaim @matchstick @irfanurrehman\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.kubernetes.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/34484)\r\n<!-- Reviewable:end -->\r\n","created_at":"2016-10-10T19:53:41Z","updated_at":"2016-10-20T01:03:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"586fc0c4dd59e11c7af324c2c9e1c9b552167e09","assignee":{"login":"madhusudancs","id":10183,"avatar_url":"https://avatars.githubusercontent.com/u/10183?v=3","gravatar_id":"","url":"https://api.github.com/users/madhusudancs","html_url":"https://github.com/madhusudancs","followers_url":"https://api.github.com/users/madhusudancs/followers","following_url":"https://api.github.com/users/madhusudancs/following{/other_user}","gists_url":"https://api.github.com/users/madhusudancs/gists{/gist_id}","starred_url":"https://api.github.com/users/madhusudancs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madhusudancs/subscriptions","organizations_url":"https://api.github.com/users/madhusudancs/orgs","repos_url":"https://api.github.com/users/madhusudancs/repos","events_url":"https://api.github.com/users/madhusudancs/events{/privacy}","received_events_url":"https://api.github.com/users/madhusudancs/received_events","type":"User","site_admin":false},"assignees":[{"login":"madhusudancs","id":10183,"avatar_url":"https://avatars.githubusercontent.com/u/10183?v=3","gravatar_id":"","url":"https://api.github.com/users/madhusudancs","html_url":"https://github.com/madhusudancs","followers_url":"https://api.github.com/users/madhusudancs/followers","following_url":"https://api.github.com/users/madhusudancs/following{/other_user}","gists_url":"https://api.github.com/users/madhusudancs/gists{/gist_id}","starred_url":"https://api.github.com/users/madhusudancs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madhusudancs/subscriptions","organizations_url":"https://api.github.com/users/madhusudancs/orgs","repos_url":"https://api.github.com/users/madhusudancs/repos","events_url":"https://api.github.com/users/madhusudancs/events{/privacy}","received_events_url":"https://api.github.com/users/madhusudancs/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/23","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.5","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/23/labels","id":1945978,"number":23,"title":"v1.5","description":"","creator":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars.githubusercontent.com/u/647318?v=3","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},"open_issues":223,"closed_issues":171,"state":"open","created_at":"2016-08-16T21:47:28Z","updated_at":"2016-10-20T00:28:52Z","due_on":"2016-12-09T00:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/34484/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/8be20085d66dbe9cc0ed91451125980afb654417","head":{"label":"madhusudancs:design-doc-simplified-federation-deployment","ref":"design-doc-simplified-federation-deployment","sha":"8be20085d66dbe9cc0ed91451125980afb654417","user":{"login":"madhusudancs","id":10183,"avatar_url":"https://avatars.githubusercontent.com/u/10183?v=3","gravatar_id":"","url":"https://api.github.com/users/madhusudancs","html_url":"https://github.com/madhusudancs","followers_url":"https://api.github.com/users/madhusudancs/followers","following_url":"https://api.github.com/users/madhusudancs/following{/other_user}","gists_url":"https://api.github.com/users/madhusudancs/gists{/gist_id}","starred_url":"https://api.github.com/users/madhusudancs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madhusudancs/subscriptions","organizations_url":"https://api.github.com/users/madhusudancs/orgs","repos_url":"https://api.github.com/users/madhusudancs/repos","events_url":"https://api.github.com/users/madhusudancs/events{/privacy}","received_events_url":"https://api.github.com/users/madhusudancs/received_events","type":"User","site_admin":false},"repo":{"id":43526269,"name":"kubernetes","full_name":"madhusudancs/kubernetes","owner":{"login":"madhusudancs","id":10183,"avatar_url":"https://avatars.githubusercontent.com/u/10183?v=3","gravatar_id":"","url":"https://api.github.com/users/madhusudancs","html_url":"https://github.com/madhusudancs","followers_url":"https://api.github.com/users/madhusudancs/followers","following_url":"https://api.github.com/users/madhusudancs/following{/other_user}","gists_url":"https://api.github.com/users/madhusudancs/gists{/gist_id}","starred_url":"https://api.github.com/users/madhusudancs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madhusudancs/subscriptions","organizations_url":"https://api.github.com/users/madhusudancs/orgs","repos_url":"https://api.github.com/users/madhusudancs/repos","events_url":"https://api.github.com/users/madhusudancs/events{/privacy}","received_events_url":"https://api.github.com/users/madhusudancs/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/madhusudancs/kubernetes","description":"Container Cluster Manager from Google","fork":true,"url":"https://api.github.com/repos/madhusudancs/kubernetes","forks_url":"https://api.github.com/repos/madhusudancs/kubernetes/forks","keys_url":"https://api.github.com/repos/madhusudancs/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/madhusudancs/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/madhusudancs/kubernetes/teams","hooks_url":"https://api.github.com/repos/madhusudancs/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/madhusudancs/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/madhusudancs/kubernetes/events","assignees_url":"https://api.github.com/repos/madhusudancs/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/madhusudancs/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/madhusudancs/kubernetes/tags","blobs_url":"https://api.github.com/repos/madhusudancs/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/madhusudancs/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/madhusudancs/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/madhusudancs/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/madhusudancs/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/madhusudancs/kubernetes/languages","stargazers_url":"https://api.github.com/repos/madhusudancs/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/madhusudancs/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/madhusudancs/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/madhusudancs/kubernetes/subscription","commits_url":"https://api.github.com/repos/madhusudancs/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/madhusudancs/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/madhusudancs/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/madhusudancs/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/madhusudancs/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/madhusudancs/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/madhusudancs/kubernetes/merges","archive_url":"https://api.github.com/repos/madhusudancs/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/madhusudancs/kubernetes/downloads","issues_url":"https://api.github.com/repos/madhusudancs/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/madhusudancs/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/madhusudancs/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/madhusudancs/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/madhusudancs/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/madhusudancs/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/madhusudancs/kubernetes/deployments","created_at":"2015-10-01T23:19:31Z","updated_at":"2016-01-11T22:54:35Z","pushed_at":"2016-10-19T22:49:54Z","git_url":"git://github.com/madhusudancs/kubernetes.git","ssh_url":"git@github.com:madhusudancs/kubernetes.git","clone_url":"https://github.com/madhusudancs/kubernetes.git","svn_url":"https://github.com/madhusudancs/kubernetes","homepage":"http://kubernetes.io","size":336142,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes:master","ref":"master","sha":"ec6aba92a77ce608c5b567200d7dc2a2a5af1259","user":{"login":"kubernetes","id":13629408,"avatar_url":"https://avatars.githubusercontent.com/u/13629408?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes","html_url":"https://github.com/kubernetes","followers_url":"https://api.github.com/users/kubernetes/followers","following_url":"https://api.github.com/users/kubernetes/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes/subscriptions","organizations_url":"https://api.github.com/users/kubernetes/orgs","repos_url":"https://api.github.com/users/kubernetes/repos","events_url":"https://api.github.com/users/kubernetes/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes/received_events","type":"Organization","site_admin":false},"repo":{"id":20580498,"name":"kubernetes","full_name":"kubernetes/kubernetes","owner":{"login":"kubernetes","id":13629408,"avatar_url":"https://avatars.githubusercontent.com/u/13629408?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes","html_url":"https://github.com/kubernetes","followers_url":"https://api.github.com/users/kubernetes/followers","following_url":"https://api.github.com/users/kubernetes/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes/subscriptions","organizations_url":"https://api.github.com/users/kubernetes/orgs","repos_url":"https://api.github.com/users/kubernetes/repos","events_url":"https://api.github.com/users/kubernetes/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes/kubernetes","description":"Production-Grade Container Scheduling and Management","fork":false,"url":"https://api.github.com/repos/kubernetes/kubernetes","forks_url":"https://api.github.com/repos/kubernetes/kubernetes/forks","keys_url":"https://api.github.com/repos/kubernetes/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes/kubernetes/teams","hooks_url":"https://api.github.com/repos/kubernetes/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes/kubernetes/events","assignees_url":"https://api.github.com/repos/kubernetes/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes/kubernetes/tags","blobs_url":"https://api.github.com/repos/kubernetes/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes/kubernetes/languages","stargazers_url":"https://api.github.com/repos/kubernetes/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/kubernetes/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/kubernetes/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/kubernetes/kubernetes/subscription","commits_url":"https://api.github.com/repos/kubernetes/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes/kubernetes/merges","archive_url":"https://api.github.com/repos/kubernetes/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes/kubernetes/downloads","issues_url":"https://api.github.com/repos/kubernetes/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes/kubernetes/deployments","created_at":"2014-06-06T22:56:04Z","updated_at":"2016-10-20T00:23:56Z","pushed_at":"2016-10-20T01:01:30Z","git_url":"git://github.com/kubernetes/kubernetes.git","ssh_url":"git@github.com:kubernetes/kubernetes.git","clone_url":"https://github.com/kubernetes/kubernetes.git","svn_url":"https://github.com/kubernetes/kubernetes","homepage":"http://kubernetes.io","size":598986,"stargazers_count":17725,"watchers_count":17725,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5768,"mirror_url":null,"open_issues_count":4959,"forks":5768,"open_issues":4959,"watchers":17725,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/34484"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/34484"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/34484/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34484/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/8be20085d66dbe9cc0ed91451125980afb654417"}}}}
{"actor":{"display_login":"quinton-hoole"}}