{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/69263817","id":69263817,"diff_hunk":"@@ -0,0 +1,281 @@\n+<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->\n+\n+<!-- BEGIN STRIP_FOR_RELEASE -->\n+\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/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+# Redefine Container Runtime Interface\n+\n+The umbrella issue: [#22964](https://issues.k8s.io/22964)\n+\n+## Motivation\n+\n+Kubelet employs a declarative pod-level interface, which acts as the sole\n+integration point for container runtimes (e.g., `docker` and `rkt`). The\n+high-level, declarative interface has caused higher integration and maintenance\n+cost, and also slowed down feature velocity for the following reasons.\n+  1. **Not every container runtime supports the concept of pods natively**.\n+     When integrating with Kubernetes, a significant amount of work needs to\n+     go into implementing a shim of significant size to support all pod\n+     features. This also adds maintenance overhead (e.g., `docker`).\n+  2. **High-level interface discourages code sharing and reuse among runtimes**.\n+     E.g, each runtime today implements an all-encompassing `SyncPod()`\n+     function, with the Pod Spec as the input argument. The runtime implements\n+     logic to determine how to achieve the desired state based on the current\n+     status, (re-)starts pods/containers and manages lifecycle hooks\n+     accordingly.\n+  3. **Pod Spec is evolving rapidly**. New features are being added constantly.\n+     Any pod-level change or addition requires changing of all container\n+     runtime shims. E.g., init containers and volume containers.\n+\n+## Goals and Non-Goals\n+\n+The goals of defining the interface are to\n+ - **improve extensibility**: Easier container runtime integration.\n+ - **improve feature velocity**\n+ - **improve code maintainability**\n+\n+The non-goals include\n+ - proposing *how* to integrate with new runtimes, i.e., where the shim\n+   resides. The discussion of adopting a client-server architecture is tracked\n+   by [#13768](https://issues.k8s.io/13768), where benefits and shortcomings of\n+   such an architecture is discussed.\n+ - versioning the new interface/API. We intend to provide API versioning to\n+   offer stability for runtime integrations, but the details are beyond the\n+   scope of this proposal.\n+ - adding support to Windows containers. Windows container support is a\n+   parallel effort and is tracked by [#22623](https://issues.k8s.io/22623).\n+   The new interface will not be augmented to support Windows containers, but\n+   it will be made extensible such that the support can be added in the future.\n+ - re-defining Kubelet's internal interfaces. These interfaces, though, may\n+   affect Kubelet's maintainability, is not relevant to runtime integration.\n+ - improving Kubelet's efficiency or performance, e.g., adopting event stream\n+   from the container runtime [#8756](https://issues.k8s.io/8756),\n+   [#16831](https://issues.k8s.io/16831).\n+\n+## Requirements\n+\n+ * Support the already integrated container runtime: `docker` and `rkt`\n+ * Support hypervisor-based container runtimes: `hyper`.\n+\n+The existing pod-level interface will remain as it is in the near future to\n+ensure supports of all existing runtimes are continued. Meanwhile, we will\n+work with all parties involved to switching to the proposed interface.\n+\n+\n+## Container Runtime Interface\n+\n+The main idea of this proposal is to adopt an imperative container-level\n+interface, which allows Kubelet to directly control the lifecycles of the\n+containers.\n+\n+Pod is composed of a group of containers in an isolated environment with\n+resource constraints. In Kubernetes, pod is also the smallest schedulable unit.\n+After a pod has been scheduled to the node, Kubelet will create the environment\n+for the pod, and add/update/remove containers in that environment to meet the\n+Pod Spec. To distinguish between the environment and the pod as a whole, we\n+will call the pod environment **PodSandbox.**\n+\n+The container runtimes may interpret the PodSandBox concept differently based\n+on how it operates internally. For runtimes relying on hypervisor, sandbox\n+represents a virtual machine naturally. For others, it can be Linux namespaces.\n+\n+In short, a PodSandbox should have the following features.\n+\n+ * **Isolation**: E.g., Linux namespaces or a full virtual machine, or even\n+   support additional security features.\n+ * **Compute resource specifications**: A PodSandbox should implement pod-level\n+   resource demands and restrictions.\n+\n+*NOTE: The resource specification does not include externalized costs to\n+container setup that are not currently trackable as Pod constraints, e.g.,\n+filesystem setup, container image pulling, etc.*\n+\n+A container in a PodSandbox maps to an application in the Pod Spec. For Linux\n+containers, they are expected to share at least network and IPC namespaces,\n+with sharing more namespaces discussed in [#1615](https://issues.k8s.io/1615).\n+\n+\n+Below is an example of the proposed interfaces.\n+\n+```go\n+// PodSandboxManager contains basic operations for sandbox.\n+type PodSandboxManager interface {\n+    Create(config *PodSandboxConfig) (string, error)\n+    Delete(id string) (string, error)\n+    List(filter PodSandboxFilter) []PodSandboxListItem\n+    Status(id string) PodSandboxStatus\n+}\n+\n+// ContainerRuntime contains basic operations for containers.\n+type ContainerRuntime interface {\n+    Create(config *ContainerConfig, sandboxConfig *PodSandboxConfig, PodSandboxID string) (string, error)\n+    Start(id string) error\n+    Stop(id string, timeout int) error\n+    Remove(id string) error\n+    List(filter ContainerFilter) ([]ContainerListItem, error)\n+    Status(id string) (ContainerStatus, error)\n+    Exec(id string, cmd []string, streamOpts StreamOptions) error\n+}\n+\n+// ImageService contains image-related operations.\n+type ImageService interface {\n+    List() ([]Image, error)\n+    Pull(image ImageSpec, auth AuthConfig) error\n+    Remove(image ImageSpec) error\n+    Status(image ImageSpec) (Image, error)\n+    Metrics(image ImageSpec) (ImageMetrics, error)\n+}\n+\n+type ContainerMetricsGetter interface {\n+    ContainerMetrics(id string) (ContainerMetrics, error)\n+}\n+\n+All functions listed above are expected to be thread-safe.\n+```\n+\n+### Pod/Container Lifecycle\n+\n+The PodSandbox’s lifecycle is decoupled from the containers, i.e., a sandbox\n+is created before any containers, and can exist after all containers in it have","path":"docs/proposals/container-runtime-interface-v1.md","position":163,"original_position":163,"commit_id":"ddd1f3276505411202ff9c51e23c31ba2a522207","original_commit_id":"ddd1f3276505411202ff9c51e23c31ba2a522207","user":{"login":"tmrts","id":5067495,"avatar_url":"https://avatars.githubusercontent.com/u/5067495?v=3","gravatar_id":"","url":"https://api.github.com/users/tmrts","html_url":"https://github.com/tmrts","followers_url":"https://api.github.com/users/tmrts/followers","following_url":"https://api.github.com/users/tmrts/following{/other_user}","gists_url":"https://api.github.com/users/tmrts/gists{/gist_id}","starred_url":"https://api.github.com/users/tmrts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmrts/subscriptions","organizations_url":"https://api.github.com/users/tmrts/orgs","repos_url":"https://api.github.com/users/tmrts/repos","events_url":"https://api.github.com/users/tmrts/events{/privacy}","received_events_url":"https://api.github.com/users/tmrts/received_events","type":"User","site_admin":false},"body":"I imagine this is to support the concept of VMs for Hyper as well","created_at":"2016-07-01T08:08:38Z","updated_at":"2016-07-01T08:08:38Z","html_url":"https://github.com/kubernetes/kubernetes/pull/25899#discussion_r69263817","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/69263817"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/25899#discussion_r69263817"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899","id":70751838,"html_url":"https://github.com/kubernetes/kubernetes/pull/25899","diff_url":"https://github.com/kubernetes/kubernetes/pull/25899.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/25899.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25899","number":25899,"state":"open","locked":false,"title":"Add a new container runtime interface","user":{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false},"body":"This PR includes a proposal and a Go file to re-define the container runtime interface.\r\nThis is based on the original doc: https://docs.google.com/document/d/1ietD5eavK0aTuMQTw6-21r67UU73_vqYSUIPFdA0J5Q/\r\n\r\nThe umbrella issues is #22964\r\n\r\n/cc @kubernetes/sig-node ","created_at":"2016-05-19T19:33:23Z","updated_at":"2016-07-01T08:08:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7108510908691b35548ce8bb124165534fe535d5","assignee":{"login":"dchen1107","id":7740897,"avatar_url":"https://avatars.githubusercontent.com/u/7740897?v=3","gravatar_id":"","url":"https://api.github.com/users/dchen1107","html_url":"https://github.com/dchen1107","followers_url":"https://api.github.com/users/dchen1107/followers","following_url":"https://api.github.com/users/dchen1107/following{/other_user}","gists_url":"https://api.github.com/users/dchen1107/gists{/gist_id}","starred_url":"https://api.github.com/users/dchen1107/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dchen1107/subscriptions","organizations_url":"https://api.github.com/users/dchen1107/orgs","repos_url":"https://api.github.com/users/dchen1107/repos","events_url":"https://api.github.com/users/dchen1107/events{/privacy}","received_events_url":"https://api.github.com/users/dchen1107/received_events","type":"User","site_admin":false},"assignees":[{"login":"dchen1107","id":7740897,"avatar_url":"https://avatars.githubusercontent.com/u/7740897?v=3","gravatar_id":"","url":"https://api.github.com/users/dchen1107","html_url":"https://github.com/dchen1107","followers_url":"https://api.github.com/users/dchen1107/followers","following_url":"https://api.github.com/users/dchen1107/following{/other_user}","gists_url":"https://api.github.com/users/dchen1107/gists{/gist_id}","starred_url":"https://api.github.com/users/dchen1107/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dchen1107/subscriptions","organizations_url":"https://api.github.com/users/dchen1107/orgs","repos_url":"https://api.github.com/users/dchen1107/repos","events_url":"https://api.github.com/users/dchen1107/events{/privacy}","received_events_url":"https://api.github.com/users/dchen1107/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25899/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/ddd1f3276505411202ff9c51e23c31ba2a522207","head":{"label":"yujuhong:ncri","ref":"ncri","sha":"ddd1f3276505411202ff9c51e23c31ba2a522207","user":{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false},"repo":{"id":29618390,"name":"kubernetes","full_name":"yujuhong/kubernetes","owner":{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/yujuhong/kubernetes","description":"Container Cluster Manager","fork":true,"url":"https://api.github.com/repos/yujuhong/kubernetes","forks_url":"https://api.github.com/repos/yujuhong/kubernetes/forks","keys_url":"https://api.github.com/repos/yujuhong/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yujuhong/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yujuhong/kubernetes/teams","hooks_url":"https://api.github.com/repos/yujuhong/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/yujuhong/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/yujuhong/kubernetes/events","assignees_url":"https://api.github.com/repos/yujuhong/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/yujuhong/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/yujuhong/kubernetes/tags","blobs_url":"https://api.github.com/repos/yujuhong/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yujuhong/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yujuhong/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/yujuhong/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yujuhong/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/yujuhong/kubernetes/languages","stargazers_url":"https://api.github.com/repos/yujuhong/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/yujuhong/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/yujuhong/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/yujuhong/kubernetes/subscription","commits_url":"https://api.github.com/repos/yujuhong/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/yujuhong/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/yujuhong/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/yujuhong/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/yujuhong/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/yujuhong/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yujuhong/kubernetes/merges","archive_url":"https://api.github.com/repos/yujuhong/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yujuhong/kubernetes/downloads","issues_url":"https://api.github.com/repos/yujuhong/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/yujuhong/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/yujuhong/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/yujuhong/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yujuhong/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/yujuhong/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/yujuhong/kubernetes/deployments","created_at":"2015-01-21T21:45:40Z","updated_at":"2016-01-21T20:42:14Z","pushed_at":"2016-06-30T00:49:04Z","git_url":"git://github.com/yujuhong/kubernetes.git","ssh_url":"git@github.com:yujuhong/kubernetes.git","clone_url":"https://github.com/yujuhong/kubernetes.git","svn_url":"https://github.com/yujuhong/kubernetes","homepage":"http://kubernetes.io","size":267487,"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":"5dfbc769e56f8e7d384611ff7edd40fbe8a7e5d4","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-07-01T07:54:11Z","pushed_at":"2016-07-01T07:28:57Z","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":481632,"stargazers_count":15182,"watchers_count":15182,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4750,"mirror_url":null,"open_issues_count":3766,"forks":4750,"open_issues":3766,"watchers":15182,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/25899"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/25899"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/25899/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/ddd1f3276505411202ff9c51e23c31ba2a522207"}}}}
{"actor":{"display_login":"tmrts"}}