2024-03-14 14:03:11 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
2024-03-24 05:52:25 +00:00
|
|
|
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;
|
2024-03-24 05:52:25 +00:00
|
|
|
option java_package = "dev.krata.proto.v1.common";
|
2024-03-14 14:03:11 +00:00
|
|
|
option java_outer_classname = "CommonProto";
|
|
|
|
|
|
2024-04-12 00:34:46 -07:00
|
|
|
import "google/protobuf/struct.proto";
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message Zone {
|
2024-03-24 05:25:48 +00:00
|
|
|
string id = 1;
|
2024-07-18 20:47:18 -07:00
|
|
|
ZoneSpec spec = 2;
|
2024-08-13 23:17:47 -07:00
|
|
|
ZoneStatus status = 3;
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneSpec {
|
2024-03-14 14:03:11 +00:00
|
|
|
string name = 1;
|
2024-07-18 20:47:18 -07:00
|
|
|
ZoneImageSpec image = 2;
|
2024-04-22 12:48:45 -07:00
|
|
|
// If not specified, defaults to the daemon default kernel.
|
2024-07-18 20:47:18 -07:00
|
|
|
ZoneImageSpec kernel = 3;
|
2024-04-22 12:48:45 -07:00
|
|
|
// If not specified, defaults to the daemon default initrd.
|
2024-07-18 20:47:18 -07:00
|
|
|
ZoneImageSpec initrd = 4;
|
2024-08-14 01:14:49 -07:00
|
|
|
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;
|
2024-08-15 01:06:04 -07:00
|
|
|
uint32 max_cpus = 3;
|
|
|
|
|
uint32 target_cpus = 4;
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneImageSpec {
|
2024-03-24 05:25:48 +00:00
|
|
|
oneof image {
|
2024-07-18 20:47:18 -07:00
|
|
|
ZoneOciImageSpec oci = 1;
|
2024-03-24 05:25:48 +00:00
|
|
|
}
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
|
2024-04-16 01:53:44 -07: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;
|
2024-04-15 10:24:14 -07:00
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneOciImageSpec {
|
2024-04-15 10:24:14 -07:00
|
|
|
string digest = 1;
|
2024-04-16 01:53:44 -07:00
|
|
|
OciImageFormat format = 2;
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneTaskSpec {
|
|
|
|
|
repeated ZoneTaskSpecEnvVar environment = 1;
|
2024-03-27 02:54:39 +00:00
|
|
|
repeated string command = 2;
|
2024-04-22 13:13:43 -07:00
|
|
|
string working_directory = 3;
|
2024-08-14 12:45:59 -07:00
|
|
|
bool tty = 4;
|
2024-03-27 02:54:39 +00:00
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneTaskSpecEnvVar {
|
2024-03-27 02:54:39 +00:00
|
|
|
string key = 1;
|
|
|
|
|
string value = 2;
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneSpecAnnotation {
|
2024-03-24 05:25:48 +00:00
|
|
|
string key = 1;
|
|
|
|
|
string value = 2;
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneSpecDevice {
|
2024-04-29 10:02:20 -07:00
|
|
|
string name = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-13 23:17:47 -07:00
|
|
|
message ZoneStatus {
|
|
|
|
|
ZoneState state = 1;
|
|
|
|
|
ZoneNetworkStatus network_status = 2;
|
|
|
|
|
ZoneExitStatus exit_status = 3;
|
|
|
|
|
ZoneErrorStatus error_status = 4;
|
2024-04-21 21:00:32 -07:00
|
|
|
string host = 5;
|
|
|
|
|
uint32 domid = 6;
|
2024-08-14 01:14:49 -07:00
|
|
|
ZoneResourceStatus resource_status = 7;
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
|
2024-08-13 23:17:47 -07: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
|
|
|
}
|
|
|
|
|
|
2024-08-13 23:17:47 -07:00
|
|
|
message ZoneNetworkStatus {
|
2024-07-18 20:47:18 -07:00
|
|
|
string zone_ipv4 = 1;
|
|
|
|
|
string zone_ipv6 = 2;
|
|
|
|
|
string zone_mac = 3;
|
2024-03-27 02:54:39 +00:00
|
|
|
string gateway_ipv4 = 4;
|
|
|
|
|
string gateway_ipv6 = 5;
|
|
|
|
|
string gateway_mac = 6;
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
|
2024-08-13 23:17:47 -07:00
|
|
|
message ZoneExitStatus {
|
2024-03-24 05:25:48 +00:00
|
|
|
int32 code = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-13 23:17:47 -07:00
|
|
|
message ZoneErrorStatus {
|
2024-03-24 05:25:48 +00:00
|
|
|
string message = 1;
|
2024-03-14 14:03:11 +00:00
|
|
|
}
|
2024-04-12 00:34:46 -07:00
|
|
|
|
2024-08-14 01:14:49 -07:00
|
|
|
message ZoneResourceStatus {
|
|
|
|
|
ZoneResourceSpec active_resources = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
message ZoneMetricNode {
|
2024-04-12 00:34:46 -07:00
|
|
|
string name = 1;
|
|
|
|
|
google.protobuf.Value value = 2;
|
2024-07-18 20:47:18 -07:00
|
|
|
ZoneMetricFormat format = 3;
|
|
|
|
|
repeated ZoneMetricNode children = 4;
|
2024-04-12 00:34:46 -07:00
|
|
|
}
|
|
|
|
|
|
2024-07-18 20:47:18 -07:00
|
|
|
enum ZoneMetricFormat {
|
|
|
|
|
ZONE_METRIC_FORMAT_UNKNOWN = 0;
|
|
|
|
|
ZONE_METRIC_FORMAT_BYTES = 1;
|
|
|
|
|
ZONE_METRIC_FORMAT_INTEGER = 2;
|
|
|
|
|
ZONE_METRIC_FORMAT_DURATION_SECONDS = 3;
|
2024-04-12 00:34:46 -07:00
|
|
|
}
|