{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/75583121","id":75583121,"diff_hunk":"@@ -0,0 +1,448 @@\n+/*\n+Copyright 2016 The Kubernetes Authors.\n+\n+Licensed under the Apache License, Version 2.0 (the \"License\");\n+you may not use this file except in compliance with the License.\n+You may obtain a copy of the License at\n+\n+    http://www.apache.org/licenses/LICENSE-2.0\n+\n+Unless required by applicable law or agreed to in writing, software\n+distributed under the License is distributed on an \"AS IS\" BASIS,\n+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+See the License for the specific language governing permissions and\n+limitations under the License.\n+*/\n+\n+package replicaset\n+\n+import (\n+\t\"encoding/json\"\n+\t\"reflect\"\n+\t\"time\"\n+\n+\t\"github.com/golang/glog\"\n+\n+\tfed \"k8s.io/kubernetes/federation/apis/federation\"\n+\tfedv1 \"k8s.io/kubernetes/federation/apis/federation/v1beta1\"\n+\tfedclientset \"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4\"\n+\tplanner \"k8s.io/kubernetes/federation/pkg/federation-controller/replicaset/planner\"\n+\tfedutil \"k8s.io/kubernetes/federation/pkg/federation-controller/util\"\n+\t\"k8s.io/kubernetes/pkg/api\"\n+\t\"k8s.io/kubernetes/pkg/api/meta\"\n+\tapiv1 \"k8s.io/kubernetes/pkg/api/v1\"\n+\textensionsv1 \"k8s.io/kubernetes/pkg/apis/extensions/v1beta1\"\n+\t\"k8s.io/kubernetes/pkg/client/cache\"\n+\tkubeclientset \"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4\"\n+\t\"k8s.io/kubernetes/pkg/controller\"\n+\t\"k8s.io/kubernetes/pkg/controller/framework\"\n+\t\"k8s.io/kubernetes/pkg/runtime\"\n+\t\"k8s.io/kubernetes/pkg/util/flowcontrol\"\n+\t\"k8s.io/kubernetes/pkg/util/wait\"\n+\t\"k8s.io/kubernetes/pkg/util/workqueue\"\n+\t\"k8s.io/kubernetes/pkg/watch\"\n+)\n+\n+const (\n+\tFedReplicaSetPreferencesAnnotation = \"\"\n+\tallClustersKey                     = \"THE_ALL_CLUSTER_KEY\"\n+\tUserAgentName                      = \"Federation-replicaset-Controller\"\n+)\n+\n+var (\n+\treplicaSetReviewDelay   = 10 * time.Second\n+\tclusterAvailableDelay   = 20 * time.Second\n+\tclusterUnavailableDelay = 60 * time.Second\n+)\n+\n+func parseFederationReplicaSetReference(frs *extensionsv1.ReplicaSet) (*fed.FederatedReplicaSetPreferences, error) {\n+\taccessor, err := meta.Accessor(frs)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\tanno := accessor.GetAnnotations()\n+\tif anno == nil {\n+\t\treturn nil, nil\n+\t}\n+\tfrsPrefString, found := anno[FedReplicaSetPreferencesAnnotation]\n+\tif !found {\n+\t\treturn nil, nil\n+\t}\n+\tvar frsPref fed.FederatedReplicaSetPreferences\n+\tif err := json.Unmarshal([]byte(frsPrefString), &frsPref); err != nil {\n+\t\treturn nil, err\n+\t}\n+\treturn &frsPref, nil\n+}\n+\n+type ReplicaSetController struct {\n+\tfedClient fedclientset.Interface\n+\n+\treplicaSetController *framework.Controller\n+\treplicaSetStore      cache.StoreToReplicaSetLister\n+\n+\tfedReplicaSetInformer fedutil.FederatedInformer\n+\tfedPodInformer        fedutil.FederatedInformer\n+\n+\treplicasetDeliverer *fedutil.DelayingDeliverer\n+\tclusterDeliverer    *fedutil.DelayingDeliverer\n+\treplicasetWorkQueue workqueue.Interface\n+\n+\treplicaSetBackoff *flowcontrol.Backoff\n+\n+\tdefaultPlanner *planner.Planner\n+}\n+\n+// NewclusterController returns a new cluster controller\n+func NewReplicaSetController(federationClient fedclientset.Interface) *ReplicaSetController {\n+\tfrsc := &ReplicaSetController{\n+\t\tfedClient:           federationClient,\n+\t\treplicasetDeliverer: fedutil.NewDelayingDeliverer(),\n+\t\tclusterDeliverer:    fedutil.NewDelayingDeliverer(),\n+\t\treplicasetWorkQueue: workqueue.New(),\n+\t\treplicaSetBackoff:   flowcontrol.NewBackOff(5*time.Second, time.Minute),\n+\t\tdefaultPlanner: planner.NewPlanner(&fed.FederatedReplicaSetPreferences{\n+\t\t\tClusters: map[string]fed.ClusterReplicaSetPreferences{\n+\t\t\t\t\"*\": {Weight: 1},\n+\t\t\t},\n+\t\t}),\n+\t}\n+\n+\treplicaSetFedInformerFactory := func(cluster *fedv1.Cluster, clientset kubeclientset.Interface) (cache.Store, framework.ControllerInterface) {\n+\t\treturn framework.NewInformer(\n+\t\t\t&cache.ListWatch{\n+\t\t\t\tListFunc: func(options api.ListOptions) (runtime.Object, error) {\n+\t\t\t\t\treturn clientset.Extensions().ReplicaSets(apiv1.NamespaceAll).List(options)\n+\t\t\t\t},\n+\t\t\t\tWatchFunc: func(options api.ListOptions) (watch.Interface, error) {\n+\t\t\t\t\treturn clientset.Extensions().ReplicaSets(apiv1.NamespaceAll).Watch(options)\n+\t\t\t\t},\n+\t\t\t},\n+\t\t\t&extensionsv1.ReplicaSet{},\n+\t\t\tcontroller.NoResyncPeriodFunc(),\n+\t\t\tfedutil.NewTriggerOnAllChanges(\n+\t\t\t\tfunc(obj runtime.Object) { frsc.deliverLocalReplicaSet(obj, replicaSetReviewDelay) },\n+\t\t\t),\n+\t\t)\n+\t}\n+\tclusterLifecycle := fedutil.ClusterLifecycleHandlerFuncs{\n+\t\tClusterAvailable: func(cluster *fedv1.Cluster) { /* no rebalancing for now */ },\n+\t\tClusterUnavailable: func(cluster *fedv1.Cluster, _ []interface{}) {\n+\t\t\tfrsc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterUnavailableDelay)\n+\t\t},\n+\t}\n+\tfrsc.fedReplicaSetInformer = fedutil.NewFederatedInformer(federationClient, replicaSetFedInformerFactory, &clusterLifecycle)\n+\n+\tpodFedInformerFactory := func(cluster *fedv1.Cluster, clientset kubeclientset.Interface) (cache.Store, framework.ControllerInterface) {\n+\t\treturn framework.NewInformer(\n+\t\t\t&cache.ListWatch{\n+\t\t\t\tListFunc: func(options api.ListOptions) (runtime.Object, error) {\n+\t\t\t\t\treturn clientset.Core().Pods(apiv1.NamespaceAll).List(options)\n+\t\t\t\t},\n+\t\t\t\tWatchFunc: func(options api.ListOptions) (watch.Interface, error) {\n+\t\t\t\t\treturn clientset.Core().Pods(apiv1.NamespaceAll).Watch(options)\n+\t\t\t\t},\n+\t\t\t},\n+\t\t\t&apiv1.Pod{},\n+\t\t\tcontroller.NoResyncPeriodFunc(),\n+\t\t\tfedutil.NewTriggerOnAllChanges(\n+\t\t\t\tfunc(obj runtime.Object) {\n+\t\t\t\t\t//frsc.deliverLocalReplicaSet(obj, replicaSetReviewDelay)","path":"federation/pkg/federation-controller/replicaset/replicasetcontroller.go","position":150,"original_position":150,"commit_id":"6caa8538b8e73c4f9a50da4dd9670dbcf83ebd80","original_commit_id":"6caa8538b8e73c4f9a50da4dd9670dbcf83ebd80","user":{"login":"mwielgus","id":11994812,"avatar_url":"https://avatars.githubusercontent.com/u/11994812?v=3","gravatar_id":"","url":"https://api.github.com/users/mwielgus","html_url":"https://github.com/mwielgus","followers_url":"https://api.github.com/users/mwielgus/followers","following_url":"https://api.github.com/users/mwielgus/following{/other_user}","gists_url":"https://api.github.com/users/mwielgus/gists{/gist_id}","starred_url":"https://api.github.com/users/mwielgus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwielgus/subscriptions","organizations_url":"https://api.github.com/users/mwielgus/orgs","repos_url":"https://api.github.com/users/mwielgus/repos","events_url":"https://api.github.com/users/mwielgus/events{/privacy}","received_events_url":"https://api.github.com/users/mwielgus/received_events","type":"User","site_admin":false},"body":"Yeah, another problem with the lack of controller/owner ref. We need to trigger appropriate replica set reconciliation. But obviously there is no information which. Options:\r\n1. trigger all replica set reconciliation in 2-3 min. Single line of code.\r\n2. create another set of delivery queues, etc to check to which RS this pod belongs and trigger appropriate replica set reconciliation. +100 lines of code. \r\n\r\nLets start with 1 to get this PR merged and working. ","created_at":"2016-08-20T18:53:27Z","updated_at":"2016-08-20T18:53:27Z","html_url":"https://github.com/kubernetes/kubernetes/pull/29741#discussion_r75583121","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/75583121"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/29741#discussion_r75583121"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741","id":79225497,"html_url":"https://github.com/kubernetes/kubernetes/pull/29741","diff_url":"https://github.com/kubernetes/kubernetes/pull/29741.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/29741.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29741","number":29741,"state":"open","locked":false,"title":"Federation replicaset controller","user":{"login":"jianhuiz","id":1171596,"avatar_url":"https://avatars.githubusercontent.com/u/1171596?v=3","gravatar_id":"","url":"https://api.github.com/users/jianhuiz","html_url":"https://github.com/jianhuiz","followers_url":"https://api.github.com/users/jianhuiz/followers","following_url":"https://api.github.com/users/jianhuiz/following{/other_user}","gists_url":"https://api.github.com/users/jianhuiz/gists{/gist_id}","starred_url":"https://api.github.com/users/jianhuiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jianhuiz/subscriptions","organizations_url":"https://api.github.com/users/jianhuiz/orgs","repos_url":"https://api.github.com/users/jianhuiz/repos","events_url":"https://api.github.com/users/jianhuiz/events{/privacy}","received_events_url":"https://api.github.com/users/jianhuiz/received_events","type":"User","site_admin":false},"body":"TBD: integrate with the scheduler, events\r\n\r\n@quinton-hoole @deepak-vij @kshafiee\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/29741)\r\n<!-- Reviewable:end -->\r\n","created_at":"2016-07-28T16:17:58Z","updated_at":"2016-08-20T18:53:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"65de665383a0e9635110f4ce7f83c748dd0b7038","assignee":{"login":"mwielgus","id":11994812,"avatar_url":"https://avatars.githubusercontent.com/u/11994812?v=3","gravatar_id":"","url":"https://api.github.com/users/mwielgus","html_url":"https://github.com/mwielgus","followers_url":"https://api.github.com/users/mwielgus/followers","following_url":"https://api.github.com/users/mwielgus/following{/other_user}","gists_url":"https://api.github.com/users/mwielgus/gists{/gist_id}","starred_url":"https://api.github.com/users/mwielgus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwielgus/subscriptions","organizations_url":"https://api.github.com/users/mwielgus/orgs","repos_url":"https://api.github.com/users/mwielgus/repos","events_url":"https://api.github.com/users/mwielgus/events{/privacy}","received_events_url":"https://api.github.com/users/mwielgus/received_events","type":"User","site_admin":false},"assignees":[{"login":"mwielgus","id":11994812,"avatar_url":"https://avatars.githubusercontent.com/u/11994812?v=3","gravatar_id":"","url":"https://api.github.com/users/mwielgus","html_url":"https://github.com/mwielgus","followers_url":"https://api.github.com/users/mwielgus/followers","following_url":"https://api.github.com/users/mwielgus/following{/other_user}","gists_url":"https://api.github.com/users/mwielgus/gists{/gist_id}","starred_url":"https://api.github.com/users/mwielgus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwielgus/subscriptions","organizations_url":"https://api.github.com/users/mwielgus/orgs","repos_url":"https://api.github.com/users/mwielgus/repos","events_url":"https://api.github.com/users/mwielgus/events{/privacy}","received_events_url":"https://api.github.com/users/mwielgus/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/22","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.4","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/22/labels","id":1777384,"number":22,"title":"v1.4","description":"https://github.com/kubernetes/features/blob/master/release-1.4/Release-1.4.md","creator":{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false},"open_issues":225,"closed_issues":286,"state":"open","created_at":"2016-05-19T18:50:19Z","updated_at":"2016-08-20T18:36:39Z","due_on":"2016-09-15T00:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29741/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/6caa8538b8e73c4f9a50da4dd9670dbcf83ebd80","head":{"label":"jianhuiz:federation-replicaset-controller","ref":"federation-replicaset-controller","sha":"6caa8538b8e73c4f9a50da4dd9670dbcf83ebd80","user":{"login":"jianhuiz","id":1171596,"avatar_url":"https://avatars.githubusercontent.com/u/1171596?v=3","gravatar_id":"","url":"https://api.github.com/users/jianhuiz","html_url":"https://github.com/jianhuiz","followers_url":"https://api.github.com/users/jianhuiz/followers","following_url":"https://api.github.com/users/jianhuiz/following{/other_user}","gists_url":"https://api.github.com/users/jianhuiz/gists{/gist_id}","starred_url":"https://api.github.com/users/jianhuiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jianhuiz/subscriptions","organizations_url":"https://api.github.com/users/jianhuiz/orgs","repos_url":"https://api.github.com/users/jianhuiz/repos","events_url":"https://api.github.com/users/jianhuiz/events{/privacy}","received_events_url":"https://api.github.com/users/jianhuiz/received_events","type":"User","site_admin":false},"repo":{"id":59850334,"name":"kubernetes","full_name":"jianhuiz/kubernetes","owner":{"login":"jianhuiz","id":1171596,"avatar_url":"https://avatars.githubusercontent.com/u/1171596?v=3","gravatar_id":"","url":"https://api.github.com/users/jianhuiz","html_url":"https://github.com/jianhuiz","followers_url":"https://api.github.com/users/jianhuiz/followers","following_url":"https://api.github.com/users/jianhuiz/following{/other_user}","gists_url":"https://api.github.com/users/jianhuiz/gists{/gist_id}","starred_url":"https://api.github.com/users/jianhuiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jianhuiz/subscriptions","organizations_url":"https://api.github.com/users/jianhuiz/orgs","repos_url":"https://api.github.com/users/jianhuiz/repos","events_url":"https://api.github.com/users/jianhuiz/events{/privacy}","received_events_url":"https://api.github.com/users/jianhuiz/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jianhuiz/kubernetes","description":"Container Cluster Manager from Google","fork":true,"url":"https://api.github.com/repos/jianhuiz/kubernetes","forks_url":"https://api.github.com/repos/jianhuiz/kubernetes/forks","keys_url":"https://api.github.com/repos/jianhuiz/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jianhuiz/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jianhuiz/kubernetes/teams","hooks_url":"https://api.github.com/repos/jianhuiz/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/jianhuiz/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/jianhuiz/kubernetes/events","assignees_url":"https://api.github.com/repos/jianhuiz/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/jianhuiz/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/jianhuiz/kubernetes/tags","blobs_url":"https://api.github.com/repos/jianhuiz/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jianhuiz/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jianhuiz/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/jianhuiz/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jianhuiz/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/jianhuiz/kubernetes/languages","stargazers_url":"https://api.github.com/repos/jianhuiz/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/jianhuiz/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/jianhuiz/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/jianhuiz/kubernetes/subscription","commits_url":"https://api.github.com/repos/jianhuiz/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/jianhuiz/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/jianhuiz/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/jianhuiz/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/jianhuiz/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/jianhuiz/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jianhuiz/kubernetes/merges","archive_url":"https://api.github.com/repos/jianhuiz/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jianhuiz/kubernetes/downloads","issues_url":"https://api.github.com/repos/jianhuiz/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/jianhuiz/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/jianhuiz/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/jianhuiz/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jianhuiz/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/jianhuiz/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/jianhuiz/kubernetes/deployments","created_at":"2016-05-27T17:01:48Z","updated_at":"2016-05-27T17:02:06Z","pushed_at":"2016-08-20T17:26:14Z","git_url":"git://github.com/jianhuiz/kubernetes.git","ssh_url":"git@github.com:jianhuiz/kubernetes.git","clone_url":"https://github.com/jianhuiz/kubernetes.git","svn_url":"https://github.com/jianhuiz/kubernetes","homepage":"http://kubernetes.io","size":324732,"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":"d07348dd84ba87b9f13c3df690a6bd8d0f2b9302","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-08-20T17:00:21Z","pushed_at":"2016-08-20T18:36:40Z","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":534847,"stargazers_count":16225,"watchers_count":16225,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5204,"mirror_url":null,"open_issues_count":4236,"forks":5204,"open_issues":4236,"watchers":16225,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/29741"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/29741"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/29741/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/29741/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/6caa8538b8e73c4f9a50da4dd9670dbcf83ebd80"}}}}
{"actor":{"display_login":"mwielgus"}}