{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29579","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29579/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29579/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29579/events","html_url":"https://github.com/kubernetes/kubernetes/issues/29579","id":167481189,"number":29579,"title":"CRI: How to handle streaming requests (attach/exec/port-forward)?","user":{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/extensibility","name":"area/extensibility","color":"ffaa04"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/kubelet-api","name":"area/kubelet-api","color":"fbca04"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/node","name":"team/node","color":"d2b48c"}],"state":"open","locked":false,"assignee":{"login":"ncdc","id":354,"avatar_url":"https://avatars.githubusercontent.com/u/354?v=3","gravatar_id":"","url":"https://api.github.com/users/ncdc","html_url":"https://github.com/ncdc","followers_url":"https://api.github.com/users/ncdc/followers","following_url":"https://api.github.com/users/ncdc/following{/other_user}","gists_url":"https://api.github.com/users/ncdc/gists{/gist_id}","starred_url":"https://api.github.com/users/ncdc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncdc/subscriptions","organizations_url":"https://api.github.com/users/ncdc/orgs","repos_url":"https://api.github.com/users/ncdc/repos","events_url":"https://api.github.com/users/ncdc/events{/privacy}","received_events_url":"https://api.github.com/users/ncdc/received_events","type":"User","site_admin":false},"assignees":[{"login":"ncdc","id":354,"avatar_url":"https://avatars.githubusercontent.com/u/354?v=3","gravatar_id":"","url":"https://api.github.com/users/ncdc","html_url":"https://github.com/ncdc","followers_url":"https://api.github.com/users/ncdc/followers","following_url":"https://api.github.com/users/ncdc/following{/other_user}","gists_url":"https://api.github.com/users/ncdc/gists{/gist_id}","starred_url":"https://api.github.com/users/ncdc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncdc/subscriptions","organizations_url":"https://api.github.com/users/ncdc/orgs","repos_url":"https://api.github.com/users/ncdc/repos","events_url":"https://api.github.com/users/ncdc/events{/privacy}","received_events_url":"https://api.github.com/users/ncdc/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/23","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.5","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/23/labels","id":1945978,"number":23,"title":"v1.5","description":"","creator":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars.githubusercontent.com/u/647318?v=3","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},"open_issues":49,"closed_issues":1,"state":"open","created_at":"2016-08-16T21:47:28Z","updated_at":"2016-08-30T14:51:38Z","due_on":"2016-12-09T00:00:00Z","closed_at":null},"comments":64,"created_at":"2016-07-25T22:31:28Z","updated_at":"2016-08-30T17:01:56Z","closed_at":null,"body":"I re-titled the issue since the discussion has naturally shifted to the general design and implementation of streaming requests. \r\n**Please read the summary doc before joining the discussion. Thanks!**\r\nhttps://docs.google.com/document/d/1MreuHzNvkBW6q7o_zehm1CBOBof3shbtMTGtUpjpRmY/edit?usp=sharing\r\n\r\n\r\n\r\n------ The original post -----\r\n\r\n#25273 added terminal resizing for run/attach/exec. We need to support this with the new container runtime interface.\r\n\r\nCurrent implementations of terminal resizing:\r\ndocker (both `nsenter` and `docker exec`): https://github.com/kubernetes/kubernetes/blob/3b21a9901bcd48bb452d3bf1a0cddc90dae142c4/pkg/kubelet/dockertools/exec.go\r\nrkt: https://github.com/kubernetes/kubernetes/blob/3b21a9901bcd48bb452d3bf1a0cddc90dae142c4/pkg/kubelet/rkt/rkt.go#L2018\r\n\r\nThe new container interface/api (https://github.com/kubernetes/kubernetes/blob/5faa9b1283c807e9af07a7cc119d5c1a30fec31c/pkg/kubelet/api/v1alpha1/runtime/api.proto#L570) has only a `Exec` method with no resizing support.\r\n\r\n@ncdc, any suggestion of how we could achieve this? I think it may make sense to add this to the interface and push it down to the runtime. \r\n\r\n/cc @kubernetes/sig-node "},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/243507790","html_url":"https://github.com/kubernetes/kubernetes/issues/29579#issuecomment-243507790","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/29579","id":243507790,"user":{"login":"erictune","id":8105590,"avatar_url":"https://avatars.githubusercontent.com/u/8105590?v=3","gravatar_id":"","url":"https://api.github.com/users/erictune","html_url":"https://github.com/erictune","followers_url":"https://api.github.com/users/erictune/followers","following_url":"https://api.github.com/users/erictune/following{/other_user}","gists_url":"https://api.github.com/users/erictune/gists{/gist_id}","starred_url":"https://api.github.com/users/erictune/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erictune/subscriptions","organizations_url":"https://api.github.com/users/erictune/orgs","repos_url":"https://api.github.com/users/erictune/repos","events_url":"https://api.github.com/users/erictune/events{/privacy}","received_events_url":"https://api.github.com/users/erictune/received_events","type":"User","site_admin":false},"created_at":"2016-08-30T17:01:56Z","updated_at":"2016-08-30T17:01:56Z","body":"Just skimmed this issue. What is the one-time token for?  Is it for the apiserver to prove its identity to the serving process, or for the serving process to prove its identity to the master?  \r\n\r\nFor master to prove identity to the serving process, can we have the master present a client cert with a well-known CN which identifies it as a trusted proxy for the cluster?  See https://github.com/kubernetes/kubernetes/pull/26634"}}
{"actor":{"display_login":"erictune"}}