Files
Konstantin BogomolovandgVisor bot b81e5fd5df Move fscheckpoint manifest from json to proto.
The idea is to make fscheckpoints be forward compatible (newer runsc versions
will successfully read fscheckpoints generated by an older runsc).

The exact details of how this plays out will obviously depend on ongoing runsc
runsc development (for how long to keep work-arounds for breaking changes, etc).
While this CL does enable forward compatible fscheckpoints by eliminating the
hard-matching requirement on runsc-version, please don't rely on it just yet.

PiperOrigin-RevId: 962306264
2026-08-10 12:39:54 -07:00

48 lines
1.3 KiB
Protocol Buffer

// Copyright 2026 The gVisor Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package gvisor.fscheckpoint;
message ResourceID {
string container_name = 1;
string path = 2;
}
message MemoryFile {
ResourceID resource_id = 1;
uint64 pages_metadata_start = 2;
uint64 pages_metadata_end = 3;
uint64 pages_start = 4;
}
message Tmpfs {
ResourceID resource_id = 1;
uint64 tar_start = 2;
uint64 tar_end = 3;
}
message Manifest {
uint64 version = 1;
string runsc_version = 2;
uint64 page_size = 3;
// TODO: NOLINT - Currently this must match during restore. Removing this
// requirement requires fixing an endianness for
// tmpfs.fsckptRegularFileSegment.
string endian = 4;
repeated MemoryFile memory_files = 5;
repeated Tmpfs tmpfs = 6;
}