- Created T026-practical-test task.yaml for MVP smoke testing - Added k8shost-server to flake.nix (packages, apps, overlays) - Staged all workspace directories for nix flake build - Updated flake.nix shellHook to include k8shost Resolves: T026.S1 blocker (R8 - nix submodule visibility)
131 lines
3.9 KiB
YAML
131 lines
3.9 KiB
YAML
id: T007
|
|
name: PlasmaVMC Implementation Scaffolding
|
|
status: complete
|
|
created: 2025-12-08
|
|
owner: peerB
|
|
goal: Create PlasmaVMC crate structure and core traits per T005 spec
|
|
|
|
description: |
|
|
PlasmaVMC spec (T005, 1017 lines) complete.
|
|
Begin implementation with scaffolding and core abstractions.
|
|
Focus: hypervisor trait abstraction, crate structure, proto definitions.
|
|
|
|
Prerequisites:
|
|
- T005: PlasmaVMC specification (complete)
|
|
- Reference: specifications/plasmavmc/README.md
|
|
|
|
acceptance:
|
|
- Cargo workspace with plasmavmc-* crates compiles
|
|
- HypervisorBackend trait defined with KVM stub
|
|
- Proto definitions for VmService/ImageService
|
|
- Basic types (VmId, VmState, VmSpec) implemented
|
|
- Integration with aegis scope types
|
|
|
|
steps:
|
|
# Phase 1 - Scaffolding (S1-S3)
|
|
- step: S1
|
|
action: Create plasmavmc workspace
|
|
priority: P0
|
|
status: complete
|
|
complexity: small
|
|
component: plasmavmc
|
|
notes: |
|
|
Create plasmavmc/ directory with:
|
|
- Cargo.toml (workspace)
|
|
- crates/plasmavmc-types/
|
|
- crates/plasmavmc-api/
|
|
- crates/plasmavmc-hypervisor/
|
|
Follow existing chainfire/flaredb/iam structure patterns.
|
|
|
|
- step: S2
|
|
action: Define core types
|
|
priority: P0
|
|
status: complete
|
|
complexity: small
|
|
component: plasmavmc-types
|
|
notes: |
|
|
VmId, VmState, VmSpec, VmResources, NetworkConfig
|
|
Reference spec section 4 (Data Models)
|
|
|
|
- step: S3
|
|
action: Define proto/plasmavmc.proto
|
|
priority: P0
|
|
status: complete
|
|
complexity: small
|
|
component: plasmavmc-api
|
|
notes: |
|
|
VmService (Create/Start/Stop/Delete/Get/List)
|
|
ImageService (Register/Get/List)
|
|
Reference spec section 5 (API)
|
|
|
|
# Phase 2 - Core Traits (S4-S5)
|
|
- step: S4
|
|
action: HypervisorBackend trait
|
|
priority: P0
|
|
status: complete
|
|
complexity: medium
|
|
component: plasmavmc-hypervisor
|
|
notes: |
|
|
#[async_trait] HypervisorBackend
|
|
Methods: create_vm, start_vm, stop_vm, delete_vm, get_status
|
|
Reference spec section 3.2 (Hypervisor Abstraction)
|
|
|
|
- step: S5
|
|
action: KVM backend stub
|
|
priority: P1
|
|
status: complete
|
|
complexity: medium
|
|
component: plasmavmc-hypervisor
|
|
notes: |
|
|
KvmBackend implementing HypervisorBackend
|
|
Initial stub returning NotImplemented
|
|
Validates trait design
|
|
|
|
# Phase 3 - API Server (S6-S7)
|
|
- step: S6
|
|
action: gRPC server scaffold
|
|
priority: P1
|
|
status: complete
|
|
complexity: medium
|
|
component: plasmavmc-api
|
|
notes: |
|
|
VmService implementation scaffold
|
|
Aegis integration for authz
|
|
Health checks (tonic-health)
|
|
|
|
- step: S7
|
|
action: Integration test setup
|
|
priority: P1
|
|
status: complete
|
|
complexity: small
|
|
component: plasmavmc
|
|
notes: |
|
|
Basic compile/test harness
|
|
cargo test passes
|
|
|
|
outcome: |
|
|
COMPLETE: 2025-12-08
|
|
All 7 steps complete (S1-S7).
|
|
All acceptance criteria met.
|
|
|
|
Final workspace structure:
|
|
- plasmavmc/Cargo.toml (workspace with 5 crates)
|
|
- plasmavmc-types: VmId, VmState, VmSpec, DiskSpec, NetworkSpec, VmHandle, Error
|
|
- plasmavmc-hypervisor: HypervisorBackend trait, HypervisorRegistry, BackendCapabilities
|
|
- plasmavmc-kvm: KvmBackend stub implementation (returns NotImplemented)
|
|
- plasmavmc-api: proto definitions (~350 lines) for VmService, ImageService, NodeService
|
|
- plasmavmc-server: gRPC server with VmServiceImpl, health checks, clap CLI
|
|
|
|
All tests pass (3 tests in plasmavmc-kvm).
|
|
PlasmaVMC enters "operational" status alongside chainfire/flaredb/iam.
|
|
|
|
notes: |
|
|
This task starts PlasmaVMC implementation per roadmap "Next" phase.
|
|
PlasmaVMC is the VM control plane - critical for cloud infrastructure.
|
|
Spec reference: specifications/plasmavmc/README.md (1017 lines)
|
|
|
|
Blocked by: None (T005 spec complete)
|
|
Enables: VM lifecycle management for cloud platform
|
|
|
|
backlog_ref: |
|
|
T006-B contains deferred P1 Tier C items (S9-S14) for later prioritization.
|