protos/flyteidl-flink/flink.proto (65 lines of code) (raw):
syntax = "proto3";
package flyteidl_flink;
option go_package = "flyteidl-flink";
import "validate/validate.proto";
message Resource {
// Value must be a valid k8s quantity. See
// https://github.com/kubernetes/apimachinery/blob/master/pkg/api/resource/quantity.go#L30-L80
message Quantity {
string string = 1 [ (validate.rules).string = {
pattern : "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
} ];
}
message PersistentVolume {
enum Type {
PD_STANDARD = 0;
PD_SSD = 1;
}
Type type = 1 [ (validate.rules).enum.defined_only = true ];
Quantity size = 2;
}
Quantity cpu = 1;
Quantity memory = 2;
PersistentVolume persistentVolume = 3;
}
message JobManager { Resource resource = 1; }
message TaskManager {
Resource resource = 1;
int32 replicas = 2 [ (validate.rules).int32.gte = 0 ];
}
message JFlyte {
message Artifact {
string name = 1;
string location = 2
[ (validate.rules).string = {min_len : 1, uri_ref : true} ];
}
string index_file_location = 1;
repeated Artifact artifacts = 2;
}
// Custom Proto for Flink Plugin.
message FlinkJob {
repeated string jarFiles = 1 [
(validate.rules).repeated .unique = true,
(validate.rules).repeated .items.string = {min_len : 1, uri_ref : true}
];
string mainClass = 2 [ (validate.rules).string.min_len = 1 ];
repeated string args = 3;
map<string, string> flinkProperties = 4;
JobManager jobManager = 5;
TaskManager taskManager = 6;
string serviceAccount = 7;
string image = 8;
string flinkVersion = 9;
int32 parallelism = 10 [ (validate.rules).int32.gte = 0 ];
string kubernetesClusterName = 11;
string kubernetesClusterRegion = 12;
// if using experiment flytekit-java this will contain all artifacts required
// to run the task
JFlyte jflyte = 100;
}
message JobExecutionInfo { string id = 1; }
message JobManagerExecutionInfo { repeated string ingressURLs = 1; }
message FlinkExecutionInfo {
JobExecutionInfo job = 1;
JobManagerExecutionInfo jobManager = 2;
}