Communityコーディング&開発github.com

metalbear-co/mirrord

任意のプロセスを、自身のマシンまたはAIエージェントの環境で、Kubernetesクラスター内のPodであるかのように実行します:実際の環境変数、DNS、ネットワーク、トラフィックを利用可能。

mirrord とは?

このスキルは、Kubernetes開発におけるローカル環境とクラスター環境のギャップを解消する「mirrord」ツールを提供します。開発者は、自身のマシン上やAIエージェントの実行環境で任意のプロセスを起動する際、そのプロセスがクラスター内のPodであるかのように動作させることができます。具体的には、実際の環境変数やDNS解決、ネットワーク接続、さらには受信トラフィックまでもがクラスターレベルで透過的に利用可能になります。これにより、コンテナイメージのビルドやデプロイ、複雑なポートフォワーディング設定なしに、本番クラスターと同様の条件下で迅速な開発・テストが行えます。対応プラットフォームはmacOS、Linux、Windowsであり、動作にはKubernetesクラスターへのアクセスとkubectlの設定が必要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add metalbear-co/mirrord

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

mirrord は何をしますか?

任意のプロセスを、自身のマシンまたはAIエージェントの環境で、Kubernetesクラスター内のPodであるかのように実行します:実際の環境変数、DNS、ネットワーク、トラフィックを利用可能。

概要

mirrordは、開発者やAIエージェントがコンテナイメージのビルド、デプロイ、複雑なポートフォワーディングを必要とせずに、Kubernetesクラスターと同一の環境でコードを実行できるオープンソースツールです。

仕組み

  1. mirrordは、実行中のプロセス(例:開発サーバー、テストスイート、スクリプト)にアタッチします。
  2. クラスターとのトンネルを作成し、選択したPodの特権的なビューを取得します。
  3. プロセスからのネットワークトラフィック、DNS解決、環境変数読み取りをインターセプトし、クラスター内のPodからのものであるかのように透過的にルーティングします。
  4. 受信リクエストも、あたかも選択したPodに送信されたかのように、ローカルプロセスに転送できます。

使用例

  • mirrord exec -t my-pod -- python my_script.py — クラスターコンテキストでスクリプトを実行。
  • mirrord run -t my-pod -- npm start — クラスター内のPodとしてNode.jsアプリを実行。
  • CI/CDパイプラインと統合し、コードを変更せずにクラスターリソースに対してテストを実行。

設定

mirrordは、CLI引数、環境変数、または設定ファイルを通じて設定できます。主なオプションは以下の通りです。

  • --target / -t: ミラーリングするターゲットPodの名前(必須)。
  • --namespace / -n: ターゲットPodの名前空間(デフォルト: 現在のK8sコンテキストの名前空間)。
  • --agent-image: 使用するエージェントイメージ(デフォルト: 最新のmirrordエージェントイメージ)。
  • --no-dns: DNSインターセプトを無効化。
  • --no-env: 環境変数インターセプトを無効化。
  • --no-network: ネットワークトラフィックインターセプトを無効化。

動作要件

  • Kubernetesクラスターへのアクセス権(有効なkubeconfig設定)。
  • ターゲットPodの名前と名前空間は、クラスター内に存在する必要があります。
  • kubectl がインストールされ、パスが通っていること。

対応プラットフォーム

  • macOS (Intel & Apple Silicon)
  • Linux (x86_64 & arm64)
  • Windows (x86_64)

制限事項

  • ターゲットPodは、mirrordエージェントのサイドカーコンテナを一時的に注入するため、kubectlで変更可能である必要があります。
  • ファイルシステムへのアクセスは、デフォルトではインターセプトされませんが、設定によって有効化できます。
  • UDPトラフィックの一部のプロトコル(例:mDNS)は、完全にはサポートされていない場合があります。

詳細情報

関連スキル