mirrord lets developers run local processes in the context of their cloud environment. It’s meant to provide the benefits of running your service on a cloud environment (e.g. staging) without actually going through the hassle of deploying it there, and without disrupting the environment by deploying untested code. It comes as a Visual Studio Code extension, an IntelliJ plugin and a CLI tool. You can read more about it here.
This repository is for the VSCode extension. mirrord's main repository can be found here.
- Click mirrord status bar item to switch mirrord from
Disabled
toEnabled
- Start debugging your project
- Choose pod to impersonate
- The debugged process will start with mirrord, and receive the context of the impersonated pod. It will receive its environment variables and incoming traffic, will read and write files to it, and send outgoing traffic through it.
mirrord uses your machine's default kubeconfig for access to the Kubernetes API.
For incoming traffic, make sure your local process is listening on the same port as the remote pod.
mirrord allows for rich configuration of the environment it provides. The schema for it is documented here. You can also use toml
or yaml
format. However, the extension supports autocomplete only for json
files.
mirrord reads its configuration from the following locations:
- Active config can be set for the whole workspace using the
selectActiveConfig
command or the link in the dropdown menu. If active config is set, mirrord always uses it. - If active config is not set, mirrord searches process environment (specified in launch configuration) for
MIRRORD_CONFIG_FILE
variable. This path can use the${workspaceFolder}
variable. - If no config is specified, mirrord looks for a default project config file in the
.mirrord
directory with a name ending withmirrord.{json,toml,yaml,yml}
. If there is no default config file, mirrord uses default configuration values for everything. If there are many candidates for the default config file, mirrord sorts them alphabetically and uses the first one.
You can use the changeSettings
command or the link in the dropdown menu to quickly edit detected configs.