Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Day 0 - hook for Retina and Azure N/W Distributed Capture Scenarios with AKS VsCode Extension. #624

Merged
merged 29 commits into from
Apr 22, 2024

Conversation

Tatsinnit
Copy link
Member

@Tatsinnit Tatsinnit commented Apr 16, 2024

Description and Goal of this PR:

Thank you so much for all the cross collaboration for this and the quick loop back to fix various issues along the way across Retina et. al. Below are the Goal and Non-Goals and future representation of what we plan to achieve. Special mention to @gamntho and

Goal: This PR is solely focused in on enabling Retina Tool Distributed Capture Enablement which intern detail below enables various moving pieces under one-click umbrella, covering specific user-scenarios of #569 (comment) , proving ease to user and collecting log via Retina which helps for User Experiences. This PR is solely focus on short-term goal discussed under this feature request #569 which is closing the loop on #260

Non-Goal: This PR is not the long term U/X based user-scenario work which we will do as part of internal PRD under which we need to identify the re-use or removing certain exisiting features incrementally. If we need to rethink U/X from various stand point of view along with possible reachout to vscode team to get their guidance if need be.

This PR enables a key aspect of Network loop which we wanted to close before we solely focus on upgrading and maintaining those

What we achieve:

This PR bundles few things into one:

Under one-click:

User will navigate to their cluster and right-click select network troubleshooting menu submenu Run Retina Capture

  • VsCode will get Binary from latest version release into the vscode extensions binary mechanism to use.
  • Once Binary is there, user will get multi-select quick pick for selecting the node we can run Retina Distributed capture scenario on.
  • Upon selection node and clicking OK the vscode heavy-lifting at the background will start, it will wait for https://retina.sh/docs/captures/cli#capture-targetrequired capture network packets on the node selected by node names which will kick in.
  • Then, user get presented with successful and unsuccessful run.

Get the Retina logs to Host Machine:

  • For this we have provided a button to Download Capture Retina Logs - once user will select that the pod gets run to download the log into those machine.
  • User gets presented with option of where to store these logs.
  • Once Downloaded - we provide open folder link to directly open the downloaded folder.

Hence doing all these things with ease, this is not perfect and we will incrementally improve but providing this baseline really will enable users to cover the Azure N/W Log captures via vscode.

Screenshot below is a quick recap:

Collaboration:

Future:

  • We could continue improve iteratively for this, but at least with mindset of getting baseline feature, we intend to close gaps for dedicated AKS level tool which could ease and help user to get these logs for the user.
  • We will do a long term improvement PRD which will also could spend enough time understanding maturing these features and iterative growth.

VSIX to test:

Screenshots:

Screenshot 2024-04-16 at 6 18 30 PM Screenshot 2024-04-16 at 6 20 35 PM Screenshot 2024-04-16 at 6 23 05 PM Screenshot 2024-04-16 at 6 23 20 PM Screenshot 2024-04-16 at 6 23 32 PM Screenshot 2024-04-16 at 6 23 43 PM Screenshot 2024-04-16 at 6 23 53 PM Screenshot 2024-04-16 at 6 24 07 PM
Screen.Recording.2024-04-16.at.6.24.28.PM.mov

@Tatsinnit Tatsinnit added the enhancement 🚀 New feature or request or improvements on existing code. label Apr 16, 2024
@Tatsinnit Tatsinnit self-assigned this Apr 16, 2024
@Tatsinnit Tatsinnit requested a review from peterbom April 16, 2024 10:19
@rbtr
Copy link

rbtr commented Apr 16, 2024

@Tatsinnit FYI fixing the --kubeconfig flag accidentally broke retina capture download because of a conflict with our -n,--name flag and the inherited -n,--namespace flag.
Fix in progress microsoft/retina#275, will be v0.0.7

It's fixed and v0.0.7 is released.
Note one behavior change: it will be required to set a --name during retina capture create which was not previously an option (it was a randstring). This is probably better UX as the user specifies the name at create and then immediately knows what to download and later delete.

sprab
sprab previously approved these changes Apr 19, 2024
Copy link
Collaborator

@sprab sprab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good.

Copy link
Collaborator

@sprab sprab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tested this. Works as expected and looks good.

Copy link
Collaborator

@sprab sprab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tested this, and also looked into the captures. The download capture works fine and able to save this locally. The downloaded capture has some crucial information that would help us in reducing the TTM.

Copy link
Collaborator

@hsubramanianaks hsubramanianaks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, tested as well works fine in windows and WSL2 (linux). A minor name change suggestion. Thank you @Tatsinnit.

@Tatsinnit Tatsinnit merged commit b615ecb into Azure:main Apr 22, 2024
7 checks passed
tejhan pushed a commit to tejhan/vscode-aks-tools that referenced this pull request Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 🚀 New feature or request or improvements on existing code.
Projects
5 participants