Skip to content

Releases: metalbear-co/mirrord

2.12.0

06 Sep 09:02
a21ea7b
Compare
Choose a tag to compare

Added

  • Add more configuration values to the VS Code extension.
  • Warning when using remote tcp without remote DNS (can cause ipv6/v4 issues). Closes #327

Fixed

  • VS Code needed restart to apply kubectl config/context change. Closes 316.
  • Fixed DNS feature causing crash on macOS on invalid DNS name due to mismatch of return codes. #321.
  • Fixed DNS feature not using impersonated container namespace, resulting with incorrect resolved DNS names.
  • mirrord-agent: Use IndexAllocator to properly generate ConnectionIds for the tcp outgoing feature.
  • tests: Fix outgoing and DNS tests that were passing invalid flags to mirrord.
  • Go Hooks - use global ENABLED_FILE_OPS
  • Support macOS with apple chip in the IntelliJ plugin. Closes #337.

New Contributors

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.