{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/community/pulls/comments/227999665","pull_request_review_id":168167819,"id":227999665,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNzk5OTY2NQ==","diff_hunk":"@@ -0,0 +1,272 @@\n+---\n+kep-number: 13\n+title: Removing In-Tree Cloud Providers\n+authors:\n+  - \"@andrewsykim\"\n+  - \"@cheftako\"\n+owning-sig: sig-cloudprovider\n+participating-sigs:\n+  - sig-apps\n+  - sig-aws\n+  - sig-azure\n+  - sig-apimachinery\n+  - sig-gcp\n+  - sig-network\n+  - sig-openstack\n+  - sig-storage\n+reviewers:\n+  - \"@andrewsykim\"\n+  - \"@cheftako\"\n+  - \"@d-nishi\"\n+  - \"@dims\"\n+  - \"@hogepodge\"\n+  - \"@mcrute\"\n+  - \"@steward-yu\"\n+approvers:\n+  - \"@thockin\"\n+editor: TBD\n+status: implementable\n+\n+---\n+\n+# Removing In-Tree Cloud Provider Code\n+\n+## Table of Contents\n+\n+   * [Removing In-Tree Cloud Provider Code](#removing-in-tree-cloud-provider-code)\n+      * [Table of Contents](#table-of-contents)\n+      * [Terms](#terms)\n+      * [Summary](#summary)\n+      * [Motivation](#motivation)\n+         * [Goals](#goals)\n+         * [Non-Goals](#non-goals)\n+      * [Proposal](#proposal)\n+         * [Approach](#approach)\n+            * [Phase 1 - Moving Cloud Provider Code to Staging](#phase-1---moving-cloud-provider-code-to-staging)\n+            * [Phase 2 - Building CCM from Provider Repos](#phase-2---building-ccm-from-provider-repos)\n+            * [Phase 3 - Migrating Provider Code to Provider Repos](#phase-3---migrating-provider-code-to-provider-repos)\n+         * [Staging Directory](#staging-directory)\n+            * [Cloud Provider Instances](#cloud-provider-instances)\n+      * [Alternatives](#alternatives)\n+         * [Staging Alternatives](#staging-alternatives)\n+            * [Git Filter-Branch](#git-filter-branch)\n+         * [Build Location Alternatives](#build-location-alternatives)\n+            * [Build K8s/K8s from within K8s/Cloud-provider](#build-k8sk8s-from-within-k8scloud-provider)\n+            * [Build K8s/Cloud-provider within K8s/K8s](#build-k8scloud-provider-within-k8sk8s)\n+         * [Config Alternatives](#config-alternatives)\n+            * [Use component config to determine where controllers run](#use-component-config-to-determine-where-controllers-run)\n+\n+## Terms\n+\n+- **CCM**: Cloud Controller Manager - The controller manager responsible for running cloud provider dependent logic,\n+such as the service and route controllers.\n+- **KCM**: Kubernetes Controller Manager - The controller manager responsible for running generic Kubernetes logic,\n+such as job and node_lifecycle controllers.\n+- **KAS**: Kubernetes API Server - The core api server responsible for handling all API requests for the Kubernetes\n+control plane. This includes things like namespace, node, pod and job resources.\n+- **K8s/K8s**: The core kubernetes github repository.\n+- **K8s/cloud-provider**: Any or all of the repos for each cloud provider. Examples include [cloud-provider-gcp](https://github.com/kubernetes/cloud-provider-gcp),\n+[cloud-provider-aws](https://github.com/kubernetes/cloud-provider-aws) and [cloud-provider-azure](https://github.com/kubernetes/cloud-provider-azure).\n+We have created these repos for each of the in-tree cloud providers. This document assumes in various places that the\n+cloud providers will place the relevant code in these repos. Whether this is a long-term solution to which additional\n+cloud providers will be added, or an incremental step toward moving out of the Kubernetes org is out of scope of this\n+document, and merits discussion in a broader forum and input from SIG-Architecture and Steering Committee.\n+- **K8s SIGs/library**: Any SIG owned repository.\n+- **Staging**: Staging: Separate repositories which are currently visible under the K8s/K8s repo, which contain code\n+considered to be safe to be vendored outside of the K8s/K8s repo and which should eventually be fully separated from\n+the K8s/K8s repo. Contents of Staging are prevented from depending on code in K8s/K8s which are not in Staging.\n+Controlled by [publishing kubernetes-rules-configmap](https://github.com/kubernetes/publishing-bot/blob/master/configs/kubernetes-rules-configmap.yaml)\n+\n+\n+## Summary\n+\n+This is a proposal outlining steps to remove \"in-tree\" cloud provider code from the kubernetes/kubernetes repo.\n+\n+## Motivation\n+\n+Motiviation behind this effort is to allow cloud providers to develop and make releases independent from the core\n+Kubernetes release cycle. The de-coupling of provider code allows for separation of concern between the core Kubernetes\n+and the initial cloud providers that are currently built into the project. Additionally, one of the goals of SIG Cloud\n+Provider is to move all providers out-of-tree to promote a vendor neutral ecosystem.\n+\n+### Goals\n+\n+- Remove all cloud provider specific code from kubernetes/kubernetes.\n+- Move the cloud provider specific controller manager logic into repos appropriate for those cloud providers.\n+\n+### Non-Goals\n+\n+- Testing/validating out-of-tree provider code for all cloud providers, this should be done by providers\n+\n+## Proposal\n+\n+### Approach\n+\n+In order to remove cloud provider code from kubernetes/kubernetes. A 3 phase approach will be taken.\n+\n+1. Move all code in `kubernetes/kubernetes/pkg/cloudprovider/providers` to `kubernetes/kubernetes/staging/cloud-provider-<provider>/`. This requires removing all dependencies in each cloud provider to `kubernetes/kubernetes`.\n+2. Begin to build CCM from external repos (`kubernetes/cloud-provider-<provider>`) via code synced from `kubernetes/kubernetes/staging/cloud-provider-<provider>`. This allows us to develop providers \"out-of-tree\" while being able to build both in-tree components like kube-controller-manager and out-of-tree components like cloud-controller-manager. Development is still done in `kubernetes/kubernetes/staging/cloud-provider-<provider>`.\n+3. Delete all code in `kubernetes/kubernetes/staging/cloud-provider-<provider>` and shift main development to `kubernetes/cloud-provider-<provider>`.\n+\n+#### Phase 1 - Moving Cloud Provider Code to Staging\n+\n+In Phase 1, all cloud provider code in `kubernetes/kubernetes/pkg/cloudprovider/providers` will be moved to `kubernetes/kubernetes/staging/cloudprovider/providers`. Moving code to a staging directory still allows us to build core Kubernetes components (`kube-controller-manager`, `kubelet`, etc) without interruption while also signalling to the community that in-tree provider code is slated for removal.\n+","path":"keps/sig-cloud-provider/0013-removing-in-tree-providers.md","position":114,"original_position":114,"commit_id":"aebf244cfc98c2ac78c1cdb1efc68f2d2a939641","original_commit_id":"fbfb2017a8f68ebc661ffef9e7e3a661759037f7","user":{"login":"andrewsykim","id":12699319,"node_id":"MDQ6VXNlcjEyNjk5MzE5","avatar_url":"https://avatars0.githubusercontent.com/u/12699319?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewsykim","html_url":"https://github.com/andrewsykim","followers_url":"https://api.github.com/users/andrewsykim/followers","following_url":"https://api.github.com/users/andrewsykim/following{/other_user}","gists_url":"https://api.github.com/users/andrewsykim/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewsykim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewsykim/subscriptions","organizations_url":"https://api.github.com/users/andrewsykim/orgs","repos_url":"https://api.github.com/users/andrewsykim/repos","events_url":"https://api.github.com/users/andrewsykim/events{/privacy}","received_events_url":"https://api.github.com/users/andrewsykim/received_events","type":"User","site_admin":false},"body":"thanks","created_at":"2018-10-25T00:07:36Z","updated_at":"2018-10-25T00:07:36Z","html_url":"https://github.com/kubernetes/community/pull/2628#discussion_r227999665","pull_request_url":"https://api.github.com/repos/kubernetes/community/pulls/2628","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/community/pulls/comments/227999665"},"html":{"href":"https://github.com/kubernetes/community/pull/2628#discussion_r227999665"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/community/pulls/2628"}},"in_reply_to_id":227614387},"pull_request":{"url":"https://api.github.com/repos/kubernetes/community/pulls/2628","id":213119446,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEzMTE5NDQ2","html_url":"https://github.com/kubernetes/community/pull/2628","diff_url":"https://github.com/kubernetes/community/pull/2628.diff","patch_url":"https://github.com/kubernetes/community/pull/2628.patch","issue_url":"https://api.github.com/repos/kubernetes/community/issues/2628","number":2628,"state":"open","locked":false,"title":"Propose Changes to Cloud Provider KEPs","user":{"login":"andrewsykim","id":12699319,"node_id":"MDQ6VXNlcjEyNjk5MzE5","avatar_url":"https://avatars0.githubusercontent.com/u/12699319?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewsykim","html_url":"https://github.com/andrewsykim","followers_url":"https://api.github.com/users/andrewsykim/followers","following_url":"https://api.github.com/users/andrewsykim/following{/other_user}","gists_url":"https://api.github.com/users/andrewsykim/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewsykim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewsykim/subscriptions","organizations_url":"https://api.github.com/users/andrewsykim/orgs","repos_url":"https://api.github.com/users/andrewsykim/repos","events_url":"https://api.github.com/users/andrewsykim/events{/privacy}","received_events_url":"https://api.github.com/users/andrewsykim/received_events","type":"User","site_admin":false},"body":"* removes any duplicate information in KEP-0002 from KEP-00013\r\n* reduces scope in KEP-00013 to only include proposal for removing in-tree provider code. Renaming the file removed the diff, see last commit to see diff between files. ","created_at":"2018-09-04T22:19:34Z","updated_at":"2018-10-25T00:07:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ef2a2b2fae2aa4f323cf8fa88ede136f159fc2e1","assignee":{"login":"hogepodge","id":367747,"node_id":"MDQ6VXNlcjM2Nzc0Nw==","avatar_url":"https://avatars3.githubusercontent.com/u/367747?v=4","gravatar_id":"","url":"https://api.github.com/users/hogepodge","html_url":"https://github.com/hogepodge","followers_url":"https://api.github.com/users/hogepodge/followers","following_url":"https://api.github.com/users/hogepodge/following{/other_user}","gists_url":"https://api.github.com/users/hogepodge/gists{/gist_id}","starred_url":"https://api.github.com/users/hogepodge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hogepodge/subscriptions","organizations_url":"https://api.github.com/users/hogepodge/orgs","repos_url":"https://api.github.com/users/hogepodge/repos","events_url":"https://api.github.com/users/hogepodge/events{/privacy}","received_events_url":"https://api.github.com/users/hogepodge/received_events","type":"User","site_admin":false},"assignees":[{"login":"hogepodge","id":367747,"node_id":"MDQ6VXNlcjM2Nzc0Nw==","avatar_url":"https://avatars3.githubusercontent.com/u/367747?v=4","gravatar_id":"","url":"https://api.github.com/users/hogepodge","html_url":"https://github.com/hogepodge","followers_url":"https://api.github.com/users/hogepodge/followers","following_url":"https://api.github.com/users/hogepodge/following{/other_user}","gists_url":"https://api.github.com/users/hogepodge/gists{/gist_id}","starred_url":"https://api.github.com/users/hogepodge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hogepodge/subscriptions","organizations_url":"https://api.github.com/users/hogepodge/orgs","repos_url":"https://api.github.com/users/hogepodge/repos","events_url":"https://api.github.com/users/hogepodge/events{/privacy}","received_events_url":"https://api.github.com/users/hogepodge/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"jagosan","id":144480,"node_id":"MDQ6VXNlcjE0NDQ4MA==","avatar_url":"https://avatars1.githubusercontent.com/u/144480?v=4","gravatar_id":"","url":"https://api.github.com/users/jagosan","html_url":"https://github.com/jagosan","followers_url":"https://api.github.com/users/jagosan/followers","following_url":"https://api.github.com/users/jagosan/following{/other_user}","gists_url":"https://api.github.com/users/jagosan/gists{/gist_id}","starred_url":"https://api.github.com/users/jagosan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jagosan/subscriptions","organizations_url":"https://api.github.com/users/jagosan/orgs","repos_url":"https://api.github.com/users/jagosan/repos","events_url":"https://api.github.com/users/jagosan/events{/privacy}","received_events_url":"https://api.github.com/users/jagosan/received_events","type":"User","site_admin":false},{"login":"hogepodge","id":367747,"node_id":"MDQ6VXNlcjM2Nzc0Nw==","avatar_url":"https://avatars3.githubusercontent.com/u/367747?v=4","gravatar_id":"","url":"https://api.github.com/users/hogepodge","html_url":"https://github.com/hogepodge","followers_url":"https://api.github.com/users/hogepodge/followers","following_url":"https://api.github.com/users/hogepodge/following{/other_user}","gists_url":"https://api.github.com/users/hogepodge/gists{/gist_id}","starred_url":"https://api.github.com/users/hogepodge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hogepodge/subscriptions","organizations_url":"https://api.github.com/users/hogepodge/orgs","repos_url":"https://api.github.com/users/hogepodge/repos","events_url":"https://api.github.com/users/hogepodge/events{/privacy}","received_events_url":"https://api.github.com/users/hogepodge/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":486032367,"node_id":"MDU6TGFiZWw0ODYwMzIzNjc=","url":"https://api.github.com/repos/kubernetes/community/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":1076074046,"node_id":"MDU6TGFiZWwxMDc2MDc0MDQ2","url":"https://api.github.com/repos/kubernetes/community/labels/kind/kep","name":"kind/kep","color":"cc99ff","default":false},{"id":653942863,"node_id":"MDU6TGFiZWw2NTM5NDI4NjM=","url":"https://api.github.com/repos/kubernetes/community/labels/sig/architecture","name":"sig/architecture","color":"d2b48c","default":false},{"id":957035853,"node_id":"MDU6TGFiZWw5NTcwMzU4NTM=","url":"https://api.github.com/repos/kubernetes/community/labels/sig/cloud-provider","name":"sig/cloud-provider","color":"d2b48c","default":false},{"id":670265417,"node_id":"MDU6TGFiZWw2NzAyNjU0MTc=","url":"https://api.github.com/repos/kubernetes/community/labels/sig/pm","name":"sig/pm","color":"d2b48c","default":false},{"id":653942920,"node_id":"MDU6TGFiZWw2NTM5NDI5MjA=","url":"https://api.github.com/repos/kubernetes/community/labels/size/XL","name":"size/XL","color":"ee5500","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/community/pulls/2628/commits","review_comments_url":"https://api.github.com/repos/kubernetes/community/pulls/2628/comments","review_comment_url":"https://api.github.com/repos/kubernetes/community/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/community/issues/2628/comments","statuses_url":"https://api.github.com/repos/kubernetes/community/statuses/aebf244cfc98c2ac78c1cdb1efc68f2d2a939641","head":{"label":"andrewsykim:update-ccm-keps","ref":"update-ccm-keps","sha":"aebf244cfc98c2ac78c1cdb1efc68f2d2a939641","user":{"login":"andrewsykim","id":12699319,"node_id":"MDQ6VXNlcjEyNjk5MzE5","avatar_url":"https://avatars0.githubusercontent.com/u/12699319?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewsykim","html_url":"https://github.com/andrewsykim","followers_url":"https://api.github.com/users/andrewsykim/followers","following_url":"https://api.github.com/users/andrewsykim/following{/other_user}","gists_url":"https://api.github.com/users/andrewsykim/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewsykim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewsykim/subscriptions","organizations_url":"https://api.github.com/users/andrewsykim/orgs","repos_url":"https://api.github.com/users/andrewsykim/repos","events_url":"https://api.github.com/users/andrewsykim/events{/privacy}","received_events_url":"https://api.github.com/users/andrewsykim/received_events","type":"User","site_admin":false},"repo":{"id":77751010,"node_id":"MDEwOlJlcG9zaXRvcnk3Nzc1MTAxMA==","name":"community","full_name":"andrewsykim/community","private":false,"owner":{"login":"andrewsykim","id":12699319,"node_id":"MDQ6VXNlcjEyNjk5MzE5","avatar_url":"https://avatars0.githubusercontent.com/u/12699319?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewsykim","html_url":"https://github.com/andrewsykim","followers_url":"https://api.github.com/users/andrewsykim/followers","following_url":"https://api.github.com/users/andrewsykim/following{/other_user}","gists_url":"https://api.github.com/users/andrewsykim/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewsykim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewsykim/subscriptions","organizations_url":"https://api.github.com/users/andrewsykim/orgs","repos_url":"https://api.github.com/users/andrewsykim/repos","events_url":"https://api.github.com/users/andrewsykim/events{/privacy}","received_events_url":"https://api.github.com/users/andrewsykim/received_events","type":"User","site_admin":false},"html_url":"https://github.com/andrewsykim/community","description":"Kubernetes community content","fork":true,"url":"https://api.github.com/repos/andrewsykim/community","forks_url":"https://api.github.com/repos/andrewsykim/community/forks","keys_url":"https://api.github.com/repos/andrewsykim/community/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andrewsykim/community/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andrewsykim/community/teams","hooks_url":"https://api.github.com/repos/andrewsykim/community/hooks","issue_events_url":"https://api.github.com/repos/andrewsykim/community/issues/events{/number}","events_url":"https://api.github.com/repos/andrewsykim/community/events","assignees_url":"https://api.github.com/repos/andrewsykim/community/assignees{/user}","branches_url":"https://api.github.com/repos/andrewsykim/community/branches{/branch}","tags_url":"https://api.github.com/repos/andrewsykim/community/tags","blobs_url":"https://api.github.com/repos/andrewsykim/community/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andrewsykim/community/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andrewsykim/community/git/refs{/sha}","trees_url":"https://api.github.com/repos/andrewsykim/community/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andrewsykim/community/statuses/{sha}","languages_url":"https://api.github.com/repos/andrewsykim/community/languages","stargazers_url":"https://api.github.com/repos/andrewsykim/community/stargazers","contributors_url":"https://api.github.com/repos/andrewsykim/community/contributors","subscribers_url":"https://api.github.com/repos/andrewsykim/community/subscribers","subscription_url":"https://api.github.com/repos/andrewsykim/community/subscription","commits_url":"https://api.github.com/repos/andrewsykim/community/commits{/sha}","git_commits_url":"https://api.github.com/repos/andrewsykim/community/git/commits{/sha}","comments_url":"https://api.github.com/repos/andrewsykim/community/comments{/number}","issue_comment_url":"https://api.github.com/repos/andrewsykim/community/issues/comments{/number}","contents_url":"https://api.github.com/repos/andrewsykim/community/contents/{+path}","compare_url":"https://api.github.com/repos/andrewsykim/community/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andrewsykim/community/merges","archive_url":"https://api.github.com/repos/andrewsykim/community/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andrewsykim/community/downloads","issues_url":"https://api.github.com/repos/andrewsykim/community/issues{/number}","pulls_url":"https://api.github.com/repos/andrewsykim/community/pulls{/number}","milestones_url":"https://api.github.com/repos/andrewsykim/community/milestones{/number}","notifications_url":"https://api.github.com/repos/andrewsykim/community/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andrewsykim/community/labels{/name}","releases_url":"https://api.github.com/repos/andrewsykim/community/releases{/id}","deployments_url":"https://api.github.com/repos/andrewsykim/community/deployments","created_at":"2016-12-31T18:04:51Z","updated_at":"2018-10-22T14:09:48Z","pushed_at":"2018-10-25T00:07:34Z","git_url":"git://github.com/andrewsykim/community.git","ssh_url":"git@github.com:andrewsykim/community.git","clone_url":"https://github.com/andrewsykim/community.git","svn_url":"https://github.com/andrewsykim/community","homepage":"","size":33731,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes:master","ref":"master","sha":"5e8e1c8bd3986a8083adcbf6a42c616a57a866fc","user":{"login":"kubernetes","id":13629408,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjI5NDA4","avatar_url":"https://avatars2.githubusercontent.com/u/13629408?v=4","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":57939112,"node_id":"MDEwOlJlcG9zaXRvcnk1NzkzOTExMg==","name":"community","full_name":"kubernetes/community","private":false,"owner":{"login":"kubernetes","id":13629408,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjI5NDA4","avatar_url":"https://avatars2.githubusercontent.com/u/13629408?v=4","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},"html_url":"https://github.com/kubernetes/community","description":"Kubernetes community content","fork":false,"url":"https://api.github.com/repos/kubernetes/community","forks_url":"https://api.github.com/repos/kubernetes/community/forks","keys_url":"https://api.github.com/repos/kubernetes/community/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes/community/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes/community/teams","hooks_url":"https://api.github.com/repos/kubernetes/community/hooks","issue_events_url":"https://api.github.com/repos/kubernetes/community/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes/community/events","assignees_url":"https://api.github.com/repos/kubernetes/community/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes/community/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes/community/tags","blobs_url":"https://api.github.com/repos/kubernetes/community/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes/community/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes/community/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes/community/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes/community/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes/community/languages","stargazers_url":"https://api.github.com/repos/kubernetes/community/stargazers","contributors_url":"https://api.github.com/repos/kubernetes/community/contributors","subscribers_url":"https://api.github.com/repos/kubernetes/community/subscribers","subscription_url":"https://api.github.com/repos/kubernetes/community/subscription","commits_url":"https://api.github.com/repos/kubernetes/community/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes/community/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes/community/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes/community/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes/community/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes/community/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes/community/merges","archive_url":"https://api.github.com/repos/kubernetes/community/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes/community/downloads","issues_url":"https://api.github.com/repos/kubernetes/community/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes/community/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes/community/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes/community/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes/community/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes/community/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes/community/deployments","created_at":"2016-05-03T03:36:05Z","updated_at":"2018-10-24T22:58:21Z","pushed_at":"2018-10-24T23:34:18Z","git_url":"git://github.com/kubernetes/community.git","ssh_url":"git@github.com:kubernetes/community.git","clone_url":"https://github.com/kubernetes/community.git","svn_url":"https://github.com/kubernetes/community","homepage":"","size":34389,"stargazers_count":2648,"watchers_count":2648,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1529,"mirror_url":null,"archived":false,"open_issues_count":238,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1529,"open_issues":238,"watchers":2648,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/community/pulls/2628"},"html":{"href":"https://github.com/kubernetes/community/pull/2628"},"issue":{"href":"https://api.github.com/repos/kubernetes/community/issues/2628"},"comments":{"href":"https://api.github.com/repos/kubernetes/community/issues/2628/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/community/pulls/2628/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/community/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/community/pulls/2628/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/community/statuses/aebf244cfc98c2ac78c1cdb1efc68f2d2a939641"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"andrewsykim"}}