{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/59991102","id":59991102,"diff_hunk":"@@ -0,0 +1,184 @@\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+# Kubernetes Local Cluster Experience\n+\n+This proposal attempts to improve the existing local cluster experience for kubernetes.\n+The current local cluster experience is sub-par and often not functional.\n+This proposal is a RFC!\n+\n+## Primary Goals\n+\n+From a high level the goal is to make it easy for a new user to run a Kubernetes cluster and play with curated examples that require least amount of knowledge about Kubernetes.\n+These examples will only use kubectl and only a subset of Kubernetes features that are available will be exposed.\n+\n+- Works across multiple OSes - OS X, Linux and Windows primarily.\n+- Single command setup and teardown UX.\n+- Unified UX across OSes\n+- Minimal dependencies on third party software.\n+- Minimal resource overhead.\n+- Eliminate any other alternatives to local cluster deployment.\n+\n+## Secondary Goals\n+\n+- Enable developers to use the local cluster for kubernetes development.\n+\n+## Non Goals\n+\n+- Simplifying kubernetes production deployment experience\n+- Supporting all possible deployment configurations of Kubernetes like various types of storage, networking, etc.\n+\n+\n+## Local cluster requirements\n+\n+- Includes all the master components & DNS (Apiserver, scheduler, controller manager, etcd and kube dns)\n+- Basic auth\n+- Service accounts should be setup\n+- Kubectl should be auto-configured to use the local cluster\n+- Tested & maintained as part of Kubernetes core\n+\n+## Existing solutions\n+\n+Following are some of the existing solutions that attempt to simplify local cluster deployments.\n+\n+### [Spread](https://github.com/redspread/spread)\n+\n+Spread's UX is great!\n+It is adapted from monokube and includes DNS as well.\n+It satisfies almost all the requirements, excepting that of requiring docker to be pre-installed.\n+It has a loose dependency on docker.\n+New releases of docker might break this setup.\n+\n+### [Kmachine](https://github.com/skippbox/kmachine)\n+\n+Kmachine is adapted from docker-machine.\n+It exposes the entire docker-machine CLI.\n+It is possible to repurpose Kmachine to meet all our requirements.\n+\n+### [Monokube](https://github.com/polvi/monokube)\n+\n+Single binary that runs all kube master components.\n+Does not include DNS.\n+This is only a part of the overall local cluster solution.\n+\n+### Vagrant\n+\n+The kube-up.sh script included in Kubernetes release supports a few Vagrant based local cluster deployments.\n+kube-up.sh is not user friendly.\n+It typically takes a long time for the cluster to be set up using vagrant and often times is unsuccessful on OS X.\n+The [Core OS single machine guide](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant-single.html)  uses Vagrant as well and it just works.\n+Since we are targeting a single command install/teardown experience, vagrant needs to be an implementation detail and not be exposed to our users.\n+\n+## Proposed Solution\n+\n+To avoid exposing users to third party software and external dependencies, we will build a toolbox that will be shipped with all the dependencies including all kubernetes components, hypervisor, base image, kubectl, etc.\n+*Note: Docker provides a [similar toolbox](https://www.docker.com/products/docker-toolbox).*\n+This \"Localkube\" tool will be referred to as \"Nanokube\" in this proposal to avoid ambiguity against Spread's existing [\"localkube\"](https://github.com/redspread/localkube).\n+The final name of this tool is TBD. Suggestions are welcome!\n+\n+Nanokube will provide a unified CLI to interact with the local cluster.","path":"docs/proposals/local-cluster-ux.md","position":105,"original_position":105,"commit_id":"4d4288e76854d11c1f2db2ffd002a3ed041995fe","original_commit_id":"4d4288e76854d11c1f2db2ffd002a3ed041995fe","user":{"login":"luxas","id":5442475,"avatar_url":"https://avatars.githubusercontent.com/u/5442475?v=3","gravatar_id":"","url":"https://api.github.com/users/luxas","html_url":"https://github.com/luxas","followers_url":"https://api.github.com/users/luxas/followers","following_url":"https://api.github.com/users/luxas/following{/other_user}","gists_url":"https://api.github.com/users/luxas/gists{/gist_id}","starred_url":"https://api.github.com/users/luxas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luxas/subscriptions","organizations_url":"https://api.github.com/users/luxas/orgs","repos_url":"https://api.github.com/users/luxas/repos","events_url":"https://api.github.com/users/luxas/events{/privacy}","received_events_url":"https://api.github.com/users/luxas/received_events","type":"User","site_admin":false},"body":"I assume this will be a go binary?","created_at":"2016-04-17T19:46:57Z","updated_at":"2016-04-17T19:46:57Z","html_url":"https://github.com/kubernetes/kubernetes/pull/24106#discussion_r59991102","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/59991102"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/24106#discussion_r59991102"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106","id":66045935,"html_url":"https://github.com/kubernetes/kubernetes/pull/24106","diff_url":"https://github.com/kubernetes/kubernetes/pull/24106.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/24106.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24106","number":24106,"state":"open","locked":false,"title":"Proposal for improving local cluster experience.","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":"This proposal attempts to improve the existing single node, local cluster experience in Kubernetes.\r\n\r\nIt is **not** a proposal that helps with setting up a multi-node, production cluster.\r\n\r\ncc @dlorenc  @ethernetdan @runseb @mfburnett @bgrant0607 @pwittrock ","created_at":"2016-04-11T19:11:21Z","updated_at":"2016-04-17T19:46:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7a2606c3101f4fa50ec5af73efdc265293a0e80e","assignee":{"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},"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24106/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/4d4288e76854d11c1f2db2ffd002a3ed041995fe","head":{"label":"vishh:local-cluster-setup","ref":"local-cluster-setup","sha":"4d4288e76854d11c1f2db2ffd002a3ed041995fe","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},"repo":{"id":26461931,"name":"kubernetes","full_name":"vishh/kubernetes","owner":{"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},"private":false,"html_url":"https://github.com/vishh/kubernetes","description":"Container Cluster Manager","fork":true,"url":"https://api.github.com/repos/vishh/kubernetes","forks_url":"https://api.github.com/repos/vishh/kubernetes/forks","keys_url":"https://api.github.com/repos/vishh/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vishh/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vishh/kubernetes/teams","hooks_url":"https://api.github.com/repos/vishh/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/vishh/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/vishh/kubernetes/events","assignees_url":"https://api.github.com/repos/vishh/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/vishh/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/vishh/kubernetes/tags","blobs_url":"https://api.github.com/repos/vishh/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vishh/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vishh/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/vishh/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vishh/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/vishh/kubernetes/languages","stargazers_url":"https://api.github.com/repos/vishh/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/vishh/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/vishh/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/vishh/kubernetes/subscription","commits_url":"https://api.github.com/repos/vishh/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/vishh/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/vishh/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/vishh/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/vishh/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/vishh/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vishh/kubernetes/merges","archive_url":"https://api.github.com/repos/vishh/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vishh/kubernetes/downloads","issues_url":"https://api.github.com/repos/vishh/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/vishh/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/vishh/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/vishh/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vishh/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/vishh/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/vishh/kubernetes/deployments","created_at":"2014-11-11T00:05:03Z","updated_at":"2016-03-18T21:32:11Z","pushed_at":"2016-04-12T23:13:07Z","git_url":"git://github.com/vishh/kubernetes.git","ssh_url":"git@github.com:vishh/kubernetes.git","clone_url":"https://github.com/vishh/kubernetes.git","svn_url":"https://github.com/vishh/kubernetes","homepage":null,"size":203816,"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":"94d4a3eca3c19ef792dd43d0d4a15fa41f60cb28","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-04-17T18:53:48Z","pushed_at":"2016-04-17T19:37:13Z","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":375950,"stargazers_count":13903,"watchers_count":13903,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4119,"mirror_url":null,"open_issues_count":3401,"forks":4119,"open_issues":3401,"watchers":13903,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/24106"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/24106"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/24106/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24106/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/4d4288e76854d11c1f2db2ffd002a3ed041995fe"}}}}