code: func (t *Tunnel) ForwardPort() error {
  	// Build a url to the portforward endpoint
  	// example: http://localhost:8080/api/v1/namespaces/helm/pods/tiller-deploy-9itlq/portforward
  	u := t.client.Post().
  		Resource("pods").
  		Namespace(t.Namespace).
  		Name(t.PodName).
  		SubResource("portforward").URL()
  
  	transport, upgrader, err := spdy.RoundTripperFor(t.config)
  	if err != nil {
  		return err
  	}
  	dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport}, "POST", u)
  
  	local, err := getAvailablePort()
  	if err != nil {
  		return fmt.Errorf("could not find an available port: %s", err)
  	}
  	t.Local = local
  
  	ports := []string{fmt.Sprintf("%d:%d", t.Local, t.Remote)}
  
  	pf, err := portforward.New(dialer, ports, t.stopChan, t.readyChan, t.Out, t.Out)
  	if err != nil {
  		return err
  	}
  
  	errChan := make(chan error)
  	go func() {
  		errChan <- pf.ForwardPorts()
  	}()
  
  	select {
  	case err = <-errChan:
  		return fmt.Errorf("forwarding ports: %v", err)
  	case <-pf.Ready:
  		return nil
  	}
  }
docs: // ForwardPort opens a tunnel to a kubernetes pod