Feature request: native "fork sprite from checkpoint"

Today restore is in-place only (POST /v1/sprites/{sprite}/checkpoints/{id}/restore) and sprite create has no --from-checkpoint. To seed a new sprite from an existing sprite’s checkpoint, the only option is a full client-side copy of the writable overlay out and back in — for a 723 MB overlay that’s ~330 MB gzipped round-tripping through my laptop, made worse by sprite exec severing streams at ~79 MB and sprite file pull timing out on large files.

Since checkpoints are already copy-on-write snapshots of the upper overlay, the backend should be able to clone one into a new sprite almost for free. Proposed surface:

  • sprite create --from : (CLI), or
  • POST /v1/sprites with { “name”: “…”, “from”: { “sprite”: “…”, “checkpoint”: “v3” } }.

Use case: branching an environment (e.g. a configured dev/playbook setup) into throwaway test sprites without rebuilding from scratch.

I would have thought so as well, but the release notes mention that it’s instead taking more than a minute.

The storage side of Sprites is still under heavy development last I heard, so hopefully this will improve. Forking/copying Sprites is one of the forum’s most popular requests: there have been something like twenty separate threads asking for it so far (all apparently unaware of the others).

(The most recent one was two hours ago, actually.)

We’ll have more to share soon :trade_mark: here.