Files
krata/crates/krata/proto/krata/v1/common.proto

131 lines
2.7 KiB
Protocol Buffer
Raw Normal View History

2024-03-14 14:03:11 +00:00
syntax = "proto3";
package krata.v1.common;
2024-03-24 05:25:48 +00:00
2024-03-14 14:03:11 +00:00
option java_multiple_files = true;
option java_package = "dev.krata.proto.v1.common";
2024-03-14 14:03:11 +00:00
option java_outer_classname = "CommonProto";
import "google/protobuf/struct.proto";
message Zone {
2024-03-24 05:25:48 +00:00
string id = 1;
ZoneSpec spec = 2;
ZoneStatus status = 3;
2024-03-14 14:03:11 +00:00
}
message ZoneSpec {
2024-03-14 14:03:11 +00:00
string name = 1;
ZoneImageSpec image = 2;
// If not specified, defaults to the daemon default kernel.
ZoneImageSpec kernel = 3;
// If not specified, defaults to the daemon default initrd.
ZoneImageSpec initrd = 4;
ZoneResourceSpec initial_resources = 5;
ZoneTaskSpec task = 6;
repeated ZoneSpecAnnotation annotations = 7;
repeated ZoneSpecDevice devices = 8;
}
message ZoneResourceSpec {
uint64 max_memory = 1;
uint64 target_memory = 2;
uint32 max_cpus = 3;
uint32 target_cpus = 4;
2024-03-14 14:03:11 +00:00
}
message ZoneImageSpec {
2024-03-24 05:25:48 +00:00
oneof image {
ZoneOciImageSpec oci = 1;
2024-03-24 05:25:48 +00:00
}
2024-03-14 14:03:11 +00:00
}
enum OciImageFormat {
OCI_IMAGE_FORMAT_UNKNOWN = 0;
OCI_IMAGE_FORMAT_SQUASHFS = 1;
OCI_IMAGE_FORMAT_EROFS = 2;
// Tar format is not launchable, and is intended for kernel images.
OCI_IMAGE_FORMAT_TAR = 3;
}
message ZoneOciImageSpec {
string digest = 1;
OciImageFormat format = 2;
2024-03-14 14:03:11 +00:00
}
message ZoneTaskSpec {
repeated ZoneTaskSpecEnvVar environment = 1;
repeated string command = 2;
2024-04-22 13:13:43 -07:00
string working_directory = 3;
bool tty = 4;
}
message ZoneTaskSpecEnvVar {
string key = 1;
string value = 2;
}
message ZoneSpecAnnotation {
2024-03-24 05:25:48 +00:00
string key = 1;
string value = 2;
}
message ZoneSpecDevice {
string name = 1;
}
message ZoneStatus {
ZoneState state = 1;
ZoneNetworkStatus network_status = 2;
ZoneExitStatus exit_status = 3;
ZoneErrorStatus error_status = 4;
string host = 5;
uint32 domid = 6;
ZoneResourceStatus resource_status = 7;
2024-03-14 14:03:11 +00:00
}
enum ZoneState {
ZONE_STATE_UNKNOWN = 0;
ZONE_STATE_CREATING = 1;
ZONE_STATE_CREATED = 2;
ZONE_STATE_EXITED = 3;
ZONE_STATE_DESTROYING = 4;
ZONE_STATE_DESTROYED = 5;
ZONE_STATE_FAILED = 6;
2024-03-14 14:03:11 +00:00
}
message ZoneNetworkStatus {
string zone_ipv4 = 1;
string zone_ipv6 = 2;
string zone_mac = 3;
string gateway_ipv4 = 4;
string gateway_ipv6 = 5;
string gateway_mac = 6;
2024-03-14 14:03:11 +00:00
}
message ZoneExitStatus {
2024-03-24 05:25:48 +00:00
int32 code = 1;
}
message ZoneErrorStatus {
2024-03-24 05:25:48 +00:00
string message = 1;
2024-03-14 14:03:11 +00:00
}
message ZoneResourceStatus {
ZoneResourceSpec active_resources = 1;
}
message ZoneMetricNode {
string name = 1;
google.protobuf.Value value = 2;
ZoneMetricFormat format = 3;
repeated ZoneMetricNode children = 4;
}
enum ZoneMetricFormat {
ZONE_METRIC_FORMAT_UNKNOWN = 0;
ZONE_METRIC_FORMAT_BYTES = 1;
ZONE_METRIC_FORMAT_INTEGER = 2;
ZONE_METRIC_FORMAT_DURATION_SECONDS = 3;
}