code: func (o PortForwardOptions) RunPortForward() error {
  	pod, err := o.PodClient.Pods(o.Namespace).Get(o.PodName, metav1.GetOptions{})
  	if err != nil {
  		return err
  	}
  
  	if pod.Status.Phase != corev1.PodRunning {
  		return fmt.Errorf("unable to forward port because pod is not running. Current status=%v", pod.Status.Phase)
  	}
  
  	signals := make(chan os.Signal, 1)
  	signal.Notify(signals, os.Interrupt)
  	defer signal.Stop(signals)
  
  	go func() {
  		<-signals
  		if o.StopChannel != nil {
  			close(o.StopChannel)
  		}
  	}()
  
  	req := o.RESTClient.Post().
  		Resource("pods").
  		Namespace(o.Namespace).
  		Name(pod.Name).
  		SubResource("portforward")
  
  	return o.PortForwarder.ForwardPorts("POST", req.URL(), o)
  }
docs: // RunPortForward implements all the necessary functionality for port-forward cmd.