Skip to content

Handle project suspension in the compute service (non-destructive pause/resume) #182

Description

@scotwells

Summary

The platform is introducing project suspension — a reversible, non-destructive control that pauses everything a project is running and resumes it intact on reinstatement (platform enhancement: datum-cloud/enhancements#800).

Compute is the launch-blocking integrator. This issue covers all compute-side work to honor project suspension losslessly.

Acceptance criteria

  • Compute enhancement/design doc — pause/resume behavior, reinstatement semantics + expected resume latency, and interaction with the instance pause primitive.
  • Instance snapshot/suspend/resume primitive — lossless pause of a single instance (in-memory + disk state).
  • Honor project suspension via the service-catalog Suspend/Resume hooks — pause instances and stop serving on suspend; retain disks, config, and allocations; resume from preserved state on reinstate; never take the destructive teardown path used for service disable.
  • Report per-consumer paused/resumed status back to the platform rollup.
  • Emit standardized control-plane Events (ProjectPaused / ProjectResumed / PauseFailed) and ship compute's activity rendering for them.
  • Graceful PauseFailed degradation if the pause primitive is unavailable — degrade to least-destructive, never silently delete.
  • Conformance test — suspend → reinstate → verify instance state preserved.

Consumer-facing documentation for compute suspension is tracked in datum-cloud/docs (with input from this issue), not here.

Dependencies

  • Platform primitive (ProjectSuspension + propagation) — milo-os/milo
  • Suspend/Resume integration contract — milo-os/service-catalog

Part of the Project Suspension & Lifecycle Controls enhancement (datum-cloud/enhancements#800). Rendered proposal: https://github.com/datum-cloud/enhancements/blob/enhancement/project-suspension/enhancements/platform/project-suspension/README.md

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Type

Fields

Priority

Urgent

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions