Context
Current deployment operates via individual VM/network API calls or hardcoded bundle groups (admin/student/vuln). There is no single endpoint that accepts a full topology plan and orchestrates deployment, nor one that tears down an arbitrary deployment.
Requirements
POST /v0/admin/deployments/{id}/deploy — Accept a deployment plan (ordered steps from the topology resolver), execute sequentially or in parallel, track progress
POST /v0/admin/deployments/{id}/undeploy — Generate and execute reverse-order teardown: stop VMs → delete VMs → remove network interfaces → delete bridges → cleanup firewall rules
- Both endpoints should work with arbitrary topologies, not just predefined groups
- Integration with persistence layer for state tracking
Dependencies
Requires persistence layer (B1) and async job queue (B2) for production use.
Priority
Critical (MVP) — Phase 4. Blocks: U2 (undeploy workflow in UI).
References
- Gap analysis:
gap-analysis.md issue B6
Context
Current deployment operates via individual VM/network API calls or hardcoded bundle groups (admin/student/vuln). There is no single endpoint that accepts a full topology plan and orchestrates deployment, nor one that tears down an arbitrary deployment.
Requirements
POST /v0/admin/deployments/{id}/deploy— Accept a deployment plan (ordered steps from the topology resolver), execute sequentially or in parallel, track progressPOST /v0/admin/deployments/{id}/undeploy— Generate and execute reverse-order teardown: stop VMs → delete VMs → remove network interfaces → delete bridges → cleanup firewall rulesDependencies
Requires persistence layer (B1) and async job queue (B2) for production use.
Priority
Critical (MVP) — Phase 4. Blocks: U2 (undeploy workflow in UI).
References
gap-analysis.mdissue B6