cri: remove restore in CreateContainer by samuelkarp · Pull Request #13871 · containerd/containerd · GitHub
Skip to content

cri: remove restore in CreateContainer - #13871

Merged
samuelkarp merged 1 commit into
containerd:mainfrom
samuelkarp:remove_deprecated_checkpoint_restore
Jul 31, 2026
Merged

cri: remove restore in CreateContainer#13871
samuelkarp merged 1 commit into
containerd:mainfrom
samuelkarp:remove_deprecated_checkpoint_restore

Conversation

@samuelkarp

@samuelkarp samuelkarp commented Jul 28, 2026

Copy link
Copy Markdown
Member

Remove support for restoring checkpoint data during CreateContainer, which was previously deprecated in v2.3.

This will conflict with #13822. If this PR lands first, #13822 will need to add back relevant code (and would be a good time to re-review it). If that one lands first, I can update this PR.

Remove restore in CreateContainer

Copilot AI review requested due to automatic review settings July 28, 2026 23:51
@github-project-automation github-project-automation Bot moved this to Needs Triage in Pull Request Review Jul 28, 2026
@samuelkarp samuelkarp added area/criu checkpoint/resume size/XXL and removed size/XXL labels Jul 28, 2026
@samuelkarp samuelkarp added this to the 2.4 milestone Jul 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the (previously deprecated) CRI CreateContainer checkpoint-restore path, eliminating the container-restore control flow and associated deprecation plumbing. This aligns CRI restore support with the newer Pod-level direction (KEP-5823 / RestorePod) referenced in the PR description.

Changes:

  • Remove CRI CreateContainer-based checkpoint restore code paths (CreateContainer + StartContainer) and related status/deprecation wiring.
  • Delete now-obsolete checkpoint-restore tests/scripts and the corresponding CI job step.
  • Mark the deprecation entry as completed in RELEASES.md.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
RELEASES.md Marks CRI CreateContainer checkpoint restore as removed in v2.4.
pkg/deprecation/deprecation.go Drops the deprecation warning ID/message for CreateContainer restore.
internal/cri/store/container/status.go Removes the persisted Status.Restore flag used by the old restore path.
internal/cri/server/container_start.go Removes the StartContainer restore-specific execution path and cleanup.
internal/cri/server/container_create.go Removes CreateContainer checkpoint-restore detection/import logic and restore status initialization.
internal/cri/server/container_checkpoint.go Removes non-linux stubs tied to the removed restore feature.
internal/cri/server/container_checkpoint_warning_test.go Deletes the warning-emission test tied to CreateContainer restore.
internal/cri/server/container_checkpoint_linux.go Removes Linux implementation details that supported CreateContainer restore/import.
internal/cri/server/container_checkpoint_linux_test.go Deletes tests for restore-only helpers (archive filtering / dir safety / annotation filtering).
contrib/checkpoint/testdata/sleep-restore.yaml Removes Kubernetes restore pod manifest used by old restore workflow.
contrib/checkpoint/checkpoint-restore-kubernetes-test.sh Removes Kubernetes restore test script for the deprecated flow.
contrib/checkpoint/checkpoint-restore-cri-test.sh Removes CRI restore test script for the deprecated flow.
contrib/checkpoint/checkpoint-restore-cri-disable-test.sh Updates the disable-test script to remove restore-related cases and renumber remaining tests.
.github/workflows/ci.yml Removes the CI step that exercised the deprecated CRI restore flow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@samuelkarp
samuelkarp force-pushed the remove_deprecated_checkpoint_restore branch from 09c1dcd to 7e223f1 Compare July 28, 2026 23:54
Copilot AI review requested due to automatic review settings July 28, 2026 23:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/ci.yml:560

  • The CI step name still says "Checkpoint/Restore Disable via CRI", but this workflow no longer runs any restore coverage (and the invoked script now only tests checkpoint behavior). Renaming the step will avoid confusion when reading CI logs and job summaries.
      - if: matrix.os != 'ubuntu-24.04-arm'
        name: Checkpoint/Restore Disable via CRI
        env:

@ningmingxiao

Copy link
Copy Markdown
Contributor

Could you explain why the container snapshot feature was removed? @samuelkarp

Remove support for restoring checkpoint data during CreateContainer,
which was previously deprecated in v2.3.

Assisted-by: Antigravity
Signed-off-by: Samuel Karp <samuelkarp@google.com>
@samuelkarp
samuelkarp force-pushed the remove_deprecated_checkpoint_restore branch from 7e223f1 to 91be73b Compare July 29, 2026 16:32
Copilot AI review requested due to automatic review settings July 29, 2026 16:32
@samuelkarp

Copy link
Copy Markdown
Member Author

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

internal/cri/server/container_create.go:135

  • With checkpoint-restore support removed from CreateContainer, a caller that still passes a checkpoint archive path will now fail later with an image-store "failed to resolve image" error even when the file exists, which is harder to diagnose. Consider explicitly detecting the (previously supported) archive-path case and returning a clearer error pointing users to RestorePod (KEP-5823).
	image, err := c.LocalResolve(config.GetImage().GetImage())
	if err != nil {
		return nil, fmt.Errorf("failed to resolve image %q: %w", config.GetImage().GetImage(), err)

.github/workflows/ci.yml:559

  • This workflow step name still mentions "Checkpoint/Restore", but the restore path and related CI coverage were removed in this PR. Renaming the step makes CI output match what is actually being exercised.
        name: Checkpoint/Restore Disable via CRI

@samuelkarp
samuelkarp requested a review from dmcgowan July 29, 2026 18:05
@github-project-automation github-project-automation Bot moved this from Needs Triage to Review In Progress in Pull Request Review Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

6 participants