Skip to content

feat: Add instance branching + checkpointing - #403

Draft
jedevc wants to merge 12 commits into
prod-stagingfrom
jedevc/instance-branching
Draft

feat: Add instance branching + checkpointing#403
jedevc wants to merge 12 commits into
prod-stagingfrom
jedevc/instance-branching

Conversation

@jedevc

@jedevc jedevc commented Jul 7, 2026

Copy link
Copy Markdown
Member

TODO:

  • Quick design once-over

Signed-off-by: Justin Chadwell <justin@unikraft.com>
Comment thread cmd/unikraft/integration/instance_test.go Outdated
jedevc and others added 3 commits July 31, 2026 14:48
Signed-off-by: Justin Chadwell <justin@unikraft.com>
Signed-off-by: ayn <ayn.khatib@gmail.com>
Signed-off-by: ayn <ayn.khatib@gmail.com>



Signed-off-by: ayn <ayn.khatib@gmail.com>



Signed-off-by: ayn <ayn.khatib@gmail.com>
@khatibomar
khatibomar force-pushed the jedevc/instance-branching branch 2 times, most recently from 384f0e7 to f78fa9b Compare July 31, 2026 17:40
Signed-off-by: ayn <ayn.khatib@gmail.com>
@khatibomar
khatibomar force-pushed the jedevc/instance-branching branch from f78fa9b to a2224e5 Compare July 31, 2026 17:46
--branch and --checkpoint parsed a metro/name ref but silently dropped
the metro part before sending the request to a single metro client,
unlike the sibling template/volumes/service handling in the same
function. A cross-metro ref could silently target a same-named but
wrong resource, or fail with a misleading error.

Signed-off-by: ayn <ayn.khatib@gmail.com>
InstanceCheckpoint.Get() matched API response items to requested refs
by array position, unlike every sibling Get() which uses matchRef. If
the platform reorders or omits entries, a checkpoint's tracked
identity (Key()) could get swapped with another's.

Signed-off-by: ayn <ayn.khatib@gmail.com>
Create() discarded successfully-created checkpoint keys whenever any
sibling instance in the same batch failed, because the outer loop
skipped the append on error. This left orphaned, untracked checkpoints
on the platform while the CLI reported total failure.

Signed-off-by: ayn <ayn.khatib@gmail.com>
getInstanceHistory() skipped only entries with an explicit non-success
status, so a nil Status fell through and was treated as successful.
Every other status check in this file (and codebase) treats a missing
status as failure, not success.

Signed-off-by: ayn <ayn.khatib@gmail.com>
--image, --template, --branch, and --checkpoint are mutually exclusive
per the SDK docs, but only the roms field enforced a similar pattern.
Reject the request when more than one source is set instead of
silently letting one win.

Signed-off-by: ayn <ayn.khatib@gmail.com>
Signed-off-by: ayn <ayn.khatib@gmail.com>

Signed-off-by: ayn <ayn.khatib@gmail.com>
@khatibomar
khatibomar force-pushed the jedevc/instance-branching branch from 3ec0c39 to 08d8f90 Compare July 31, 2026 19:40
Signed-off-by: ayn <ayn.khatib@gmail.com>
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