Kubernetes currently supports two streaming protocols- SPDY and
WebSockets. WebSockets are replacing SPDY, see
https://github.com/kubernetes/enhancements/issues/4006
Our 'kubectl exec' session recording was only supporting
SPDY.
This change:
- adds functionality to parse streaming sessions over WebSockets
- for sessions that the API server proxy has determined need to be
recorded, determines if the session is over SPDY or WebSockets and
invoke the relevant parser accordingly
- refactors the session recording logic into its own package
Updates tailscale/corp#19821
Signed-off-by: Irbe Krumina <irbe@tailscale.com>