Skip to content

feat(control): add pod restore calls - #65

Open
azenla wants to merge 4 commits into
mainfrom
azenla/feat/pod-restore
Open

azenla wants to merge 4 commits into
mainfrom
azenla/feat/pod-restore

Conversation

@azenla

@azenla azenla commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Adds the control calls for restoring a snapshot into a zone whose host mounts a runtime binds before the guest runs. Nothing in them names an orchestrator.

  • ImportZoneStart.restore { claim, annotations } holds the imported zone, paused and with its host mounts unbound. The claim is an opaque string and the annotations are kept for whoever claims the zone; the daemon reads neither.
  • ClaimRestoredZone(claim) returns the zone, the annotations, and each running workload with its annotations and mounts. A mount carries recorded_host_path, which is only a hint: the daemon never binds it.
  • StartRestoredZone(zone_id, bindings[], annotations[]) carries one binding per mount, either a host path or a placeholder, and the annotations to set on the zone. The daemon refuses a request that leaves a mount unbound or names one that does not exist.
  • AdoptWorkload binds a restored workload to the container a runtime created for it, with that container's own mounts and annotations.

The design is in the draft protect PR that uses these calls (docs/specs/pod-restore.md).

ImportZone can restore a snapshot as the zone of a Kubernetes pod, leaving it paused until the pod's runtime claims it with ClaimRestoredZone, starts it with StartRestoredZone and binds each workload to its container with AdoptWorkload.
@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf CI / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedOct 18, 2026, 9:28 PM

The restore claim is an opaque string with annotations the daemon does not read, and the runtime tells StartRestoredZone where each mount is bound, so the control API carries nothing about any orchestrator.
@azenla
azenla requested review from a team and marly-edera October 18, 2026 23:22
@azenla
azenla marked this pull request as ready for review October 18, 2026 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants