k8s: improve error messages during Pod exec failures #5557
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When running a command in a Pod,
client-go
attempts to handlethe failure case of a non-zero exit code by inspecting a
metav1.Status
object.For other failure cases, it returns
fmt.Errorf(status.Message)
,and
Message
might be blank, resulting in cryptic error messagesfrom Tilt.
There's not a lot we can do without upstream
client-go
changeson the Tilt side, so some extra context is added around where the
exec failed, and for the stream error case, a generic fallback
error message is used if we get an empty error from
client-go
.See
remotecommand/v4.go
for the problematicclient-go
code:https://github.com/kubernetes/client-go/blob/8e46da3fd12b54a2d1726fc9a9438ff8fc38494c/tools/remotecommand/v4.go#L91-L118