Releases: metalbear-co/mirrord
Releases · metalbear-co/mirrord
2.8.0
Added
- E2E - add basic env tests for bash scripts
Fixed
- mirrord-agent - Update pcap library, hopefully will fix dropped packets (syn sometimes missed in e2e).
- mirrord-agent/layer - Sometimes layer tries to connect to agent before it finsihed loading, even though pod is running. Added watching the log stream for a "ready" log message before attempting to connect.
Changed
- E2E - describe all pods on failure and add file name to print of logs.
- E2E - print timestamp of stdout/stderr of
TestProcess
. - E2E - Don't delete pod/service on failure, instead leave them for debugging.
- mirrord-agent - Don't use
tokio::spawn
for spawningsniffer
(or any other namespace changing task) to avoid namespace-clashing/undefined behavior. Possibly fixing bugs. - Change the version check on the VS Code extension to happen when mirrord is enabled rather than when the IDE starts up.
2.7.0
Added
- mirrord-layer: You can now pass
MIRRORD_AGENT_COMMUNICATION_TIMEOUT
as environment variable to control agent timeout. - Expand file system operations with
access
andfaccessat
hooks for absolute paths
Fixed
- Ephemeral Containers didn't wait for the right condition, leading to timeouts in many cases.
- mirrord-layer: Wait for the correct condition in job creation, resolving startup/timeout issues.
- mirrord-layer: Add a sleep on closing local socket after receiving close to let local application respond before closing.
- mirrord-layer: Fix DNS issue where
ai_addr
would not live long enough (breaking the remote DNS feature).
Changed
- Removed unused dependencies from
mirrord-layer/Cargo.toml
. (Closes #220) - reduce e2e flakiness (add message sent on tcp listen subscription, wait for that message)
- reduce e2e flakiness - increase timeout time
- mirrord-layer - increase agent creation timeout (to reduce e2e flakiness on macOS)
- E2E - Don't do file stuff on http traffic to reduce flakiness (doesn't add any coverage value..)
- mirrord-layer - Change tcp mirror tunnel
select
to be biased so it flushes all data before closing it (better testing, reduces e2e flakiness) - E2E - unify resolve_node_host for linux and macOS with support for wsl provided Docker & Kubernetes
- E2E - add
trace
for tests to have paramaterized arguments printed - mirrord-agent - add debug print of args to identify runs
- E2E - remove double
--extract-path
parameter in tests - E2E - macOS colima start with 3 cores and 8GB of RAM.
- E2E - Increase agent communication timeout to reduce flakiness.
- mirrord-layer - add
DetourGuard
to prevent unwanted calls to detours from our code. - mirrord-layer - extract reused detours to seperate logic functions
- E2E - macOS run only sanity http mirror traffic with Python
New Contributors
2.6.0
Added
- Add a flag for the agent,
--ephemeral-container
, to correctly refer to the filesystem i.e. refer to root path as/proc/1/root
when the flag is on, otherwise/
.
Changed
- Assign a random port number instead of
61337
. (Reason: A forking process creates multiple agents sending traffic on the same port, causing addrinuse error.) mirrord-layer/socket
now usessocket2::SockAddr
to comply with Rust's new IP format.
Fixed
- Fix filesystem tests to only run if the default path exists.
- Fix extension not running due to the node_modules directory not being packaged.
2.5.0
Added
- New feature, remote DNS resolving.
It is now possible to use the remote'saddrinfo
by setting theMIRRORD_REMOTE_DNS
variable to
true
, or using the-d
option in mirrord-cli. - New feature, Ephemeral Containers.
Use Kubernetes beta featureEphemeral Containers
to mirror traffic with the--ephemeral-container
flag. - E2E tests on macos for Golang using the Gin framework.
Changed
- Refactored
mirrord-layer/socket
into a module structure similar tomirrord-layer/file
. - Refactored the error part of the many
Result<Response, ResponseError>
. - Refactored
file
related functions, createdFileHandler
and improved structure. - Refactored error handling in mirrord-layer.
- E2E: Collect minikube logs and fix collecting container logs
- E2E: macOS use colima instead of minikube.
- Refactored
mirrord-layer/lib.rs
- no more passing many arguments! :)
Fixed
- Handle unwraps in fileops to gracefully exit and enable python fileops tests.
- Changed
addrinfo
toVecDeque
- fixes a potential bug (loss of order)
2.4.1
Added
- mirrord-cli
exec
subcommand accepts--extract-path
argument to set the directory to extract the library to. Used for tests mainly. - mirrord-layer provides
MIRRORD_IMPERSONATED_CONTAINER_NAME
environment variable to specify container name to impersonate. mirrord-cli accepts argument to set variable. - vscode-ext provides quick-select for setting
MIRRORD_IMPERSONATED_CONTAINER_NAME
Changed
- Refactor e2e, enable only Node HTTP mirroring test.
- E2E: add macOS to E2E, support using minikube by env var.
- E2E: Skip loading to docker before loading to minikube (load directly to minikube..)
- layer: Environment variables now load before process starts, no more race conditions.
Fixed
- Support connections that start with tcp flags in addition to Syn (on macOS CI we saw CWR + NS)
fcntl
error on macOS #184 by a workaround.
2.4.0
Added
- mirrord-cli
exec
subcommand accepts--extract-path
argument to set the directory to extract the library to. Used for tests mainly. - mirrord-layer provides
MIRRORD_IMPERSONATED_CONTAINER_NAME
environment variable to specify container name to impersonate. mirrord-cli accepts argument to set variable. - vscode-ext provides quick-select for setting
MIRRORD_IMPERSONATED_CONTAINER_NAME
Changed
- Refactor e2e, enable only Node HTTP mirroring test.
- E2E: add macOS to E2E, support using minikube by env var.
- E2E: Skip loading to docker before loading to minikube (load directly to minikube..)
- layer: Environment variables now load before process starts, no more race conditions.
Fixed
- Support connections that start with tcp flags in addition to Syn (on macOS CI we saw CWR + NS)
fcntl
error on macOS #184 by a workaround.
2.3.1
Changed
- Refactor(agent) - change
FileManager
to be per peer, thus removing the need of it being in a different task, moving the handling to the peer logic, change structure of peer handling to a struct. - Don't fail environment variable request if none exists.
- E2E: Don't assert jobs and pods length, to allow better debugging and less flakiness.
- Refactor(agent) - Main loop doesn't pass messages around but instead spawned peers interact directly with tcp sniffer. Renamed Peer -> Client and ClientID.
- Add context to agent/job creation errors (Fixes #112)
- Add context to stream creation error (Fixes #110)
- Change E2E to use real app, closes #149
2.3.0
What's Changed
- Faster ci by @aviramha in #143
- Add Docker cache to Docker build-push action to reduce build duration. by @aviramha in #145
- Refactor traffic by @aviramha in #113
- Fix clap deprecations. by @meowjesty in #146
- Fix universal binary for macOS by @aviramha in #147
- Refactor: Change protocol + mirrord-layer to split messages into modu… by @aviramha in #150
- Better logging for Kube pod failures by @thedanvail in #144
- Add CLI arg for Agent TTL by @thedanvail in #156
- CI Improvements by @aviramha in #157
- Handle openat/open relative paths by @infiniteregrets in #151
- Fix once cell renamings by @infiniteregrets in #159
- Enable "blocking" feature for reqwest by @infiniteregrets in #161
- Override remote env #25 by @meowjesty in #134
- 2.3.0 by @eyalb181 in #163
Full Changelog: 2.2.1...2.3.0
2.2.1
2.2.0
What's Changed
- Refactor CI by @infiniteregrets in #107
- Fix typos by @kianmeng in #116
- scripts/install.sh: improve message for non-writable install target by @eshelyaron in #117
- Resolves #53 by @thedanvail in #111
- New bug template by @eyalb181 in #118
- File pr v3 by @meowjesty in #103
- Add file ops to config. Fix close_detour taking into account the wrong flag for enabling file ops. by @meowjesty in #121
- Changed release profile to strip debuginfo and enable LTO. by @aviramha in #124
- Fix configurations in VS Code extension, and add a file ops toggle by @eyalb181 in #127
- Fix typo in changelog. by @meowjesty in #128
- Update VS Code Extension dependencies. by @aviramha in #129
- Support running emulated processes on m1 using mirrord by @aviramha in #122
- Add detours for fcntl/dup system calls by @infiniteregrets in #115
- Fix random crash on macOS on launch by @aviramha in #132
- Update to version 2.2.0 by @eyalb181 in #133
New Contributors
- @kianmeng made their first contribution in #116
- @eshelyaron made their first contribution in #117
- @thedanvail made their first contribution in #111
Full Changelog: 2.1.0...2.2.0