Replies: 3 comments 4 replies
-
Thank you for this discussion: All 3 actions sounds like a great ideas, I would think if we go from 1 and 3 as a progression, we can discuss point 2 with more detail. I really like Point 1 and 3 leads to interactive approach as a user story. Note: phase-0 which we have already if for the folks who know Inskeptor Gadget, as Phase 1 (least impact) and then phase 2 (more interactive)
Some Implementation Level Detail
Thanks heaps, I am up for whatever approach we chose to do first, ❤️ |
Beta Was this translation helpful? Give feedback.
-
Playing around with the webview idea, I was thinking of something like this. At the moment it just picks up existing traces and displays their output (not properly sorted yet), but there's plenty of scope for improvement without too much difficulty. |
Beta Was this translation helpful? Give feedback.
-
@blanquicet: I recently came back to this and got it into a more presentable state, hoping we might be able to use it. However...looking at some changes (PR 1291 and PR 1396) to the Inspektor Gadget repo earlier this year, I see the mechanism for communicating with the gadget pods has changed. The experimental code in my branch uses the old-style approach of creating I now see the gadget kubectl plugin supports an |
Beta Was this translation helpful? Give feedback.
-
Continuing from this PR thread...
One slight drawback of our current design is that the tree-view/command interface doesn't quite capture the state of the various resources deployed to the cluster. For example, users are able to execute gadget commands even if Inspektor Gadget is not deployed to their cluster (and they will get errors if that happens).
There are a few alternative approaches to mitigate this:
Doing (1) would have the least impact on the existing UX and be straightforward in the short term. One concern with it is that as the number of commands grows, users are presented with more and more options that may not be applicable to the state of their cluster. In an ideal world, only commands which make sense should be displayed to the users. For example, it'd be preferable if only 'deploy' were available in the case where IG is not deployed.
This drawback could be addressed by (2), but it'd require running background queries to poll all the clusters in the explorer view, which is a performance trade-off we've been deliberately avoided making in the past. It would also require extensive performance testing for additional commands.
The idea of (3) is, you'd have a single 'Inspektor Gadget' command for the cluster, which would launch a webview containing appropriate commands for the state of the cluster. There are possible accessibility concerns here, which will need a bit more investigation. But it does address the issues with (1) and (2), and we're already using one for displaying output, and for a bunch of other commands, so it's not really breaking new ground.
The webview could present unavailable commands as disabled (thanks for the idea, @blanquicet) so users can see what capabilities are available, but only commands that are valid for the state of the cluster would be enabled.
Some possible features of a webview presentation might include (hoping for further discussion here):
Please share any thoughts, @Tatsinnit, @rzhang628, @blanquicet, @mauriciovasquezbernal!
Beta Was this translation helpful? Give feedback.
All reactions