yoi/tickets/pod-binary.md
2026-04-11 03:23:48 +09:00

34 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# pod: バイナリエントリポイントの追加
## 背景
pod クレートは現在ライブラリのみ(`lib.rs`)。バイナリとしての起動ルートがなく、実行には `examples/pod_cli.rs` を使うか外部クレートから呼ぶしかない。pod 単体で起動できる `main.rs` を追加する。
## 方針
`-m <path>` でマニフェストファイルのパスを受け取って起動する。
```
pod -m manifest.toml
```
### stdin 対応
`-m -` で stdin からマニフェストを読むjq / kubectl と同じ慣習)。優先度は低い。
### CLI args でのマニフェスト指定は採用しない
PodManifest は `[pod]` / `[provider]` / `[worker]` のネスト構造。フラットな引数に展開すると煩雑で、スキーマ変更に引数パーサーが追従し続ける必要がある。
## 設計ポイント
- daemon が pod プロセスを spawn する際、RuntimeDir に書き出し済みのマニフェストファイルのパスをそのまま渡す流れを想定
- マニフェストがファイルとして残るため、`ps` での確認・再起動・デバッグが容易
- stdin を占有しないので将来の対話入力と競合しない
- マニフェストの再読み込み(将来的なホットリロード)にもパスがあれば対応可能
## 変更対象
- `crates/pod/Cargo.toml``[[bin]]` セクション追加、clap 依存追加
- `crates/pod/src/main.rs` — エントリポイント新規作成