Snapshot
ImpVMSnapshot captures the state of a running ImpVM. Snapshots can be one-shot or scheduled, and stored on the node or in an OCI registry.
One-shot snapshot
yaml
apiVersion: imp.dev/v1alpha1
kind: ImpVMSnapshot
metadata:
name: my-snap
namespace: default
spec:
sourceVMName: my-vm
sourceVMNamespace: default
storage:
type: node-local
nodeLocal:
path: /var/lib/imp/snapshots
retention: 3Scheduled snapshot
yaml
spec:
schedule: "0 2 * * *" # daily at 02:00 UTC
retention: 5
storage:
type: node-local
nodeLocal:
path: /var/lib/imp/snapshotsElect a base snapshot
After a snapshot completes, elect one execution as the base image used by ImpWarmPool and ImpVMMigration:
bash
kubectl imp elect my-snap <child-execution-name>Or declaratively:
yaml
spec:
baseSnapshot: snap-2026-03-15-02-00Verify
bash
kubectl get impvmsnapshot my-snap -n default -o yaml
kubectl get impvmsnapshot -n default -l imp.dev/snapshot-parent=my-snapStorage backends
| Type | When to use |
|---|---|
node-local | Single-node or NFS-mounted path |
oci-registry | Multi-node sharing, OCI-compatible registry |
OCI registry example
yaml
spec:
storage:
type: oci-registry
ociRegistry:
ref: ghcr.io/my-org/imp-snapshots/my-snap
secretRef: ghcr-pull-secret