[kube] return Kubernetes API errors when using Websocket API#46796
Merged
[kube] return Kubernetes API errors when using Websocket API#46796
Conversation
rosstimothy
reviewed
Sep 20, 2024
Contributor
rosstimothy
left a comment
There was a problem hiding this comment.
Can we add test coverage?
Kubernetes 1.30 introduced a new Remote Command protocol that uses WebSockets, replacing the deprecated SPDY protocol. The new executor protocol didn't returned the status error when API call failed. For Teleport, this creates an issue because permission errors are absorbed by the WebSocket executor and were never passed to users. This pull request implements a status parser for websocket Kubernetes API error. Signed-off-by: Tiago Silva <tiago.silva@goteleport.com>
ec3f478 to
f615f9d
Compare
Contributor
Author
done. I also modified the approach |
greedy52
approved these changes
Sep 20, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Kubernetes 1.30 introduced a new Remote Command protocol utilizing WebSockets, replacing the outdated SPDY protocol. However, the new executor protocol did not return status errors when API calls failed.
In the context of Teleport, this led to a problem where permission errors were handled by the WebSocket executor and never relayed to users.
This pull request addresses the issue by implementing a status parser for errors in the WebSocket-based Kubernetes API.
Changelog: Fixes a regression where Teleport swallowed Kubernetes API errors when using kubectl exec with a Kubernetes cluster newer than v1.30.0.