{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/community/pulls/comments/146935094","pull_request_review_id":71952762,"id":146935094,"diff_hunk":"@@ -106,13 +107,63 @@ subsequently be used to reattach and is reported by `kubectl describe`.\n \n ### Kubernetes API Changes\n \n-#### Chosen Solution: \"exec++\"\n+#### Chosen Solution: POST to an Existing Pod\n \n-We will extend `v1.Pod`'s `/exec` subresource to support \"executing\" container\n-images. The current `/exec` endpoint must implement `GET` to support streaming\n-for all clients. We don't want to encode a (potentially large) `v1.Container` as\n-an HTTP parameter, so we must extend `v1.PodExecOptions` with the specific\n-fields required for creating a Debug Container:\n+We're modifying an existing pod, so this fits as a subresource of the target\n+pod. Since we're required to use `v1.Container`, the API should use `POST` or\n+`PUT` to avoid encoding this relatively large object into a URL query string. If\n+we `POST` or `PUT` then we cannot make this a streaming call if we want to\n+continue supporting web socket clients.\n+\n+We can either using an existing subresource like `/exec` and have the call\n+stream or not based on `PodExecOptions`, or we can create a new subresource that\n+never streams. For the sake of consistency, we will create a new subresource\n+named `/debug`. This has the added benefit of being able to entirely hide\n+interface behind a feature flag by conditionally registering the new\n+subresource.\n+\n+As `v1.Container` lacks type and object metadata, we must wrap it in a new\n+object:\n+\n+```\n+// EphemeralContainer describes a container to attach to a running pod for troubleshooting.\n+type EphemeralContainer struct {\n+        metav1.TypeMeta\n+        metav1.ObjectMeta\n+\n+        // Spec describes the Ephemeral Container to be created.\n+        Spec Container `json:\"spec\" ...`\n+}\n+```\n+\n+Note that Debug Containers are not regular containers and should not be used to\n+build services. They have no guarantees and most of the fields of `v1.Container`\n+will not be allowed for Debug Containers. A request will be rejected if any\n+field is set other than the following whitelisted fields: `Name`, `Image`,\n+`Command`, `Args`, `WorkingDir`, `Env`, `EnvFrom`, `ImagePullPolicy`,","path":"contributors/design-proposals/node/troubleshoot-running-pods.md","position":51,"original_position":51,"commit_id":"2e96ac32c7afec9556936fe99284ccf7178e225a","original_commit_id":"2e96ac32c7afec9556936fe99284ccf7178e225a","user":{"login":"liggitt","id":980082,"avatar_url":"https://avatars0.githubusercontent.com/u/980082?v=4","gravatar_id":"","url":"https://api.github.com/users/liggitt","html_url":"https://github.com/liggitt","followers_url":"https://api.github.com/users/liggitt/followers","following_url":"https://api.github.com/users/liggitt/following{/other_user}","gists_url":"https://api.github.com/users/liggitt/gists{/gist_id}","starred_url":"https://api.github.com/users/liggitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liggitt/subscriptions","organizations_url":"https://api.github.com/users/liggitt/orgs","repos_url":"https://api.github.com/users/liggitt/repos","events_url":"https://api.github.com/users/liggitt/events{/privacy}","received_events_url":"https://api.github.com/users/liggitt/received_events","type":"User","site_admin":false},"body":"are HostNetwork/HostPID/HostIPC inherited from the pod spec?","created_at":"2017-10-25T17:50:12Z","updated_at":"2017-10-25T17:50:12Z","html_url":"https://github.com/kubernetes/community/pull/1269#discussion_r146935094","pull_request_url":"https://api.github.com/repos/kubernetes/community/pulls/1269","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/community/pulls/comments/146935094"},"html":{"href":"https://github.com/kubernetes/community/pull/1269#discussion_r146935094"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/community/pulls/1269"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/community/pulls/1269","id":148700478,"html_url":"https://github.com/kubernetes/community/pull/1269","diff_url":"https://github.com/kubernetes/community/pull/1269.diff","patch_url":"https://github.com/kubernetes/community/pull/1269.patch","issue_url":"https://api.github.com/repos/kubernetes/community/issues/1269","number":1269,"state":"open","locked":false,"title":"Use v1.Container in Debug Containers API","user":{"login":"verb","id":458800,"avatar_url":"https://avatars0.githubusercontent.com/u/458800?v=4","gravatar_id":"","url":"https://api.github.com/users/verb","html_url":"https://github.com/verb","followers_url":"https://api.github.com/users/verb/followers","following_url":"https://api.github.com/users/verb/following{/other_user}","gists_url":"https://api.github.com/users/verb/gists{/gist_id}","starred_url":"https://api.github.com/users/verb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/verb/subscriptions","organizations_url":"https://api.github.com/users/verb/orgs","repos_url":"https://api.github.com/users/verb/repos","events_url":"https://api.github.com/users/verb/events{/privacy}","received_events_url":"https://api.github.com/users/verb/received_events","type":"User","site_admin":false},"body":"SIG Auth would strongly prefer to use a v1.Container in the API for Debug Containers. This PR explores introducing this as a new requirement and is intended to facilitate the negotiation between sig-node, sig-auth and the API reviewers.\r\n\r\nNote that this PR contains commits from #1136, so it's probably easiest to look at the most recent commit directly to see the relevant diff.","created_at":"2017-10-25T15:24:11Z","updated_at":"2017-10-25T17:50:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"395ececfcfbf825756a3925c6d7ca881f6ae2194","assignee":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars0.githubusercontent.com/u/647318?v=4","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},"assignees":[{"login":"lavalamp","id":647318,"avatar_url":"https://avatars0.githubusercontent.com/u/647318?v=4","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},{"login":"liggitt","id":980082,"avatar_url":"https://avatars0.githubusercontent.com/u/980082?v=4","gravatar_id":"","url":"https://api.github.com/users/liggitt","html_url":"https://github.com/liggitt","followers_url":"https://api.github.com/users/liggitt/followers","following_url":"https://api.github.com/users/liggitt/following{/other_user}","gists_url":"https://api.github.com/users/liggitt/gists{/gist_id}","starred_url":"https://api.github.com/users/liggitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liggitt/subscriptions","organizations_url":"https://api.github.com/users/liggitt/orgs","repos_url":"https://api.github.com/users/liggitt/repos","events_url":"https://api.github.com/users/liggitt/events{/privacy}","received_events_url":"https://api.github.com/users/liggitt/received_events","type":"User","site_admin":false},{"login":"thockin","id":5595220,"avatar_url":"https://avatars0.githubusercontent.com/u/5595220?v=4","gravatar_id":"","url":"https://api.github.com/users/thockin","html_url":"https://github.com/thockin","followers_url":"https://api.github.com/users/thockin/followers","following_url":"https://api.github.com/users/thockin/following{/other_user}","gists_url":"https://api.github.com/users/thockin/gists{/gist_id}","starred_url":"https://api.github.com/users/thockin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thockin/subscriptions","organizations_url":"https://api.github.com/users/thockin/orgs","repos_url":"https://api.github.com/users/thockin/repos","events_url":"https://api.github.com/users/thockin/events{/privacy}","received_events_url":"https://api.github.com/users/thockin/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/community/pulls/1269/commits","review_comments_url":"https://api.github.com/repos/kubernetes/community/pulls/1269/comments","review_comment_url":"https://api.github.com/repos/kubernetes/community/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/community/issues/1269/comments","statuses_url":"https://api.github.com/repos/kubernetes/community/statuses/2e96ac32c7afec9556936fe99284ccf7178e225a","head":{"label":"verb:pod-troubleshooting-use-container","ref":"pod-troubleshooting-use-container","sha":"2e96ac32c7afec9556936fe99284ccf7178e225a","user":{"login":"verb","id":458800,"avatar_url":"https://avatars0.githubusercontent.com/u/458800?v=4","gravatar_id":"","url":"https://api.github.com/users/verb","html_url":"https://github.com/verb","followers_url":"https://api.github.com/users/verb/followers","following_url":"https://api.github.com/users/verb/following{/other_user}","gists_url":"https://api.github.com/users/verb/gists{/gist_id}","starred_url":"https://api.github.com/users/verb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/verb/subscriptions","organizations_url":"https://api.github.com/users/verb/orgs","repos_url":"https://api.github.com/users/verb/repos","events_url":"https://api.github.com/users/verb/events{/privacy}","received_events_url":"https://api.github.com/users/verb/received_events","type":"User","site_admin":false},"repo":{"id":72691678,"name":"community","full_name":"verb/community","owner":{"login":"verb","id":458800,"avatar_url":"https://avatars0.githubusercontent.com/u/458800?v=4","gravatar_id":"","url":"https://api.github.com/users/verb","html_url":"https://github.com/verb","followers_url":"https://api.github.com/users/verb/followers","following_url":"https://api.github.com/users/verb/following{/other_user}","gists_url":"https://api.github.com/users/verb/gists{/gist_id}","starred_url":"https://api.github.com/users/verb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/verb/subscriptions","organizations_url":"https://api.github.com/users/verb/orgs","repos_url":"https://api.github.com/users/verb/repos","events_url":"https://api.github.com/users/verb/events{/privacy}","received_events_url":"https://api.github.com/users/verb/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/verb/community","description":"Kubernetes community content","fork":true,"url":"https://api.github.com/repos/verb/community","forks_url":"https://api.github.com/repos/verb/community/forks","keys_url":"https://api.github.com/repos/verb/community/keys{/key_id}","collaborators_url":"https://api.github.com/repos/verb/community/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/verb/community/teams","hooks_url":"https://api.github.com/repos/verb/community/hooks","issue_events_url":"https://api.github.com/repos/verb/community/issues/events{/number}","events_url":"https://api.github.com/repos/verb/community/events","assignees_url":"https://api.github.com/repos/verb/community/assignees{/user}","branches_url":"https://api.github.com/repos/verb/community/branches{/branch}","tags_url":"https://api.github.com/repos/verb/community/tags","blobs_url":"https://api.github.com/repos/verb/community/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/verb/community/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/verb/community/git/refs{/sha}","trees_url":"https://api.github.com/repos/verb/community/git/trees{/sha}","statuses_url":"https://api.github.com/repos/verb/community/statuses/{sha}","languages_url":"https://api.github.com/repos/verb/community/languages","stargazers_url":"https://api.github.com/repos/verb/community/stargazers","contributors_url":"https://api.github.com/repos/verb/community/contributors","subscribers_url":"https://api.github.com/repos/verb/community/subscribers","subscription_url":"https://api.github.com/repos/verb/community/subscription","commits_url":"https://api.github.com/repos/verb/community/commits{/sha}","git_commits_url":"https://api.github.com/repos/verb/community/git/commits{/sha}","comments_url":"https://api.github.com/repos/verb/community/comments{/number}","issue_comment_url":"https://api.github.com/repos/verb/community/issues/comments{/number}","contents_url":"https://api.github.com/repos/verb/community/contents/{+path}","compare_url":"https://api.github.com/repos/verb/community/compare/{base}...{head}","merges_url":"https://api.github.com/repos/verb/community/merges","archive_url":"https://api.github.com/repos/verb/community/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/verb/community/downloads","issues_url":"https://api.github.com/repos/verb/community/issues{/number}","pulls_url":"https://api.github.com/repos/verb/community/pulls{/number}","milestones_url":"https://api.github.com/repos/verb/community/milestones{/number}","notifications_url":"https://api.github.com/repos/verb/community/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/verb/community/labels{/name}","releases_url":"https://api.github.com/repos/verb/community/releases{/id}","deployments_url":"https://api.github.com/repos/verb/community/deployments","created_at":"2016-11-02T23:56:56Z","updated_at":"2017-05-20T23:29:46Z","pushed_at":"2017-10-25T15:14:34Z","git_url":"git://github.com/verb/community.git","ssh_url":"git@github.com:verb/community.git","clone_url":"https://github.com/verb/community.git","svn_url":"https://github.com/verb/community","homepage":"","size":9631,"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":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes:master","ref":"master","sha":"3512ad9d7eaa2fa3820940d9c18758b6c250efc8","user":{"login":"kubernetes","id":13629408,"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,"name":"community","full_name":"kubernetes/community","owner":{"login":"kubernetes","id":13629408,"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},"private":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":"2017-10-24T14:10:21Z","pushed_at":"2017-10-25T16:23:44Z","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":10713,"stargazers_count":898,"watchers_count":898,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":702,"mirror_url":null,"archived":false,"open_issues_count":138,"forks":702,"open_issues":138,"watchers":898,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/community/pulls/1269"},"html":{"href":"https://github.com/kubernetes/community/pull/1269"},"issue":{"href":"https://api.github.com/repos/kubernetes/community/issues/1269"},"comments":{"href":"https://api.github.com/repos/kubernetes/community/issues/1269/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/community/pulls/1269/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/community/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/community/pulls/1269/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/community/statuses/2e96ac32c7afec9556936fe99284ccf7178e225a"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"liggitt"}}