metalbear-co / mirrord-vscode Goto Github PK
View Code? Open in Web Editor NEWConnect your local process and your cloud environment, and run local code in cloud conditions.
Home Page: https://mirrord.dev
License: MIT License
Connect your local process and your cloud environment, and run local code in cloud conditions.
Home Page: https://mirrord.dev
License: MIT License
Blocked by metalbear-co/mirrord#2096
Currently it errors on conflict between targetless and copy target feature
When debugging a Node process with mirrord enabled (no matter which features are turned on), I get the attached crash.
When adding the runtimeExecutable env var as suggested, it works, but then breakpoints are grayed out like so:
Debug a Node process in VS Code with mirrord enabled.
No response
extensionHostProcess.js:105
mirrord stderr: 2023-06-15T07:51:18.250399Z ERROR kube_client::client::builder: failed with status 500 Internal Server Error
extensionHostProcess.js:105
mirrord: {"type":"FinishedTask","name":"waiting for pod to be ready...","success":true,"message":"pod is ready"}
MacOS M1
node
No response
No response
Set runtimeExecutable like it suggests, then everything works.
macOS
similar to #26
launch.json
{
"command": "nvm use; npm run build:prod",
"name": "Run npm start",
"request": "launch",
"type": "node-terminal"
}
When targeting multi-pod deployments, mirrord impersonates the first pod in the deployment. Support for multi-pod impersonation requires the mirrord operator, which is part of mirrord for Teams.
This warning should not be shown while the operator is in use.
For me this happened when running with the operator and getting the error from https://github.com/metalbear-co/operator/issues/253
No response
No response
macOS 13.4
npm
No response
No response
on failure, we should provide either of these, there is screenshot functionality in the tester and this should be easy to implement
Right now it always tries to find the binary by itself, and if it can't download or use any of the local found binaries it fails.
Let users specify a specific binary to use, so then they can use it without downloading or let them pin to a specific binary.
Would be useful for extension development and testing as well
Mirrord doesn't seem to mirror network operations when using it through vscode inside a jupyter notebook.
to reproduce save the following json as XXX.ipynb
, and open it with vscode and debug the cell using the dropdown menu
i am getting my ip, instead of the one of my cluster
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"ip = requests.get(\"https://checkip.amazonaws.com\").text.strip()\n",
"print(ip)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.8.7 ('.venv': poetry)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.7"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "5e06dea6d00be0c404d7d97cc88274261dff12025f3151a0ade91cb9e1d96187"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
No response
No response
Macos 13.0.1
python cell through vscode jupyter
No response
No response
see: https://github.com/metalbear-co/mirrord/actions/runs/5200449364/jobs/9379382868?pr=1496
waiting on release after redhat-developer/vscode-extension-tester#821 has been closed
This can happen when the user specifies the agent image. Make sure to provide a Don't Show Again option.
Since some corporate users can't auto-update their agent, auto-updating the client can cause breakages for them.
Add a separate config value where they can specify the exact version they want their IDE to download - an empty value meaning just use whatever's there at the moment.
If no CLI has been downloaded and auto-update is disabled, download the latest version.
This will allow the extension to be format-agnostic and also unify the code with the CLI.
Blocked by metalbear-co/mirrord#1840
Mirrord can't connect to a Spring boot application from the VSCode extension. Similar to metalbear-co/mirrord-intellij#42 for the Intellij plugin
No response
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
Fedora 38
No response
No response
This should be saved into a "global" state so it won't annoy users.
Functionalities like our DebugConfiguration extension, MirrordAPI etc can be easily mocked and hence we should add tests for them
When running using npm/node the remote env isn't fetched.
If you have your kubernetes cluster context with a name with a space: eg. Staging Cluster
, then you are unable to switch to the cluster in VScode:
The error reported:
Failed to switch the namespace: error: Unexpected args: [Staging Cluster]
If I change the name to staging-cluster
in the kube config, then connecting works.
No response
No response
Mac OS latest
.
No response
No response
Right now we don't use the best practices nor do we abort on warnings.
When restarting a debug session with mirrord active, the new session will fail because of failing to connect to the internal proxy.
I am pretty sure there's not much we can do about this since our entry point only happens on new session, but would like to verify it and make sure then maybe document it if that's the case.
When setting configuration via env, when it verifies the IDE doesn't pass the env that would be passed to the process so it creates difference between rendering on verification and execution.
Allow to open the feedback from from a button or command.
When running two different debug sessions, each one different config file and target at the same time in the same window in VSCode, the second launched service doesn't hit breakpoints/get traffic and looks pretty much dead.
Happened on macOS + operator while targeting deployment - more specifically running ip-visit-counter then ip-info
https://github.com/metalbear-co/playground
ip-info doesn't steal/answer traffic (then dies?)
We thought maybe it's a Go/Delve/VSCode issue but when I did the same without mirrord active it worked.
When config is being used but target isn't set, I don't see a dialog.
version 3.54.0
MIRRORD_CONFIG_FILE
should be able to accept ${var}
so we can do for example "${workspaceFolder}/ip-visit-counter/mirrord.json"
Add Don't show again
option to all notifications where it makes sense
Using the mirrord extension via debugger in VS Code IDE, relative paths set on MIRRORD_CONFIG_FILE
env set in launch.json
is not interpolated correctly. Using an absolute path works as intended.
see discord discussion: https://discord.com/channels/933706914808889356/1001193615474827264/1148741565003604078
Mirrord Extension Version: v3.52.0
VSCODE Version: 1.81.1 (Universal)
OS: Darwin arm64 22.5.0
launch.json
with relative path{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Service",
"type": "go",
"request": "launch",
"mode": "exec",
"program": "${workspaceFolder}/artifacts/build/debug/darwin/arm64/${workspaceFolderBasename}",
"hideSystemGoroutines": true,
"env":{
"MIRRORD_CONFIG_FILE": "${workspaceFolder}/artifacts/config/mirrord.yaml"
}
}
],
}
No response
Error: ENOENT: no such file or directory, open '/${workspaceFolder}/artifacts/config/mirrord.yaml'
macOS 13.4.1
VSCODE IDE Extension
No response
https://github.com/golang/vscode-go/blob/master/docs/debugging.md
The usage at the moment can be a bit too simple - people expect to have to configure something. The banner should show a picture drawing attention to the "enable mirrord" button, and explain that clicking it will make the next run happen in the context of the k8s cluster, no configuration required.
Not sure a banner or any type of image is supported in VS Code, so if it isn't find some other more idiomatic solution.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.