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.