Skip to content

Releases: metalbear-co/mirrord

2.11.0

01 Sep 09:14
df99db7
Compare
Choose a tag to compare

Added

  • New feature: mirrord now supports TCP traffic stealing instead of mirroring. You can enable it by passing --tcp-steal flag to cli.

Fixed

  • mirrord-layer: Go environment variables crash - run Go env setup in a different stack (should fix #292)

Changed

  • mirrord-layer: Add #![feature(let_chains)] to lib.rs to support new compiler version.

2.10.1

30 Aug 20:39
7d9624a
Compare
Choose a tag to compare

Fixed

  • CI:Release - Fix typo that broke the build

2.10.0

30 Aug 20:02
45b6a92
Compare
Choose a tag to compare

Added

  • New feature, tcp outgoing traffic. It's now possible to make requests to a remote host from the staging environment context. You can enable this feature setting the MIRRORD_TCP_OUTGOING variable to true, or using the -o option in mirrord-cli.
  • mirrord-cli add login command for logging in to metalbear-cloud
  • CI:Release - Provide zip and sha256 sums

Fixed

  • Environment variables feature on Golang programs. Issue #292 closed in #299

2.9.1

28 Aug 14:48
4e9c2c3
Compare
Choose a tag to compare

Fixed

  • CI - set typescript version at 4.7.4 to fix broken release action

2.9.0

28 Aug 12:03
996b628
Compare
Choose a tag to compare

Added

  • Support for Golang fileops
  • IntelliJ Extension for mirrord

Changed

  • mirrord-layer: Added common Result type to to reduce boilerplate, removed dependency of anyhow crate.
  • mirrord-layer: Split LayerError into LayerError and HookError to distinguish between errors that can be handled by the layer and errors that can be handled by the hook. (no more requiring libc errno for each error!). Closes #247

2.8.1

22 Aug 14:23
267a92a
Compare
Choose a tag to compare

Fixed

  • CI - remove usage of ubuntu-18.04 machines (deprecated)

2.8.0

22 Aug 12:42
10a3466
Compare
Choose a tag to compare

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 spawning sniffer (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

18 Aug 08:11
f6ae5d9
Compare
Choose a tag to compare

Added

  • mirrord-layer: You can now pass MIRRORD_AGENT_COMMUNICATION_TIMEOUT as environment variable to control agent timeout.
  • Expand file system operations with access and faccessat 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

03 Aug 13:04
5cf31df
Compare
Choose a tag to compare

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 uses socket2::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

20 Jul 13:35
bfac692
Compare
Choose a tag to compare

Added

  • New feature, remote DNS resolving.
    It is now possible to use the remote's addrinfo by setting the MIRRORD_REMOTE_DNS variable to
    true, or using the -d option in mirrord-cli.
  • New feature, Ephemeral Containers.
    Use Kubernetes beta feature Ephemeral 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 to mirrord-layer/file.
  • Refactored the error part of the many Result<Response, ResponseError>.
  • Refactored file related functions, created FileHandler 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 to VecDeque - fixes a potential bug (loss of order)