diff --git a/pkg/kubectl/cmd/run.go b/pkg/kubectl/cmd/run.go index 6e0d13f5c0a..154f8d68572 100644 --- a/pkg/kubectl/cmd/run.go +++ b/pkg/kubectl/cmd/run.go @@ -362,7 +362,7 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c return unknownRcErr } return uexec.CodeExitError{ - Err: fmt.Errorf("pod %s/%s terminated", pod.Namespace, pod.Name), + Err: fmt.Errorf("pod %s/%s terminated (%s)\n%s", pod.Namespace, pod.Name, pod.Status.ContainerStatuses[0].State.Terminated.Reason, pod.Status.ContainerStatuses[0].State.Terminated.Message), Code: int(rc), } default: diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index 7a1d76d3222..68eff41bd32 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -167,8 +167,7 @@ func checkErr(err error, handleErr func(string, int)) { case utilerrors.Aggregate: handleErr(MultipleErrors(``, err.Errors()), DefaultErrorExitCode) case utilexec.ExitError: - // do not print anything, only terminate with given error - handleErr("", err.ExitStatus()) + handleErr(err.Error(), err.ExitStatus()) default: // for any other error type msg, ok := StandardErrorMessage(err) if !ok { diff --git a/pkg/kubectl/cmd/util/helpers_test.go b/pkg/kubectl/cmd/util/helpers_test.go index 37278802153..998753738dc 100644 --- a/pkg/kubectl/cmd/util/helpers_test.go +++ b/pkg/kubectl/cmd/util/helpers_test.go @@ -269,7 +269,7 @@ func TestCheckExitError(t *testing.T) { testCheckError(t, []checkErrTestCase{ { uexec.CodeExitError{Err: fmt.Errorf("pod foo/bar terminated"), Code: 42}, - "", + "pod foo/bar terminated", 42, }, })