{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/64969519","id":64969519,"diff_hunk":"@@ -0,0 +1,338 @@\n+/*\n+Copyright 2016 The Kubernetes Authors All rights reserved.\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 container\n+\n+import (\n+\t\"io\"\n+\n+\t\"k8s.io/kubernetes/pkg/api\"\n+\t\"k8s.io/kubernetes/pkg/api/unversioned\"\n+)\n+\n+type PodSandboxID string\n+\n+// PodSandboxManager provides basic operations to create/delete and examine the\n+// PodSandboxes.\n+type PodSandboxManager interface {\n+\t// Create creates a sandbox based on the given config, and returns the\n+\t//  of the new sandbox.\n+\tCreate(config *PodSandboxConfig) (PodSandboxID, error)\n+\t// Delete deletes the sandbox by its ID. If there are any running\n+\t// containers in the sandbox, they will be terminated as a side-effect.\n+\tDelete(id PodSandboxID) error\n+\t// List lists existing sandboxes, filtered by the given PodSandboxFilter.\n+\tList(filter PodSandboxFilter) []PodSandboxListItem\n+\t// Status gets the status of the sandbox by ID.\n+\tStatus(id PodSandboxID) (PodSandboxStatus, error)\n+\t// PortForward copies the data from the port in the PodSandBox to the\n+\t// stream.\n+\t// TODO: Should PortForward be in a separate interface.\n+\tPortForward(id PodSandboxID, port uint16, stream io.ReadWriteCloser) error\n+}\n+\n+// PodSandboxConfig holds all the required and optional fields for creating a\n+// sandbox.\n+type PodSandboxConfig struct {\n+\t// Name is the name of the sandbox.\n+\tName string\n+\t// Hostname is the hostname of the sandbox.\n+\tHostname string\n+\t// DNSOptions sets the DNS options for the sandbox.\n+\tDNSOptions DNSOptions\n+\t// PortMappings lists the port mappings for the sandbox.\n+\tPortMappings []PortMapping\n+\t// Mounts lists the mounts to be added to the sandbox's filesystem.\n+\tMounts []Mount\n+\t// Resources specifies the resource requirements for the sandbox.\n+\t// Note: On a Linux host, kubelet will create a pod-level cgroup and pass\n+\t// it as the cgroup parent for the PodSandbox. For some runtimes, this is\n+\t// sufficent to fulfill pod-level resource requirements, and this field\n+\t// will not be used. For others, e.g., hypervisor-based runtimes, explicit\n+\t// resource requirements for the sandbox are needed at creation time.\n+\tResources PodSandboxResources\n+\t// Labels are key value pairs that may be used to scope and select individual resources.\n+\tLabels Labels\n+\t// Annotations is an unstructured key value map that may be set by external\n+\t// tools to store and retrieve arbitrary metadata.\n+\tAnnotations map[string]string\n+\n+\t// Linux contains configurations specific to Linux hosts.\n+\tLinux *LinuxPodSandboxConfig\n+}\n+\n+// Labels are key value pairs that may be used to scope and select individual resources.\n+// Label keys are of the form:\n+//     label-key ::= prefixed-name | name\n+//     prefixed-name ::= prefix '/' name\n+//     prefix ::= DNS_SUBDOMAIN\n+//     name ::= DNS_LABEL\n+type Labels map[string]string\n+\n+// LinuxPodSandboxConfig holds platform-specific configuraions for Linux\n+// host platforms and Linux-based containers.\n+type LinuxPodSandboxConfig struct {\n+\t// CgroupParent is the parent cgroup of the sandbox.\n+\tCgroupParent string\n+\t// NamespaceOptions contains configurations for the sandbox's namespaces.\n+\t// This will be used only if the PodSandbox uses namespace for isolation.\n+\tNamespaceOptions NamespaceOptions\n+}\n+\n+// NamespaceOptions provides options for Linux namespaces.\n+type NamespaceOptions struct {\n+\t// HostNetwork uses the host's network namespace.\n+\tHostNetwork bool\n+\t// HostPID uses the host's pid namesapce.\n+\tHostPID bool\n+\t// HostIPC uses the host's ipc namespace.\n+\tHostIPC bool\n+}\n+\n+// DNSOptions specifies the DNS servers and search domains.\n+type DNSOptions struct {\n+\t// Servers is a list of DNS servers of the cluster.\n+\tServers []string\n+\t// Searches is a list of DNS search domains of the cluster.\n+\tSearches []string\n+}\n+\n+type PodSandboxState string\n+\n+const (\n+\t// PodSandboxActive means the sandbox is functioning properly.\n+\tPodSandboxActive PodSandboxState = \"active\"\n+\t// PodSandboxInactive means the sandbox is not functioning properly.\n+\tPodSandboxInactive PodSandboxState = \"inactive\"\n+)\n+\n+// PodSandboxFilter is used to filter a list of PodSandboxes.\n+type PodSandboxFilter struct {\n+\t// Name of the sandbox.\n+\tName string\n+\t// ID of the sandbox.\n+\tID string\n+\t// State of the sandbox.\n+\tState string\n+\t// LabelSelector to select matches.\n+\t// Only api.MatchLabels is supported for now and the requirements\n+\t// are ANDed. MatchExpressions is not supported yet.\n+\tLabelSelector unversioned.LabelSelector\n+}\n+\n+// PodSandboxListItem contains minimal information about a sandbox.\n+type PodSandboxListItem struct {\n+\tID    string\n+\tState PodSandboxState\n+}\n+\n+// PodSandboxStatus contains the status of the PodSandbox.\n+type PodSandboxStatus struct {\n+\t// ID of the sandbox.\n+\tID string\n+\t// State of the sandbox.\n+\tState PodSandboxState\n+\t// Network contains network status if network is handled by the runtime.\n+\tNetwork *PodSandboxNetworkStatus\n+\t// Status specific to a Linux sandbox.\n+\tLinux *LinuxPodSandboxStatus\n+}\n+\n+// PodSandboxNetworkStatus is the status of the network for a PodSandbox.\n+type PodSandboxNetworkStatus struct {\n+\tIP string\n+}\n+\n+// Namespaces contains paths to the namespaces.\n+type Namespaces struct {\n+\t// Network is the path to the network namespace.\n+\tNetwork string\n+}\n+\n+// LinuxSandBoxStatus contains status specific to Linux sandboxes.\n+type LinuxPodSandboxStatus struct {\n+\t// Namespaces contains paths to the sandbox's namespaces.\n+\tNamespaces *Namespaces\n+}\n+\n+// PodSandboxResources contains the CPU/memory resource requirements.\n+type PodSandboxResources struct {\n+\t// CPU resource requirement.\n+\tCPU api.ResourceRequirements\n+\t// Memory resource requirement.\n+\tMemory api.ResourceRequirements\n+}\n+\n+// This is to distinguish with existing ContainerID type, which includes a\n+// runtime type prefix (e.g., docker://). We may rename this later.\n+type RawContainerID string\n+\n+// ContainerRuntime provides methods for container lifecycle operations, as\n+// well as listing or inspecting existing containers.\n+type ContainerRuntime interface {\n+\t// Create creates a container in the sandbox, and returns the ID\n+\t// of the created container.\n+\tCreate(config *ContainerConfig, sandboxConfig *PodSandboxConfig, sandboxID PodSandboxID) (RawContainerID, error)\n+\t// Start starts a created container.\n+\tStart(RawContainerID ContainerID) error\n+\t// Stop stops a running container with a grace period (i.e., timeout).\n+\tStop(RawContainerID string, timeout int) error\n+\t// Remove removes the container.\n+\tRemove(RawContainerID string) error\n+\t// List lists the existing containers that match the ContainerFilter.\n+\t// The returned list should only include containers previously created\n+\t// by this ContainerManager.\n+\tList(filter ContainerFilter) ([]Container, error)\n+\t// Status returns the status of the container.\n+\tStatus(RawContainerID string) (ContainerStatus, error)\n+}\n+\n+// ContainerCommandExecutor provides methods to run a command in the container.\n+// TODO: Should we merge this with ContainerRuntime?\n+type ContainerCommandExecutor interface {\n+\t// Exec executes a command in the container.\n+\tExec(RawContainerID string, cmd []string, streamOpts StreamOptions) error\n+}\n+\n+type ContainerConfig struct {\n+\t// Name of the container.\n+\tName string\n+\t// Image to use.\n+\tImage ImageSpec\n+\t// Command to execute (i.e., entrypoint for docker)\n+\tCommand []string\n+\t// Args for the Command (i.e., command for docker)\n+\tArgs []string\n+\t// Current working directory of the command.\n+\tWorkingDir string\n+\t// List of environment variable to set in the container\n+\tEnv []KeyValue\n+\t// Mounts specifies mounts for the container\n+\tMounts []Mount\n+\t// Labels are key value pairs that may be used to scope and select individual resources.\n+\tLabels Labels\n+\t// Annotations is an unstructured key value map that may be set by external\n+\t// tools to store and retrieve arbitrary metadata.\n+\tAnnotations map[string]string\n+\t// Privileged runs the container in the privileged mode.\n+\tPrivileged bool\n+\t// ReadOnlyRootFS sets the root filesystem of the container to be\n+\t// read-only.\n+\tReadOnlyRootFS bool\n+\t// Path to store the container log on the host (i.e., outside of the\n+\t// sandbox).\n+\tLogPath string\n+\n+\t// Variables for interactive containers, these have very specialized\n+\t// use-cases (e.g. debugging).\n+\t// TODO: Determine if we need to continue supporting these fields that are\n+\t// part of Kubernetes's Container Spec.\n+\tStdin     bool\n+\tStdinOnce bool\n+\tTTY       bool\n+\n+\t// Linux contains configuration specific to Linux containers.\n+\tLinux *LinuxContainerConfig\n+}\n+\n+// LinuxContainerConfig contains platform-specific configuration for\n+// Linux-based containers.\n+type LinuxContainerConfig struct {\n+\t// Resources specification for the container.\n+\tResources LinuxContainerResources\n+\t// AddCapabilities lists capabilities to add.\n+\tAddCapabilities []string\n+\t// DropCapabilities lists capabilities to drop.\n+\tDropCapabilities []string\n+\t// SELinux is the SELinux context to be applied.\n+\tSELinux *api.SELinuxOptions\n+}\n+\n+// LinuxContainerResources specifies Linux specific configuration for\n+// resources.\n+// TODO: Consider using Resources from opencontainers/runtime-spec/specs-go\n+// directly.\n+type LinuxContainerResources struct {\n+\t// CPU CFS (Completely Fair Scheduler) period\n+\tCPUPeriod uint64\n+\t// CPU CFS (Completely Fair Scheduler) quota\n+\tCPUQuota uint64\n+\t// CPU shares (relative weight vs. other containers)\n+\tCPUShares uint64\n+\t// Memory limit in bytes\n+\tMemoryLimitInBytes uint64\n+\t// OOMScoreAdj adjusts the oom-killer score.\n+\tOomScoreAdj int\n+\t// Swappiness specifies hwow aggressive the kernel will swap memory pages.","path":"pkg/kubelet/container/interface.go","position":null,"original_position":279,"commit_id":"6b1f2dd8ad43fc75ff85b011f93c015997ffadc9","original_commit_id":"7674a3563e076840baf54e0ef6d24dd7b0c916b0","user":{"login":"vishh","id":7063592,"avatar_url":"https://avatars.githubusercontent.com/u/7063592?v=3","gravatar_id":"","url":"https://api.github.com/users/vishh","html_url":"https://github.com/vishh","followers_url":"https://api.github.com/users/vishh/followers","following_url":"https://api.github.com/users/vishh/following{/other_user}","gists_url":"https://api.github.com/users/vishh/gists{/gist_id}","starred_url":"https://api.github.com/users/vishh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishh/subscriptions","organizations_url":"https://api.github.com/users/vishh/orgs","repos_url":"https://api.github.com/users/vishh/repos","events_url":"https://api.github.com/users/vishh/events{/privacy}","received_events_url":"https://api.github.com/users/vishh/received_events","type":"User","site_admin":false},"body":"Docker runtime implementation should disable it. The features here in this interface need not necessarily match what we do with docker today. They should in general match the features Kubernetes exposes.","created_at":"2016-05-27T21:35:39Z","updated_at":"2016-05-27T21:35:39Z","html_url":"https://github.com/kubernetes/kubernetes/pull/25899#discussion_r64969519","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25899","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/64969519"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/25899#discussion_r64969519"},"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-05-27T21:35:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c94512be474ad9ac92457edb9f259f3792447834","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},"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/6b1f2dd8ad43fc75ff85b011f93c015997ffadc9","head":{"label":"yujuhong:ncri","ref":"ncri","sha":"6b1f2dd8ad43fc75ff85b011f93c015997ffadc9","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-05-27T19:16:36Z","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":239657,"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":"9784dff94ecc5bd3370f9f6d9a2af3439275f918","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":"Container Cluster Manager from Google","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-05-27T21:18:53Z","pushed_at":"2016-05-27T21:28:54Z","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":450767,"stargazers_count":14625,"watchers_count":14625,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4469,"mirror_url":null,"open_issues_count":3686,"forks":4469,"open_issues":3686,"watchers":14625,"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/6b1f2dd8ad43fc75ff85b011f93c015997ffadc9"}}}}
{"actor":{"display_login":"vishh"}}