metalbear-co/mirrord

Запускай любой процесс на своей машине или в окружении AI-агента так, будто он является подом в вашем Kubernetes-кластере: с реальными переменными окружения, DNS, сетью и трафиком.

Инструменты⭐ 5 334Rustпоследний релиз: 3.262.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

mirrord — это инструмент, который позволяет запускать локальные процессы так, будто они работают в целевом подe Kubernetes, маршрутизируя трафик, файлы и переменные окружения через кластер.

Зачем нужен

Инструмент решает задачу разработки без необходимости деплоя кода в кластер, обеспечивая мгновенную обратную связь. Он позволяет писать и отлаживать код на локальной машине, используя реальные данные, сервисы и окружение из живого кластера, что ускоряет цикл разработки и упрощает end-to-end тестирование.

Что можно реализовать

  • Отладка локального кода с доступом к реальным переменным окружения и сервисам из подов Kubernetes
  • Использование AI-агентов (Claude Code, Cursor, Copilot) для генерации и проверки кода против реальных сервисов кластера без деплоя
  • Чтение и запись файлов, а также доступ к очередям сообщений из локального процесса через под в кластере
  • Быстрое тестирование изменений кода в условиях, максимально приближенных к продакшену, без риска для других пользователей кластера

Ключевые возможности

  • Маршрутизация сетевого трафика, файловых операций и переменных окружения между локальным процессом и подом Kubernetes
  • Интеграция с AI-кодинговыми агентами (Cursor, Claude Code, Codex CLI и др.) для работы с контекстом кластера
  • Наличие расширений для VS Code, IntelliJ и CLI-инструмента для удобного запуска
  • Возможность отключения части Linux-капбилити (CAP_NET_ADMIN, CAP_SYS_PTRACE и др.) для настройки безопасности

👤 Кому подойдёт: разработчики, работающие с Kubernetes, и команды, использующие AI-агентов для написания кода

Релизы

3.262.0minor
🕐 вчера · релиз на GitHub ↗

Релиз mirrord 3.262.0: новые флаги для subscribe, вкладка Events в UI, исправления багаджа, UDP, Unix-сокетов и HTTPS.

  • Added: Добавлены флаги --unmatched и --session-key-field в mirrord subscribe для фильтрации сообщений и привязки событий к сессиям.
  • Added: В mirrord ui появилась вкладка Events с лентой перехваченных HTTP-запросов и сообщений очередей по всем сессиям кластера.
  • Fixed: Исправлена потеря конфигурации baggage в subscribe и UI, из-за которой не работал кастомный оператор.
  • Fixed: Устранено зависание mirrord ui при истечении срока действия учетных данных kube context.
  • Fixed: Исправлена маршрутизация UDP через оператора за счет сохранения метаданных HostIP целевого пода.
  • Fixed: Устранено усечение путей Unix-сокетов при передаче addrlen без завершающего NUL.
3.261.0minor
🕐 3 дн назад · релиз на GitHub ↗

В mirrord 3.261.0 добавлены пути к секретам в список удалённого чтения и исправлена работа с unix-сокетами.

  • Added: Добавлены пути /var/run/secrets/ и /run/secrets/ в список по умолчанию для удалённого чтения.
  • Fixed: Исправлено подключение mirrord container к исходящим unix-потокам и сокетам SOCK_SEQPACKET.
3.260.0minor
🕐 4 дн назад · релиз на GitHub ↗

В релизе 3.260.0 улучшена консистентность применения глобальных настроек и исправлена ошибка загрузки инструментов разработчика на macOS 27.

  • Глобальная конфигурация теперь последовательно применяется ко всем командам mirrord, сохраняя при этом приоритет у явных настроек проекта, переменных окружения и флагов CLI.
  • Fixed: Устранён сбой работы xcrun, make, git и других инструментов разработчика на macOS 27, вызванный несовпадением архитектур при загрузке libxcrun.dylib.
3.259.0minor
🕐 4 дн назад · релиз на GitHub ↗

mirrord 3.259.0: добавлена аналитика сессий от AI-агентов и исправлена ошибка lstat/readlink при работе с абсолютными симлинками.

  • Added: Анонимная аналитика теперь определяет, запущена ли сессия AI-агентом (Claude Code, Cursor, Codex, Gemini CLI, Amp), по аналогии с обнаружением CI.
  • Fixed: Исправлен сбой remote lstat и readlink с ошибкой ENOENT, если родительская директория является абсолютным симлинком (например, /var/run -> /run).
  • Fixed: Восстановлена корректная работа PHP file_get_contents для файлов, таких как /var/run/secrets/eks.amazonaws.com/serviceaccount/token.
3.258.0minor
🕐 5 дн назад · релиз на GitHub ↗

mirrord 3.258.0: новый режим mirror, управление конфигами, поддержка CronJob и фикс SIP на macOS.

  • Added: Добавлены команды mirrord config set и unset для управления пользовательскими настройками.
  • Added: В mirrord up добавлен новый режим mirror, доступный через флаг --mode или конфиг.
  • Added: Preview environments теперь поддерживают таргетинг на CronJob с переопределением расписания.
  • Fixed: Исправлен патчинг SIP на macOS для бинарников с архитектурным срезом arm64e.x1.
3.257.0minor
🕐 7 дн назад · релиз на GitHub ↗

В релизе mirrord 3.257.0 добавлена поддержка миграций Liquibase.

  • Added: Добавлена поддержка миграций Liquibase.
3.256.0minor
🕐 11 дн назад · релиз на GitHub ↗

Добавлена настройка контекста Kubernetes для mirrord exec, исправлен выбор контейнера и вывод ID сессии.

  • Added: Добавлена пользовательская конфигурация для запоминания успешного использования оператора в контексте Kubernetes и выбора контекста по умолчанию для mirrord exec.
  • Fixed: Исправлен автоматический выбор целевого контейнера: теперь пропускается sidecar cloud-sql-proxy, чтобы выбрать основной контейнер приложения.
  • Fixed: Улучшен вывод информации о сессии: теперь отображается, какой ветке базы данных она соответствует и почему, вместо неинформативных нулей.
  • Fixed: mirrord operator session stop теперь возвращает ID сессии в верхнем регистре шестнадцатеричной системы, как и ожидалось.
3.255.0minor
🕐 12 дн назад · релиз на GitHub ↗

Выпуск 3.255.0: добавлен экспериментальный TUI, поддержка NATSPubSub и ConfigMap для ветвления БД, исправлен сбой контейнеров.

  • Added: Добавлен экспериментальный терминальный интерфейс mirrord tui для управления сессиями и просмотра окружений.
  • Added: Введена поддержка очереди NATSPubSub и источника конфигурации из ConfigMap для ветвления баз данных.
  • Added: Улучшена отладка preview-окружений: теперь логи выводятся при сбоях, а UI отображает детали фаз и пулы очередей.
  • Fixed: Исправлен крах mirrord container из-за отсутствия системных сертификатов CA в образе CLI.
  • Fixed: Агент теперь предупреждает о конфликте правил iptables/nftables, который может нарушить работу service mesh.
3.254.0minor
🕐 18 дн назад · релиз на GitHub ↗

Добавлена поддержка типа очереди NATS в конфигурации split_queues и исправлены ошибки работы с портами, базами данных и файлами.

  • Added: Добавлен тип очереди NATS в конфигурацию split_queues.
  • Fixed: Исправлено отключение всех клиентов из-за сбоев при удалении правил iptables во время освобождения порта.
  • Fixed: Исправлено отображение проброса портов для веток с параметрами подключения, использующими value_pattern.
  • Fixed: Обеспечена стабильная работа с удалёнными файлами и очистка после переподключения агента.
  • Fixed: Обновления пользовательских данных mirrord теперь выполняются атомарно, что предотвращает потерю данных.
3.253.1patch
🕐 19 дн назад · релиз на GitHub ↗

Исправлена отправка перехваченных HTTP/2-запросов локальному приложению через HTTP/1 без заголовка Host, что вызывало ошибки 400.

  • Fixed: Исправлена отправка перехваченных HTTP/2-запросов локальному приложению по протоколу HTTP/1 без заголовка Host, из-за чего серверы возвращали ошибку 400.
  • Fixed: Устранена проблема, при которой перехваченные HTTP/2-запросы передавались по объединённому соединению HTTP/1, из-за чего протокол зависел от состояния пула соединений.
3.253.0minor
🕐 20 дн назад · релиз на GitHub ↗

mirrord 3.253.0: добавлена поддержка jq_filter для разделения очередей RabbitMQ и исправлена ошибка conntrack.

  • Added: В feature.split_queues для RabbitMQ добавлена поддержка jq_filter.
  • Added: mirrord up теперь автоматически разделяет очереди RabbitMQ (требуется поддержка оператора).
  • Fixed: Исправлена ошибка, из-за которой conntrack -D удалял записи новых перенаправленных входящих соединений.
3.252.1patch
🕐 20 дн назад · релиз на GitHub ↗

Исправлено определение порта отладчика PyCharm при запуске интерпретатора с опциями, что устраняло зависание IDE.

  • Fixed: Исправлено обнаружение порта отладчика PyCharm, когда интерпретатор запускается с опциями (например, -X pycache_prefix=...) перед скриптом. Ранее слой искал скрипт сразу после интерпретатора, из-за че
3.252.0minor
🕐 21 дн назад · релиз на GitHub ↗

mirrord 3.252.0: ветвление S3-бакетов, улучшенная работа с портами БД и исправление бага с искажением данных в туннелях.

  • Added: Добавлена поддержка ветвления S3-бакетов с возможностью клонирования и фильтрации объектов.
  • Added: Туннели портов баз данных теперь остаются активными, пока другие сессии mirrord используют их.
  • Added: Команда db-branches connections теперь поддерживает вывод в формате JSON.
  • Fixed: Исправлен баг, из-за которого агент мог искажать данные в исходящих туннелированных соединениях.
  • Fixed: Порт JB_IDE_PORT добавлен в список игнорируемых портов отладчика.
3.251.0minor
🕐 27 дн назад · релиз на GitHub ↗

Релиз mirrord 3.251.0: добавлена поддержка AWS IAM и Secrets Manager для MongoDB, улучшена работа с ветками БД и исправлены ошибки.

  • Added: Добавлена аутентификация AWS IAM (MONGODB-AWS) и поддержка AWS Secrets Manager для ветвления баз данных.
  • Added: Ресурсы mirrord теперь сообщают о статусе готовности, а kubectl показывает фазу и тайминги.
  • Added: В конфиг mirrord up добавлена опция config_patch для настройки отдельных сервисов.
  • Added: Сервисы mirrord up могут задавать run.directory для запуска команд относительно конфига.
  • Fixed: Скрипт install.sh стал совместим с POSIX sh, исправлен фильтр событий в мониторе сессий.
3.250.0patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена уязвимость h2, добавлены query_params для pg-веток, улучшен CLI и исправлены баги.

  • Fixed: Обновлена библиотека h2 для устранения уязвимости с неограниченным расходом памяти при обработке пустых HTTP/2 DATA-фреймов.
  • Added: Добавлена поддержка query_params в ветках баз данных PostgreSQL для переопределения параметров подключения, таких как sslmode.
  • Fixed: Исправлена генерация shell-комплитов, чтобы они не предлагали внутренние команды mirrord.
  • Fixed: Устранена отправка избыточных событий телеметрии в idle-вкладке UI при каждом опросе сессии.
  • Временно отключена инъекция задержки исходящих соединений для тестирования хаоса.
3.249.0minor
🕐 1 мес назад · релиз на GitHub ↗

В релизе 3.249.0 добавлена поддержка SLSA-подписей для проверки подлинности образов и бинарников, а также декодирование protobuf в Kafka.

  • Added: Образы агента, CLI и бинарные файлы теперь публикуются с подписанным SLSA-происхождением для проверки подлинности через gh attestation.
  • Added: В Kafka добавлена возможность декодирования plain-protobuf полезной нагрузки для использования в фильтрах jq через параметр payload_protobuf.
3.247.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.247.0: браузеры подключаются к сессиям по ссылке без расширения, добавлена поддержка мультикластерных реплик.

  • Added: Браузеры могут присоединяться к сессии по ссылке-приглашению без установки расширения.
  • Added: Добавлена поддержка пре-реплик для работы с несколькими кластерами.
  • Added: В интерфейсе mirrord теперь отображается статус сессий (ожидание или активность).
3.246.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.246.0: агент переопределяет Cache-Control, добавлена поддержка мульти-подов через лейблы, исправлены проблемы с конкурентностью.

  • Added: Агент теперь заменяет заголовок Cache-Control на no-cache, предотвращая кэширование ответов браузерами и прокси.
  • Added: Добавлена поддержка target.path.labels для перехвата трафика сразу нескольких подов с общими лейблами в неймспейсе.
  • Fixed: Исправлены проблемы с конкурентностью в логике mirrord-agent при обработке исходящих соединений.
3.245.0minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз mirrord 3.245.0: диагностика сбоев на Windows, новые фильтры сессий, контекст K8s, переменная git_branch и повышение лимитов агента.

  • Added: Добавлена диагностика сбоев для mirrord exec на Windows с созданием дампов памяти и отчетов.
  • Added: В mirrord up добавлена поддержка указания kube-контекста через аргумент или конфиг.
  • Added: В шаблонизацию конфига добавлена переменная git_branch для привязки значений к ветке.
  • Added: Добавлен фильтр --key в mirrord session ls для вывода сессий с заданным ключом.
  • Fixed: Исправлены ошибки Windows-слоя: утечка процессов JetBrains, неверные ошибки портов и автоопределение Java-отладчика.
  • Fixed: Исправлено обновление истекших сертификатов клиента без запроса CI-ключа и генерация конфига.