// Connect returns a handler for the pod portforward proxy func (r *PortForwardREST) Connect(ctx api.Context, name string, opts runtime.Object) (rest.ConnectHandler, error) { location, transport, err := pod.PortForwardLocation(r.store, r.kubeletConn, ctx, name) if err != nil { return nil, err } return genericrest.NewUpgradeAwareProxyHandler(location, transport, true), nil }
// Connect returns a handler for the pod exec proxy func (r *ExecREST) Connect(ctx api.Context, name string, opts runtime.Object) (rest.ConnectHandler, error) { execOpts, ok := opts.(*api.PodExecOptions) if !ok { return nil, fmt.Errorf("Invalid options object: %#v", opts) } location, transport, err := pod.ExecLocation(r.store, r.kubeletConn, ctx, name, execOpts) if err != nil { return nil, err } return genericrest.NewUpgradeAwareProxyHandler(location, transport, true), nil }
// Connect returns a handler for the pod proxy func (r *ProxyREST) Connect(ctx api.Context, id string, opts runtime.Object) (rest.ConnectHandler, error) { proxyOpts, ok := opts.(*api.PodProxyOptions) if !ok { return nil, fmt.Errorf("Invalid options object: %#v", opts) } location, _, err := pod.ResourceLocation(r.store, ctx, id) if err != nil { return nil, err } location.Path = path.Join(location.Path, proxyOpts.Path) return genericrest.NewUpgradeAwareProxyHandler(location, nil, false), nil }
func newUpgradeAwareProxyHandler(location *url.URL, transport http.RoundTripper, upgradeRequired bool) *genericrest.UpgradeAwareProxyHandler { handler := genericrest.NewUpgradeAwareProxyHandler(location, transport, upgradeRequired) handler.MaxBytesPerSec = capabilities.Get().PerConnectionBandwidthLimitBytesPerSec return handler }