tiltup について
tiltup は、Tiltfile、Tilt のエラー、開発環境の起動を扱うスキルです。設定の根本原因を修正し、リソースの状態を監視して、Tilt のライブリロードで変更を検証します。
主な機能
- 01Tilt 設定の編集ガイド
- 02リソース依存関係の宣言的な設定
- 03Tilt の起動と状態監視
- 04ログとマニフェストによるエラー診断
- 05ライブリロードで修正を検証
活用シーン
- 01Tilt でプロジェクト環境を起動
- 02エラー状態が続くリソースを調査
- 03設定の依存順序を修正
- 04サービスと Compose の状態を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ alleneubank/ claude-code --skill tiltupインストール後、Claude Code で/tiltupを入力して読み込まれたか確認します。
詳細
Tilt を起動する
原則(常に適用)
Tiltfile、Tilt のエラー、または開発環境のブートストラップに取り組む際は、常に以下を適用します。
症状ではなく Tiltfile を修正する
- ソース設定を直接修正する - Tiltfile、Dockerfile、k8s マニフェスト、または Helm の値
- シェルで回避しない - ラッパースクリプト、
|| true、try/except passは使用しません - 動的であるべきポート、パス、ホスト名、イメージタグ、コンテナ名をハードコードしない
- 実際のエラーを覆い隠すフォールバックを追加しない - リソースに問題が発生した場合、その失敗が見える状態にします
- 不安定な依存関係に対するスリープ/再試行ループを追加しない -
resource_deps()またはk8s_resource(deps=)で依存関係の順序を修正します - Tilt がすでに処理している準備状況のポーリングを追加しない -
k8s_resource(readiness_probe=)またはプローブ設定を使用します
依存関係を宣言的に表現する
- ポートの競合:別のポートを選ぶのではなく、ポート割り当て元を修正します
- リソースの起動順序:順次起動スクリプトではなく、
resource_deps()を使用します - 環境変数:インラインのデフォルト値ではなく、
silo.tomlまたは gen-env の出力を使用します - イメージの利用可能性:準備完了までスリープするのではなく、
image_depsまたはdepsを使用します
Tilt のライブリロード
Tiltfile を編集すると、Tilt は変更を自動的に反映します。以下の場合に tilt up を再起動しないでください。
- Tiltfile の編集
- ソースコードの変更
- Kubernetes マニフェストの更新
再起動するのは、Tilt のバージョンアップグレード、ポート/ホスト設定の変更、クラッシュ、クラスターコンテキストの切り替えの場合のみです。
ワークフロー(Tilt を明示的に起動する場合)
ステップ 1:現在の状態を確認する
-
tilt がすでに実行中か確認します。
PROJECT=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" || basename "$PWD") zmx list --short 2>/dev/null | grep -q "^${PROJECT}-tilt$"実行中の場合は、
tilt get uiresources -o jsonでヘルス状態を確認し、ステップ 3 に進みます。 -
必要な環境ファイル(
.localnet.env、.env.local、silo.toml)を確認します。silo.tomlがある場合は、silo upの手順を使用します- gen-env スクリプトがある場合は、まず実行します
- どちらもない場合は、プロジェクトの README でブートストラップ手順を確認します
-
k3d クラスターまたは Docker の前提条件を確認します。
ステップ 2:zmx で Tilt を起動する
zmx スキルのパターンに従います。
PROJECT=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" || basename "$PWD")
SESSION="${PROJECT}-tilt"
if zmx list --short 2>/dev/null | grep -q "^${SESSION}$"; then
echo "Tilt session already exists: $SESSION"
else
zmx run "$SESSION" 'tilt up'
echo "Started tilt in zmx session: $SESSION"
fi
silo プロジェクトでは、tilt up の代わりに silo up を実行します。
ステップ 3:ブートストラップを監視する
収束するまでポーリングします。
- 初期リソース登録のために 10 秒待ちます
- 15 秒ごとに最大 20 回ポーリングします。docker-compose コンテナのヘルス状態も含めます
(
composeResourceInfo.healthStatus)。Up (unhealthy)の compose コンテナはruntimeStatus=okのままで、ほかの方法では見えません。そのため、ブートストラップが 完了したように見えても、canton/splice/postgres が HEALTHCHECK にひそかに失敗している 可能性があります。tilt get uiresources -o json | jq -r '.items[] | select(.status.runtimeStatus == "error" or .status.updateStatus == "error" or .status.updateStatus == "pending" or .status.composeResourceInfo.healthStatus == "unhealthy") | "\(.metadata.name): runtime=\(.status.runtimeStatus) update=\(.status.updateStatus) compose=\(.status.composeResourceInfo.healthStatus // "-")"' - リソースを追跡します:
pending->in_progress->ok - 成功の条件:すべてのリソースが
runtime=ok, update=ok(またはnot_applicable)に到達し、 かつ docker-compose リソースのcomposeResourceInfo.healthStatus == "unhealthy"がないこと - リソースが
errorのまま安定する場合、または compose リソースがunhealthyのままの場合は、 ステップ 4 に進みます。compose のプローブが unhealthy の場合は、docker inspect <compose-project>-<svc> --format '{{json .State.Health}}'で実際の原因を確認します。 マウントされたヘルスチェック用スクリプトが、イメージに含まれていない CLI を呼び出していることがよくあります (サービス自体は稼働しています。チェックを無効にするのではなく、プローブスクリプトを修正します)。
ステップ 4:エラーを診断して修正する
エラー状態の各リソースについて、次の手順を行います。
- ログを読みます:
tilt logs <resource> --since 2m - Tiltfile と関連する k8s マニフェストを読みます
- 実行中のプロセスではなく、設定内の根本原因を特定します
- 上記の原則に従って修正を適用します
- Tilt はライブリロードします。ステータスを再度ポーリングして確認します
進展がないまま同じリソースに対して修正を 3 回繰り返した場合:
- 完全なログとともにエラーを報告します
- Tiltfile のバグ、上流の依存関係、またはインフラストラクチャの問題のいずれかを特定します
- リソースを黙ってスキップしたり無効にしたりしないでください
ステップ 5:報告する
## Tilt Status: <healthy|degraded|errored>
**Resources**: X/Y ok
**Session**: zmx $SESSION
### Errors (if any)
- <resource>: <root cause> — <what was fixed or what remains>
コメント
Markdown 対応