コンテンツにスキップ

モジュール VII — デプロイと統合

モジュール VII は、顧客のインフラストラクチャを変更(mutate)する唯一のモジュールである。 製品の他のすべての部分は read-first である。本モジュールは、エージェントと MCP サーバーを 宣言的・バージョン管理・可逆な操作としてプロビジョニング・更新・廃止し、エージェントが エンタープライズリソースに到達するために使用する接続性と参照する identity を宣言する。 作用するがゆえに、そのセキュリティ基準は製品中で最も高く、ライブのアクチュエーション (actuation)は、オペレーターが明示的にプロビジョニングするまで deny-closed のシーム背後に 保持される。

まず計画と統制、その後に(場合により)適用

Section titled “まず計画と統制、その後に(場合により)適用”

ライフサイクルは plan → apply → verify → retire であり、**desired(望ましい)**状態を real(現実の)状態に対して調整(reconcile)する。重要な区別は宣言 ≠ 変更である。

  • 望ましい状態の宣言 — 定義の作成・更新・ロールバック(manage-as-code の olivares_deployment リソース経由も含む)— は control plane のみで完結し、インフラ ストラクチャには一切触れない
  • plan は純粋なドライランの差分であり、verify はドリフトを確認しスナップ ショットを更新する。いずれも変更を行わない。
  • applyretire は唯一の変更操作である。これらは二段階(two-phase)かつ deny-by-default である。第一段階は差分を計算し、何も変更せずに plan ハッシュに バインドされた人間の承認を要求する。第二段階は、承認が approvedかつ plan ハッシュが依然として一致する場合にのみ進行する。それ以外のいかなる状態(pending、 expired、rejected、ゲートなし、古い plan)も拒否され記録される。再指定はハッシュを変更し 承認を無効化する(anti-TOCTOU)。

変更を伴う apply/retire はデフォルトではライブではない。アクチュエーションシーム (Executor)は deny-closed である。executor が プロビジョニングされていない状態では、apply/retire/plan/verify は 503 で fail closed する — control plane は望ましい状態を宣言できるが、現実のインフラストラクチャへ調整する ことはできない。実エンジン(Tofu/Terraform、GitOps、Kubernetes、Docker、Nomad、 Crossplane)に加え、短命・操作ごと・attested な認証情報ソースが配線されるのはオペレーター の構成時のみである。それが無ければ、本モジュールが暗黙のうちに作用することは決してない。

エンティティと宣言される契約

Section titled “エンティティと宣言される契約”

本モジュールは 4 つの名前空間付きエンティティと、適用済みスナップショットとしてのコア Deployment を宣言する。

エンティティ役割
definition望ましい状態 — desired 対 applied のバージョン、spec ハッシュ、コア Deployment へのリンク
revisionappend-only かつ不変な spec 履歴 — ロールバックのための可逆的なソース
wiring宣言する**許可された(PERMITTED)**接続性 agent → resource(モジュール III が対比する契約)
operationappend-only な変更管理 ledger — バージョン、plan ハッシュ、誰が承認したか、結果

望ましい spec は型付けされ、struct から再シリアライズされる(オペレーターの JSON ラウンドトリップではない)。未知のフィールドは拒否され、インライン認証情報ガードが実行され、 認証情報をクリアテキストで保持する spec は宣言時点で拒否される。認証情報は参照のみ で渡される<scheme>:<locator>、allow-list 化された scheme)— これはワイヤーの特性で あり、保存された秘密情報ではない。

バス上に生成するもの(モジュール III の PERMITTED 側)

Section titled “バス上に生成するもの(モジュール III の PERMITTED 側)”

モジュール VII は access map を書き込むことは決してなく、そのエッジを書き込む唯一の存在は モジュール III である。コミットされた apply において、各 wiring ごとに本モジュールは policy-grant の edge.observed イベント(Source = policy)を発行し、 参照とモードのみを運ぶ。モジュール III はそれを permitted-vs-observed 差分の PERMITTED 側へと調整する。したがって本モジュールが宣言するものは、モジュール III が観測対象と対比する ものそのものである。Identity は governance を通じてエージェントごとにバインドされる。確固 たる一意の non-human identity は attributed なエッジを生み、共有または不在の identity は approximate として報告される — 印が付けられるのであって、決して偽装されない