ベース URL とバージョニング
Sandbox.run()、sb.exec()、ファイル操作) に使用するサンドボックスのデータプレーンとは異なります。コントロールプレーンの操作では、サンドボックスを生成するインフラストラクチャを作成・設定します。データプレーンの操作では、実行中のサンドボックスと対話します。
API は v1 でバージョニングされています。追加的で後方互換性のある変更は v1 内で提供されます。互換性を損なう変更は新しいバージョンプレフィックスで提供され、CoreWeave はリリース前に告知します。
以前の v1beta2 サーフェスも引き続き利用でき、プロファイルテンプレートとプロファイルバインディングはそこにあります。これらはポリシーに置き換えられており、v1 には追加されません。新しい統合では v1 を対象にしてください。
認証
すべてのリクエストは、TLS 経由で Bearer トークン認証を使用します。[API-ACCESS-TOKEN] を CoreWeave API アクセストークンに置き換えてください:
-
sandbox_admin: ランナーの作成、読み取り、更新、削除、およびランナーに設定するポリシーの指定ができます。マネージドランナーのエンドポイントは、読み取り系も含めてすべてこの action が必要です。sandbox_userを含みます。 レガシーのv1beta2プロフィールを使用するランナーでは、この action により特権プロフィール設定も許可されます。これには、特権コンテナー、ホストの namespace、ホストファイルシステムのマウントが含まれます。これらの設定により、サンドボックスがクラスター管理者に匹敵するノードへのアクセス権を得る可能性があります。v1 ポリシーのallow_privileged設定は、サンドボックスの分離境界内におけるゲスト内の特権を制御します。 -
sandbox_user: サンドボックス (ネットワーク設定を含む) の作成と操作ができます。マネージドランナーの管理へのアクセス権は付与されません。
sandbox_admin を付与し、Sandbox User ロールは sandbox_user を付与します。ロールの説明については、IAM ロール を参照してください。アクセスポリシーの仕組みと権限付与の手順については、アイデンティティとアクセス管理 (IAM) および アクセスポリシーを管理する を参照してください。トークンの詳細については、API アクセストークンを管理する を参照してください。
認証されていないリクエストは、google.rpc.Status 形式の本文とともに 401 Unauthenticated を返します。
CoreWeave Intelligent CLI (cwic) は、これらの REST エンドポイントをラップします。CLI ユーザーは cwic auth login で一度認証すると、cwic がローカルの cwic 設定にトークンを保存します。CLI のワークフローについては、サンドボックスポリシーを設定する を参照してください。
コンテンツタイプ
リクエストボディとレスポンスボディはすべて JSON 形式です。curl や fetch 形式のクライアントもそのまま利用できます。gRPC クライアントは不要です。これらのエンドポイントのベースとなっている公開 Protobuf 定義と、そこから生成された SDK については、Protobuf を参照してください。
NetworkConfig API は、サンドボックスのデータプレーン上の https://api.cwsandbox.com で提供され、sandbox_user を使用します。サンドボックスに適用したいネットワークルールを変更する場合はこの API を使用し、これらのルールの許容範囲を定めるランナーのポリシーを設定する場合はコントロールプレーンを使用します。
リソースファミリー
コントロールプレーンは、管理用リソースとしてマネージドランナーを公開します。
ポリシーを個別に指定してアクセスすることはできません。ポリシーはランナーのフィールドであるため、ランナーを取得して読み取り、更新対象を
policy に限定したランナーの更新で書き込みます。書き込みのたびにドキュメント全体が置き換えられます。手順については、サンドボックスポリシーを設定するを参照してください。
プロフィールテンプレートは、ランナーの profile_bindings フィールドとともに、引き続き v1beta2 の /v1beta2/sandbox/profile-templates で利用できます。これらはポリシーに置き換えられており、v1 モデルには含まれず、今後も追加されません。
概念モデルと、ゲートウェイが実行時のリクエストを仲介する仕組みについては、サンドボックスのアーキテクチャを参照してください。このページでは、エンドポイントの仕様を説明します。
ページネーション
List エンドポイントは、カーソルベースのページネーションをサポートしています。pageSize: ページサイズ。デフォルトは50、最大は100です。pageToken: 前のページでnextPageTokenとして返されたカーソル。空文字列の場合、それ以上のページはありません。
Paginate managed runners
cwic sandbox runner get などの一覧表示コマンドの出力を自動的にページ分割します。
更新時のフィールドマスク
v1 API のマネージドランナー更新では、オプションの update_mask を指定して、更新対象とする変更可能なフィールドを選択できます。マスクを省略するか空にすると、変更可能なリソース全体が置き換えられます。ワイルドカード * はバイナリ Protobuf でのみサポートされ、REST の updateMask クエリパラメーターや JSON リクエストではサポートされません。
パスはドット区切り表記と snake_case のフィールド名を使用します (標準の google.protobuf.FieldMask の規則) 。よく使用される変更可能なパスは次のとおりです。
REST インターフェースでは、各パスの JSON (camelCase) 形式を使用して、マスクをカンマ区切りの単一の
updateMask クエリパラメーターとして指定し、リソース自体はラッパーなしでリクエストボディとして送信します。
ランナーのアフィニティ
マネージドランナーの spec では、spec.overrides.affinity を指定できます。これは Kubernetes のキャメルケースのキーを使用する Kubernetes Affinity オブジェクトで、nodeAffinity、podAffinity、podAntiAffinity をサポートしています。このフィールドが制御するのはランナーの Pod のみです。サンドボックスの Pod の配置や、ノード予算の適格性には影響しません。解決後の deploymentSpec.affinity は出力専用です。
アフィニティを更新すると、オブジェクト全体が置き換えられます。updateMask=spec.overrides.affinity を指定して明示的に "affinity": {} を設定すると、継承されたアフィニティを含むすべてのルールがクリアされます。同じマスクを指定してリクエストボディから affinity を省略すると、お客様によるオーバーライドが削除され、プラットフォームのデフォルトがリストアされます。ノードセレクターとトレランスは、これとは独立して扱われます。
CLI と REST の例、スケジューリングの動作、ロールアウトの検証については、ランナーのアフィニティを設定するを参照してください。従来の v1beta2 でこれに相当するフィールドは managed_spec.overrides.affinity です。
エラー
エラーは適切な HTTP ステータスとgoogle.rpc.Status 本文を返します。
検証メッセージは安定した公開仕様の一部です。エンドユーザーに直接表示できます。
冪等性
コントロールプレーンAPIは、次の冪等性を保証します。Delete*エンドポイントは冪等です。すでに削除済みのリソースに対してDELETEを呼び出した場合、副作用なしに404が返されます。Create*エンドポイントは冪等ではありません。同じrunnerIdまたはdisplayNameを2回指定すると409 Conflictが返されます。安全に再試行するには、GETでリソースがすでに存在するかどうかを確認してください。Update*エンドポイントは、フィールドマスクを使用し、変更したいフィールドのみを設定していれば、安全に再試行できます。
ハートビート
ランナーのハートビートは、ランナーの生存状態をトラッキングします。コントロールプレーンが生存確認期間内にハートビートを受信しないと、ランナーのconnectionStatus は DISCONNECTED に切り替わります。ランナーに到達できなくなってからコントロールプレーンに反映されるまで、最大 30 秒の遅延が生じます。ランナーの Get 応答から、connectionStatus と関連する installStatus フィールドの両方を読み取れます。
関連情報
- Terraform でランナーを管理する: CoreWeave Terraform プロバイダーを使用して、ランナーの設定、インポート、更新を行う方法を説明します。
- サンドボックスのアーキテクチャ: 4 種類のリソースの分類と、ゲートウェイが実行時リクエストを仲介する仕組みを説明します。
- ポリシーの概要: サンドボックスにポリシーが適用される仕組みを説明します。
- サンドボックスポリシーを設定する: CoreWeave Intelligent CLI のワークフローと、プロフィールの spec の各フィールドを順に説明します。
- ランナーのデプロイと管理: CoreWeave Intelligent CLI と REST を使用したランナーのライフサイクル管理を順に説明します。
- ポリシーリファレンス: プロフィールで設定できるすべてのフィールドを説明します。
- Protobuf: 公開されている Protobuf モジュールの入手先、各サービスを提供するホスト、生成された SDK のインストール方法を説明します。