{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/66357811","id":66357811,"diff_hunk":"@@ -232,6 +232,102 @@ stale permissions can cause problems.\n \n   - `sudo iptables -F`, clear ip tables rules left by the kube-proxy.\n \n+### Federation e2e tests\n+\n+By default, `e2e.go` provisions a single Kubernetes cluster, and any `Feature:Federation` ginkgo tests will be skipped.\n+\n+Federation e2e testing involve bringing up multiple \"underlying\" Kubernetes clusters,\n+and deploying the federation control plane as a Kubernetes application on the underlying clusters.\n+\n+The federation e2e tests are still managed via `e2e.go`, but require some extra configuration items.\n+\n+#### Configuring federation e2e tests\n+\n+The following environment variables will enable federation e2e building, provisioning and testing.\n+\n+```sh\n+$ export FEDERATION=true\n+$ export E2E_ZONES=\"us-central1-a us-central1-b us-central1-f\"\n+```\n+\n+A Kubernetes cluster will be provisioned in each zone listed in `E2E_ZONES`. A zone can only appear once in the `E2E_ZONES` list.\n+\n+#### Image Push Repository\n+\n+Next, specify the docker repository where your ci images will be pushed.\n+\n+If you are using `KUBERNETES_PROVIDER=gce`, you can simply set your push repo base based on your project name, and the\n+necessary repositories will be auto-created when you first push your container images:\n+\n+```sh\n+$ export FEDERATION_PUSH_REPO_BASE=\"gcr.io/${GCE_PROJECT_NAME}\"\n+```\n+\n+Otherwise, if the provider is not gce, you'll be responsible for creating and managing access to the repositories manually.\n+\n+```sh\n+$ export FEDERATION_PUSH_REPO_BASE=\"quay.io/colin_hom\"\n+```\n+\n+Given this example, the `federation-apiserver` container image will be pushed to the repository `quay.io/colin_hom/federation-apiserver`.\n+\n+The docker client on the machine running `e2e.go` must have push access for the following pre-existing repositories:\n+\n+* `${FEDERATION_PUSH_REPO_BASE}/federation-apiserver`\n+* `${FEDERATION_PUSH_REPO_BASE}/federation-controller-manager`\n+\n+These repositories must allow public read access, as the e2e node docker daemons will not have any credentials.\n+\n+#### Build\n+* Compile the binaries and build container images:\n+\n+  ```sh\n+  $ KUBE_RELEASE_RUN_TESTS=n KUBE_FASTBUILD=true go run hack/e2e.go -v -build\n+  ```\n+\n+* Push the federation container images\n+\n+  ```sh\n+  $ build/push-federation-images.sh\n+  ```\n+\n+#### Deploy federation control plane\n+\n+The following command will create the underlying Kubernetes clusters in each of `E2E_ZONES`, and then provision the\n+federation control plane on one of those clusters:\n+\n+```sh\n+$ go run hack/e2e.go -v -up\n+```\n+\n+**Note for e2e infra developers**: If you're hacking around with the federation control plane deployment itself,\n+you can quickly re-deploy the federation control plane Kubernetes manifests without tearing any resources down.\n+\n+To re-deploy the federation control plane after running `-up` for the first time:\n+\n+```sh\n+$ federation/cluster/federated-up.sh\n+```\n+\n+#### Run the Tests\n+\n+This will run only the `Feature:Federation` e2e tests. You can omit the `ginkgo.focus` argument to run the entire e2e suite.\n+\n+```sh\n+$ go run hack/e2e.go -v -test --test_args=\"--ginkgo.focus=\\[Feature:Federation\\]\"\n+```\n+**Note for e2e test developers**:\n+\n+* You can quickly recompile the e2e testing framework via `go install ./test/e2e`. This will not do anything besides allow you to verify that the go code compiles.\n+\n+* If you want to run your run e2e testing framework, you can do so via `make WHAT=test/e2e/e2e.test` and then re-running the ginkgo tests.","path":"docs/devel/e2e-tests.md","position":92,"original_position":92,"commit_id":"546fde3a610e0a715da55e03ba160b591e7ec382","original_commit_id":"546fde3a610e0a715da55e03ba160b591e7ec382","user":{"login":"nikhiljindal","id":10199099,"avatar_url":"https://avatars.githubusercontent.com/u/10199099?v=3","gravatar_id":"","url":"https://api.github.com/users/nikhiljindal","html_url":"https://github.com/nikhiljindal","followers_url":"https://api.github.com/users/nikhiljindal/followers","following_url":"https://api.github.com/users/nikhiljindal/following{/other_user}","gists_url":"https://api.github.com/users/nikhiljindal/gists{/gist_id}","starred_url":"https://api.github.com/users/nikhiljindal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikhiljindal/subscriptions","organizations_url":"https://api.github.com/users/nikhiljindal/orgs","repos_url":"https://api.github.com/users/nikhiljindal/repos","events_url":"https://api.github.com/users/nikhiljindal/events{/privacy}","received_events_url":"https://api.github.com/users/nikhiljindal/received_events","type":"User","site_admin":false},"body":"`run your run` -> `run your`?","created_at":"2016-06-08T23:17:12Z","updated_at":"2016-06-08T23:17:12Z","html_url":"https://github.com/kubernetes/kubernetes/pull/27072#discussion_r66357811","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/66357811"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/27072#discussion_r66357811"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072","id":73111421,"html_url":"https://github.com/kubernetes/kubernetes/pull/27072","diff_url":"https://github.com/kubernetes/kubernetes/pull/27072.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/27072.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/27072","number":27072,"state":"open","locked":false,"title":"Updating e2e docs with instructions on running federation tests","user":{"login":"colhom","id":1075028,"avatar_url":"https://avatars.githubusercontent.com/u/1075028?v=3","gravatar_id":"","url":"https://api.github.com/users/colhom","html_url":"https://github.com/colhom","followers_url":"https://api.github.com/users/colhom/followers","following_url":"https://api.github.com/users/colhom/following{/other_user}","gists_url":"https://api.github.com/users/colhom/gists{/gist_id}","starred_url":"https://api.github.com/users/colhom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colhom/subscriptions","organizations_url":"https://api.github.com/users/colhom/orgs","repos_url":"https://api.github.com/users/colhom/repos","events_url":"https://api.github.com/users/colhom/events{/privacy}","received_events_url":"https://api.github.com/users/colhom/received_events","type":"User","site_admin":false},"body":"Last two commits are for review. Depends on #26951\r\n\r\n\\cc @madhusudancs @quinton-hoole @nikhiljindal \r\n \r\n[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()\r\n","created_at":"2016-06-08T20:07:33Z","updated_at":"2016-06-08T23:17:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b3ae5cbdca8108adc7c863d62fcefcc76db7f0e3","assignee":{"login":"nikhiljindal","id":10199099,"avatar_url":"https://avatars.githubusercontent.com/u/10199099?v=3","gravatar_id":"","url":"https://api.github.com/users/nikhiljindal","html_url":"https://github.com/nikhiljindal","followers_url":"https://api.github.com/users/nikhiljindal/followers","following_url":"https://api.github.com/users/nikhiljindal/following{/other_user}","gists_url":"https://api.github.com/users/nikhiljindal/gists{/gist_id}","starred_url":"https://api.github.com/users/nikhiljindal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikhiljindal/subscriptions","organizations_url":"https://api.github.com/users/nikhiljindal/orgs","repos_url":"https://api.github.com/users/nikhiljindal/repos","events_url":"https://api.github.com/users/nikhiljindal/events{/privacy}","received_events_url":"https://api.github.com/users/nikhiljindal/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/18","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.3","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/18/labels","id":1638460,"number":18,"title":"v1.3","description":"https://github.com/kubernetes/kubernetes/wiki/Release-1.3","creator":{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false},"open_issues":181,"closed_issues":535,"state":"open","created_at":"2016-03-11T07:40:20Z","updated_at":"2016-06-08T23:16:41Z","due_on":"2016-06-24T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/27072/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/546fde3a610e0a715da55e03ba160b591e7ec382","head":{"label":"colhom:federation-e2e-docs","ref":"federation-e2e-docs","sha":"546fde3a610e0a715da55e03ba160b591e7ec382","user":{"login":"colhom","id":1075028,"avatar_url":"https://avatars.githubusercontent.com/u/1075028?v=3","gravatar_id":"","url":"https://api.github.com/users/colhom","html_url":"https://github.com/colhom","followers_url":"https://api.github.com/users/colhom/followers","following_url":"https://api.github.com/users/colhom/following{/other_user}","gists_url":"https://api.github.com/users/colhom/gists{/gist_id}","starred_url":"https://api.github.com/users/colhom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colhom/subscriptions","organizations_url":"https://api.github.com/users/colhom/orgs","repos_url":"https://api.github.com/users/colhom/repos","events_url":"https://api.github.com/users/colhom/events{/privacy}","received_events_url":"https://api.github.com/users/colhom/received_events","type":"User","site_admin":false},"repo":{"id":54661545,"name":"kubernetes","full_name":"colhom/kubernetes","owner":{"login":"colhom","id":1075028,"avatar_url":"https://avatars.githubusercontent.com/u/1075028?v=3","gravatar_id":"","url":"https://api.github.com/users/colhom","html_url":"https://github.com/colhom","followers_url":"https://api.github.com/users/colhom/followers","following_url":"https://api.github.com/users/colhom/following{/other_user}","gists_url":"https://api.github.com/users/colhom/gists{/gist_id}","starred_url":"https://api.github.com/users/colhom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colhom/subscriptions","organizations_url":"https://api.github.com/users/colhom/orgs","repos_url":"https://api.github.com/users/colhom/repos","events_url":"https://api.github.com/users/colhom/events{/privacy}","received_events_url":"https://api.github.com/users/colhom/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/colhom/kubernetes","description":"Container Cluster Manager from Google","fork":true,"url":"https://api.github.com/repos/colhom/kubernetes","forks_url":"https://api.github.com/repos/colhom/kubernetes/forks","keys_url":"https://api.github.com/repos/colhom/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/colhom/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/colhom/kubernetes/teams","hooks_url":"https://api.github.com/repos/colhom/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/colhom/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/colhom/kubernetes/events","assignees_url":"https://api.github.com/repos/colhom/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/colhom/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/colhom/kubernetes/tags","blobs_url":"https://api.github.com/repos/colhom/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/colhom/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/colhom/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/colhom/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/colhom/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/colhom/kubernetes/languages","stargazers_url":"https://api.github.com/repos/colhom/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/colhom/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/colhom/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/colhom/kubernetes/subscription","commits_url":"https://api.github.com/repos/colhom/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/colhom/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/colhom/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/colhom/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/colhom/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/colhom/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/colhom/kubernetes/merges","archive_url":"https://api.github.com/repos/colhom/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/colhom/kubernetes/downloads","issues_url":"https://api.github.com/repos/colhom/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/colhom/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/colhom/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/colhom/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/colhom/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/colhom/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/colhom/kubernetes/deployments","created_at":"2016-03-24T17:35:38Z","updated_at":"2016-03-24T17:35:51Z","pushed_at":"2016-06-08T21:45:02Z","git_url":"git://github.com/colhom/kubernetes.git","ssh_url":"git@github.com:colhom/kubernetes.git","clone_url":"https://github.com/colhom/kubernetes.git","svn_url":"https://github.com/colhom/kubernetes","homepage":"http://kubernetes.io","size":263676,"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":"e79f0469909c4cc779cd167e9554ca3340cc08cb","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-06-08T22:51:50Z","pushed_at":"2016-06-08T23:16:42Z","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":470133,"stargazers_count":14815,"watchers_count":14815,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4549,"mirror_url":null,"open_issues_count":3748,"forks":4549,"open_issues":3748,"watchers":14815,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/27072"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/27072"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/27072/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/27072/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/546fde3a610e0a715da55e03ba160b591e7ec382"}}}}
{"actor":{"display_login":"nikhiljindal"}}