Skip to content

[Step II] - replace onCommit with preferred_fidelity #2351

Description

This is a breaking change, however it is no change in current behavior.

// SnapshotFidelity orders the state layers a snapshot can hold, lowest to
// highest. Each level includes the ones below it.
enum SnapshotFidelity {
  SNAPSHOT_FIDELITY_UNSPECIFIED = 0;
  // Durable volumes only. The actor resumes by cold-booting its containers
  // from the OCI image with the volumes restored.
  SNAPSHOT_FIDELITY_VOLUMES = 1;
  // Volumes plus the root filesystem changes made since boot. Not yet
  // supported by any sandbox runtime; templates may not request it.
  SNAPSHOT_FIDELITY_ROOTFS = 2;
  // Volumes, root filesystem changes, and process memory. The actor resumes
  // where it left off.
  SNAPSHOT_FIDELITY_MEMORY = 3;
  // Keep this in sync with the maximums on fields of this type.
}

// SnapshotConfig selects what actor snapshots capture and where they are
// stored.
message SnapshotConfig {
  // storage_location ... (unchanged text, renumbered to = 1)
  string storage_location = 1;

  // preferred_fidelity is the fidelity every snapshot of an actor captures,
  // both the node-local one taken on pause and the one uploaded on suspend.
  // ROOTFS is not supported yet and is rejected. Defaults to MEMORY when
  // unset.
  //
  // +k8s:required
  // +k8s:minimum=1
  // +k8s:maximum=3 # keep this in sync with the SnapshotFidelity enum
  // +k8s:customValidation # ROOTFS is not supported yet
  SnapshotFidelity preferred_fidelity = 2;
}

Replace on_commit with preferredFidelity

  • SNAPSHOT_FIDELITY_VOLUMES = SNAPSHOT_CONTENT_SCOPE_DATA
  • SNAPSHOT_FIDELITY_MEMORY = SNAPSHOT_CONTENT_SCOPE_FULL
  • SNAPSHOT_FIDELITY_ROOTFS - defined but not in use

Activity

  1. added this to the M3 milestone on Oct 8, 2026
  2. changed the title [-]Step II - replace onCommit with preferred_fidelity[/-] [+][Step II] - replace onCommit with preferred_fidelity[/+] on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/apiUser-facing API changeskind/featureAn enhancement / feature request or implementation

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions