NewPortForwarder creates a new port forwarder object for the specified pods, ports and addresses
(client Client, pod *corev1.Pod, ports []string, addresses []string, stopChan chan struct{}, readyChan chan struct{}, errorChan chan error)
| 186 | |
| 187 | // NewPortForwarder creates a new port forwarder object for the specified pods, ports and addresses |
| 188 | func NewPortForwarder(client Client, pod *corev1.Pod, ports []string, addresses []string, stopChan chan struct{}, readyChan chan struct{}, errorChan chan error) (*portforward.PortForwarder, error) { |
| 189 | execRequest := client.KubeClient().CoreV1().RESTClient().Post(). |
| 190 | Resource("pods"). |
| 191 | Name(pod.Name). |
| 192 | Namespace(pod.Namespace). |
| 193 | SubResource("portforward") |
| 194 | |
| 195 | transport, upgrader, err := GetUpgraderWrapper(client) |
| 196 | if err != nil { |
| 197 | return nil, err |
| 198 | } |
| 199 | |
| 200 | logFile := log.GetFileLogger("portforwarding") |
| 201 | dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport}, "POST", execRequest.URL()) |
| 202 | |
| 203 | fw, err := portforward.NewOnAddresses(dialer, addresses, ports, stopChan, readyChan, errorChan, logFile.Writer(logrus.InfoLevel, false), logFile.Writer(logrus.WarnLevel, false)) |
| 204 | if err != nil { |
| 205 | return nil, err |
| 206 | } |
| 207 | |
| 208 | return fw, nil |
| 209 | } |
| 210 | |
| 211 | // IsLocalKubernetes returns true if the context belongs to a local Kubernetes cluster |
| 212 | func IsLocalKubernetes(kubeClient Client) bool { |
no test coverage detected