diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 7746c9913d..6d2cae8954 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -1061,7 +1061,8 @@ sequenceDiagram - **Filesystem-only checkpoint**: `memory: false` on snapshot-template creation exports the rootfs and no memfile, resumes the same Firecracker process, and produces a template whose sandboxes cold-boot; the source keeps running. Routed by its own flag, - `filesystem-only-checkpoint`, independent of `in-place-checkpoint` (no memory is exported, so + `filesystem-only-checkpoint` (`FILESYSTEM_ONLY_CHECKPOINT` for a deployment without + LaunchDarkly), independent of `in-place-checkpoint` (no memory is exported, so the sync-WP tracking, the Firecracker release gate and the balloon gate play no part). The API refuses it before the sandbox leaves Running when the flag is off for the team (400, `snapshot_filesystem_only_disabled`) or when the sandbox's node runs an orchestrator diff --git a/packages/shared/pkg/featureflags/flags.go b/packages/shared/pkg/featureflags/flags.go index 7d3106e85b..f43a8b9d2c 100644 --- a/packages/shared/pkg/featureflags/flags.go +++ b/packages/shared/pkg/featureflags/flags.go @@ -262,8 +262,10 @@ var ( // sync-WP tracking, the Firecracker release and the balloon that gate the // memory in-place path play no part. Off (the default) refuses the // request before anything is touched; there is no memory fallback, since - // the caller asked for a template that cold-boots. - FilesystemOnlyCheckpointFlag = NewBoolFlag("filesystem-only-checkpoint", false) + // the caller asked for a template that cold-boots. The fallback reads + // FILESYSTEM_ONLY_CHECKPOINT so a deployment without LaunchDarkly can turn + // it on. + FilesystemOnlyCheckpointFlag = NewBoolFlag("filesystem-only-checkpoint", envBoolOr("FILESYSTEM_ONLY_CHECKPOINT", false)) // EnvdInitHeldRequestFlag makes a start whose envd is at or above // utils.MinEnvdVersionForHeldInit wait on one /init for its whole envd-wait budget