Using the mirrord extension in Visual Studio Code
If you develop your application in Visual Studio Code, you can debug it with mirrord using our Visual Studio Marketplace extension. Simply:
Download the extension
Enable mirrord using the "mirrord" button on the bottom toolbar
Run or debug your application as you usually do
When you start a debugging session with mirrord enabled, you'll be prompted with a target selection quick pick. This quick pick will allow you to select the target in your Kubernetes cluster that you want to impersonate.
The toolbar button enables/disables mirrord for all run and debug sessions.
mirrord's initial state on startup can be configured in the VSCode settings:
{
"mirrord.enabledByDefault": true
}
mirrord can be persistently enabled or disabled for a specific launch configuration, regardless of the toolbar button state. This is controlled via the MIRRORD_ACTIVE
environment variable in your launch configuration. The value "1"
keeps mirrord always enabled, while the value "0"
disables it.
{
"env": {
// mirrord always enabled
"MIRRORD_ACTIVE": "1"
// mirrord always disabled
// "MIRRORD_ACTIVE": "0"
}
}
mirrord's target can be specified in two ways:
with the target selection quick pick
The quick pick will only appear if the mirrord config does not specify the target.
The quick pick will initially show targets in the namespace specified in the mirrord config (.target.namespace
). If the namespace is not specified, your Kubernetes user's default namespace will be used.
If you want to see targets in a different namespace, there is an option to "Select Another Namespace".
in the mirrord config's target section
The extension allows for using the mirrord config. For any run/debug session, the mirrord config to be used can be specified in multiple ways:
The toolbar dropdown menu allows for specifying a temporary mirrord config override. This config will be used for all run/debug sessions.
To specify the override, use Select active config
action.
You will be prompted with a quick pick where you can select a mirrord config from your project files. For the file to be present in the dialog, it must either be located in a directory which name ends with .mirrord
, or have a name that ends with mirrord
. Accepted config file extensions are: json
, toml
, yml
and yaml
.
You can remove the override using the same action.
If no active config is specified, the extension will try to read the config file path from the MIRRORD_CONFIG_FILE
environment variable specified in the launch configuration.
This path should be absolute.
If the config file path is not specified in the launch configuration environment, the plugin will try to find a default config.
The default config is the lexicographically first file in <PROJECT ROOT>/.mirrord
directory that ends with mirrord
. Accepted config file extensions are: json
, toml
, yml
and yaml
.
The extension relies on the standard mirrord CLI binary.
By default, the extension checks the latest release version and downloads the most up-to-date binary in the background. You can disable this behavior in the VSCode settings:
{
"mirrord.autoUpdate": false
}
You can also pin the binary version with:
{
"mirrord.autoUpdate": "3.128.0"
}
To use a specific mirrord binary from your filesystem:
{
"mirrord.binaryPath": "/path/to/local/mirrord/binary"
}
The guide on how to use the extension with remote development on WSL can be found here.