{"push_id":790321021,"size":1,"distinct_size":1,"ref":"refs/heads/websocket_exec","head":"61ba410c6937ca23b9e4a7816102dc3e5af50fe8","before":"62fbaa0f7aa84e470bf1465f81e7f2b0cb62ef23","commits":[{"sha":"61ba410c6937ca23b9e4a7816102dc3e5af50fe8","author":{"email":"4f499256fd2260f9682a9d9e63c3f1d668ee5cdf@redhat.com","name":"Clayton Coleman"},"message":"Expose exec and logs via WebSockets\n\nNot all clients and systems can support SPDY protocols. This commit adds\nsupport for two new websocket protocols, one to handle streaming of pod\nlogs from a pod, and the other to allow exec to be tunneled over\nwebsocket.\n\nBrowser support for chunked encoding is still poor, and web consoles\nthat wish to show pod logs may need to make compromises to display the\noutput. The /pods/<name>/log endpoint now supports websocket upgrade to\nthe 'binary.k8s.io' subprotocol, which sends chunks of logs as binary to\nthe client. Messages are written as logs are streamed from the container\ndaemon, so flushing should be unaffected.\n\nBrowser support for raw communication over SDPY is not possible, and\nsome languages lack libraries for it and HTTP/2. The Kubelet supports\nupgrade to WebSocket instead of SPDY, and will multiplex STDOUT/IN/ERR\nover websockets by prepending each binary message with a single byte\nrepresenting the channel (0 for IN, 1 for OUT, and 2 for ERR). Because\nframing on WebSockets suffers from head-of-line blocking, clients and\nother server code should ensure that no particular stream blocks.","distinct":true,"url":"https://api.github.com/repos/smarterclayton/kubernetes/commits/61ba410c6937ca23b9e4a7816102dc3e5af50fe8"}]}