Remove rootfs service in place of snapshot service. Adds diff service for extracting and creating diffs. Diff creation is not yet implemented. This service allows pulling or creating images without needing root access to mount. Additionally in the future this will allow containerd to ensure extractions happen safely in a chroot if needed. Signed-off-by: Derek McGowan <derek@mcgstyle.net>
82 lines
1.7 KiB
Protocol Buffer
82 lines
1.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package containerd.v1.snapshot;
|
|
|
|
import "gogoproto/gogo.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "github.com/containerd/containerd/api/types/mount/mount.proto";
|
|
|
|
// Snapshot service manages snapshots
|
|
service Snapshot {
|
|
rpc Prepare(PrepareRequest) returns (MountsResponse);
|
|
rpc View(PrepareRequest) returns (MountsResponse);
|
|
rpc Mounts(MountsRequest) returns (MountsResponse);
|
|
rpc Commit(CommitRequest) returns (google.protobuf.Empty);
|
|
rpc Remove(RemoveRequest) returns (google.protobuf.Empty);
|
|
rpc Stat(StatRequest) returns (StatResponse);
|
|
rpc List(ListRequest) returns (stream ListResponse);
|
|
rpc Usage(UsageRequest) returns (UsageResponse);
|
|
// "Snapshot" prepares a new set of mounts from existing name
|
|
}
|
|
|
|
message PrepareRequest {
|
|
string key = 1;
|
|
string parent = 2;
|
|
}
|
|
|
|
message MountsRequest {
|
|
string key = 1;
|
|
}
|
|
|
|
message MountsResponse {
|
|
repeated containerd.v1.types.Mount mounts = 1;
|
|
}
|
|
|
|
message RemoveRequest {
|
|
string key = 1;
|
|
}
|
|
|
|
message CommitRequest {
|
|
string name = 1;
|
|
string key = 2;
|
|
}
|
|
|
|
message StatRequest {
|
|
string key = 1;
|
|
}
|
|
|
|
enum Kind {
|
|
option (gogoproto.goproto_enum_prefix) = false;
|
|
option (gogoproto.enum_customname) = "Kind";
|
|
|
|
ACTIVE = 0 [(gogoproto.enumvalue_customname) = "KindActive"];
|
|
|
|
COMMITTED = 1 [(gogoproto.enumvalue_customname) = "KindCommitted"];
|
|
}
|
|
|
|
message Info {
|
|
string name = 1;
|
|
string parent = 2;
|
|
Kind kind = 3;
|
|
bool readonly = 4;
|
|
}
|
|
|
|
message StatResponse {
|
|
Info info = 1 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message ListRequest{}
|
|
|
|
message ListResponse {
|
|
repeated Info info = 1 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
message UsageRequest {
|
|
string key = 1;
|
|
}
|
|
|
|
message UsageResponse {
|
|
int64 inodes = 2;
|
|
int64 size = 1;
|
|
}
|