Git module を始める
Git に置いた module を、Takosumi で plan → apply するところまで動かします。 module も provider もそのまま使えます。書き換える必要はありません。
Source を登録する
まず「どのリポジトリを追うか」を登録します。これを Source と呼びます。必要なのは Workspace、名前、URL の 3 つだけです。
curl -X POST "$TAKOSUMI_DEPLOY_CONTROL_URL/api/v1/sources" \
-H "authorization: Bearer $TAKOSUMI_DEPLOY_CONTROL_TOKEN" \
-H 'content-type: application/json' \
-d '{
"workspaceId": "ws_example",
"name": "example-app",
"url": "https://github.com/example/example-app.git",
"defaultRef": "v1.2.0",
"defaultPath": "deploy/opentofu"
}'オプションは 4 つです。たいてい defaultRef と defaultPath を指定します。
| オプション | 省略時 | 役割 |
|---|---|---|
defaultRef | Git の HEAD | 追う branch / tag / commit |
defaultPath | . | module があるディレクトリ |
authConnectionId | なし | 非公開リポジトリを読むための認証 |
autoSync | false | ref の定期確認を有効にする |
応答の hookSecret はこのときしか見られません。webhook を設定するなら、ここで 控えておいてください。あとから再取得はできません。失くしたら作り直しです。
同期する
defaultRef は「どこを追うか」です。「何を実行したか」は、ref を解決した commit (SourceSnapshot) です。同期して snapshot を作ります。
curl -X POST "$TAKOSUMI_DEPLOY_CONTROL_URL/api/v1/sources/src_example/sync" \
-H "authorization: Bearer $TAKOSUMI_DEPLOY_CONTROL_TOKEN" \
-H 'content-type: application/json' \
-d '{ "intent": "manual_plan" }'同期 Run が succeeded になり、snapshot が /api/v1/sources/{sourceId}/snapshots に出てから先へ進みます。古い snapshot を 最新として使い回さないでください。確認した内容と適用する内容が食い違います。
Capsule を作る
Capsule はデプロイされた 1 つのまとまりです。Source が「どこから」なら、Capsule は 「何が動いているか」です。
curl -s "$TAKOSUMI_DEPLOY_CONTROL_URL/api/v1/workspaces/ws_example/capsules" \
-H "authorization: Bearer $TAKOSUMI_DEPLOY_CONTROL_TOKEN"開発用と本番用は、別の Capsule に別の Connection を 割り当てます。同じ module をそのまま使い、接続だけを切り替えられます。
plan して apply する
Run は必ず計画から始まります。まず plan を作り、内容を確認します。
curl -X POST "$TAKOSUMI_DEPLOY_CONTROL_URL/api/v1/capsules/cap_example/plan" \
-H "authorization: Bearer $TAKOSUMI_DEPLOY_CONTROL_TOKEN"
takosumi status run_example
takosumi logs run_example問題なければ apply します。承認が必要な設定では、apply の前に /approve を通します。
curl -X POST "$TAKOSUMI_DEPLOY_CONTROL_URL/api/v1/runs/run_example/apply" \
-H "authorization: Bearer $TAKOSUMI_DEPLOY_CONTROL_TOKEN"次に読む
- Source と Capsule — 仕組みの詳細
- 実行モデル — Run の詳しい挙動
- 認証情報を接続する