mirror of https://github.com/linkerd/linkerd2.git
Report namespace and pod name when port-forward fails (#5504)
Subject Related to issue #5457 Problem Linkerd only reports the local port and the remote port whenever port-forwarding fails. Linkerd could print out namespace and port if port-forwarding fails instead of just at the error state and then force users to collate the port themselves Solution Linkerd needs to print the namespace and the pod name. - [x] Add two new string variables namespace and podName in `struct PortForward` - [x] assign the values to the variables when a new Instance is being created in `func NewPortForward()` run() function propagates the errors that occurred while port-forwarding - [x] Format the error being returned by `ForwardPorts()` from client-go using `fmt.Errorf()` and add `namespace` and `podName` as suffix and return error The error is being returned by ForwardPorts() from client-go https://github.com/kubernetes/client-go/blob/master/tools/portforward/portforward.go#L188 Fixes #5457 Signed-off-by: Piyush Singariya <piyushsingariya@gmail.com>
This commit is contained in:
parent
898de71098
commit
aa20c3e88e
|
@ -25,6 +25,8 @@ type PortForward struct {
|
||||||
method string
|
method string
|
||||||
url *url.URL
|
url *url.URL
|
||||||
host string
|
host string
|
||||||
|
namespace string
|
||||||
|
podName string
|
||||||
localPort int
|
localPort int
|
||||||
remotePort int
|
remotePort int
|
||||||
emitLogs bool
|
emitLogs bool
|
||||||
|
@ -140,6 +142,8 @@ func newPortForward(
|
||||||
method: "POST",
|
method: "POST",
|
||||||
url: req.URL(),
|
url: req.URL(),
|
||||||
host: host,
|
host: host,
|
||||||
|
namespace: namespace,
|
||||||
|
podName: podName,
|
||||||
localPort: localPort,
|
localPort: localPort,
|
||||||
remotePort: remotePort,
|
remotePort: remotePort,
|
||||||
emitLogs: emitLogs,
|
emitLogs: emitLogs,
|
||||||
|
@ -172,7 +176,12 @@ func (pf *PortForward) run() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return fw.ForwardPorts()
|
err = fw.ForwardPorts()
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("%s for %s/%s", err, pf.namespace, pf.podName)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init creates and runs a port-forward connection.
|
// Init creates and runs a port-forward connection.
|
||||||
|
|
Loading…
Reference in New Issue