diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 27c6c2880b..b350b4d3e1 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -7205,6 +7205,9 @@ "gpu_accelerator": { "$ref": "#/definitions/coreGPUAccelerator", "description": "GPU accelerator to select for task. Contains information about device type, and\nfor multi-instance GPUs, the partition size to use." + }, + "shared_memory": { + "$ref": "#/definitions/coreSharedMemory" } }, "description": "Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to\nallocate to a task." @@ -8062,6 +8065,24 @@ }, "description": "SecurityContext holds security attributes that apply to tasks." }, + "coreSharedMemory": { + "type": "object", + "properties": { + "mount_path": { + "type": "string", + "title": "Mount path to place in container" + }, + "mount_name": { + "type": "string", + "title": "Name for volume" + }, + "size_limit": { + "type": "string", + "title": "Size limit for shared memory. If not set, then the shared memory is equal\nto the allocated memory.\n+optional" + } + }, + "description": "Metadata associated with configuring a shared memory volume for a task." + }, "coreSignalCondition": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts b/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts index 0c07f17773..db567cfd19 100644 --- a/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts @@ -227,6 +227,65 @@ export class GPUAccelerator extends Message { } } +/** + * Metadata associated with configuring a shared memory volume for a task. + * + * @generated from message flyteidl.core.SharedMemory + */ +export class SharedMemory extends Message { + /** + * Mount path to place in container + * + * @generated from field: string mount_path = 1; + */ + mountPath = ""; + + /** + * Name for volume + * + * @generated from field: string mount_name = 2; + */ + mountName = ""; + + /** + * Size limit for shared memory. If not set, then the shared memory is equal + * to the allocated memory. + * +optional + * + * @generated from field: string size_limit = 3; + */ + sizeLimit = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.core.SharedMemory"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "mount_path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "mount_name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "size_limit", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SharedMemory { + return new SharedMemory().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SharedMemory { + return new SharedMemory().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SharedMemory { + return new SharedMemory().fromJsonString(jsonString, options); + } + + static equals(a: SharedMemory | PlainMessage | undefined, b: SharedMemory | PlainMessage | undefined): boolean { + return proto3.util.equals(SharedMemory, a, b); + } +} + /** * Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to * allocate to a task. @@ -242,6 +301,11 @@ export class ExtendedResources extends Message { */ gpuAccelerator?: GPUAccelerator; + /** + * @generated from field: flyteidl.core.SharedMemory shared_memory = 2; + */ + sharedMemory?: SharedMemory; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -251,6 +315,7 @@ export class ExtendedResources extends Message { static readonly typeName = "flyteidl.core.ExtendedResources"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "gpu_accelerator", kind: "message", T: GPUAccelerator }, + { no: 2, name: "shared_memory", kind: "message", T: SharedMemory }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): ExtendedResources { diff --git a/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go b/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go index 117c226f89..59015e37a2 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go @@ -126,7 +126,7 @@ func (x RuntimeMetadata_RuntimeType) Number() protoreflect.EnumNumber { // Deprecated: Use RuntimeMetadata_RuntimeType.Descriptor instead. func (RuntimeMetadata_RuntimeType) EnumDescriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{3, 0} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{4, 0} } // Architecture-type the container image supports. @@ -182,7 +182,7 @@ func (x Container_Architecture) Number() protoreflect.EnumNumber { // Deprecated: Use Container_Architecture.Descriptor instead. func (Container_Architecture) EnumDescriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{7, 0} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{8, 0} } // Mode to use for downloading @@ -235,7 +235,7 @@ func (x IOStrategy_DownloadMode) Number() protoreflect.EnumNumber { // Deprecated: Use IOStrategy_DownloadMode.Descriptor instead. func (IOStrategy_DownloadMode) EnumDescriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{8, 0} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{9, 0} } // Mode to use for uploading @@ -288,7 +288,7 @@ func (x IOStrategy_UploadMode) Number() protoreflect.EnumNumber { // Deprecated: Use IOStrategy_UploadMode.Descriptor instead. func (IOStrategy_UploadMode) EnumDescriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{8, 1} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{9, 1} } // LiteralMapFormat decides the encoding format in which the input metadata should be made available to the containers. @@ -343,7 +343,7 @@ func (x DataLoadingConfig_LiteralMapFormat) Number() protoreflect.EnumNumber { // Deprecated: Use DataLoadingConfig_LiteralMapFormat.Descriptor instead. func (DataLoadingConfig_LiteralMapFormat) EnumDescriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{9, 0} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{10, 0} } // The dialect of the SQL statement. This is used to validate and parse SQL statements at compilation time to avoid @@ -398,7 +398,7 @@ func (x Sql_Dialect) Number() protoreflect.EnumNumber { // Deprecated: Use Sql_Dialect.Descriptor instead. func (Sql_Dialect) EnumDescriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{12, 0} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{13, 0} } // A customizable interface to convey resources requested for a container. This can be interpreted differently for different @@ -559,6 +559,75 @@ func (*GPUAccelerator_Unpartitioned) isGPUAccelerator_PartitionSizeValue() {} func (*GPUAccelerator_PartitionSize) isGPUAccelerator_PartitionSizeValue() {} +// Metadata associated with configuring a shared memory volume for a task. +type SharedMemory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Mount path to place in container + MountPath string `protobuf:"bytes,1,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"` + // Name for volume + MountName string `protobuf:"bytes,2,opt,name=mount_name,json=mountName,proto3" json:"mount_name,omitempty"` + // Size limit for shared memory. If not set, then the shared memory is equal + // to the allocated memory. + // +optional + SizeLimit string `protobuf:"bytes,3,opt,name=size_limit,json=sizeLimit,proto3" json:"size_limit,omitempty"` +} + +func (x *SharedMemory) Reset() { + *x = SharedMemory{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_core_tasks_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SharedMemory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SharedMemory) ProtoMessage() {} + +func (x *SharedMemory) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_core_tasks_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SharedMemory.ProtoReflect.Descriptor instead. +func (*SharedMemory) Descriptor() ([]byte, []int) { + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{2} +} + +func (x *SharedMemory) GetMountPath() string { + if x != nil { + return x.MountPath + } + return "" +} + +func (x *SharedMemory) GetMountName() string { + if x != nil { + return x.MountName + } + return "" +} + +func (x *SharedMemory) GetSizeLimit() string { + if x != nil { + return x.SizeLimit + } + return "" +} + // Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to // allocate to a task. type ExtendedResources struct { @@ -569,12 +638,13 @@ type ExtendedResources struct { // GPU accelerator to select for task. Contains information about device type, and // for multi-instance GPUs, the partition size to use. GpuAccelerator *GPUAccelerator `protobuf:"bytes,1,opt,name=gpu_accelerator,json=gpuAccelerator,proto3" json:"gpu_accelerator,omitempty"` + SharedMemory *SharedMemory `protobuf:"bytes,2,opt,name=shared_memory,json=sharedMemory,proto3" json:"shared_memory,omitempty"` } func (x *ExtendedResources) Reset() { *x = ExtendedResources{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[2] + mi := &file_flyteidl_core_tasks_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -587,7 +657,7 @@ func (x *ExtendedResources) String() string { func (*ExtendedResources) ProtoMessage() {} func (x *ExtendedResources) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[2] + mi := &file_flyteidl_core_tasks_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -600,7 +670,7 @@ func (x *ExtendedResources) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtendedResources.ProtoReflect.Descriptor instead. func (*ExtendedResources) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{2} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{3} } func (x *ExtendedResources) GetGpuAccelerator() *GPUAccelerator { @@ -610,6 +680,13 @@ func (x *ExtendedResources) GetGpuAccelerator() *GPUAccelerator { return nil } +func (x *ExtendedResources) GetSharedMemory() *SharedMemory { + if x != nil { + return x.SharedMemory + } + return nil +} + // Runtime information. This is loosely defined to allow for extensibility. type RuntimeMetadata struct { state protoimpl.MessageState @@ -628,7 +705,7 @@ type RuntimeMetadata struct { func (x *RuntimeMetadata) Reset() { *x = RuntimeMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[3] + mi := &file_flyteidl_core_tasks_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -641,7 +718,7 @@ func (x *RuntimeMetadata) String() string { func (*RuntimeMetadata) ProtoMessage() {} func (x *RuntimeMetadata) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[3] + mi := &file_flyteidl_core_tasks_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -654,7 +731,7 @@ func (x *RuntimeMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use RuntimeMetadata.ProtoReflect.Descriptor instead. func (*RuntimeMetadata) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{3} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{4} } func (x *RuntimeMetadata) GetType() RuntimeMetadata_RuntimeType { @@ -727,7 +804,7 @@ type TaskMetadata struct { func (x *TaskMetadata) Reset() { *x = TaskMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[4] + mi := &file_flyteidl_core_tasks_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -740,7 +817,7 @@ func (x *TaskMetadata) String() string { func (*TaskMetadata) ProtoMessage() {} func (x *TaskMetadata) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[4] + mi := &file_flyteidl_core_tasks_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -753,7 +830,7 @@ func (x *TaskMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskMetadata.ProtoReflect.Descriptor instead. func (*TaskMetadata) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{4} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{5} } func (x *TaskMetadata) GetDiscoverable() bool { @@ -910,7 +987,7 @@ type TaskTemplate struct { func (x *TaskTemplate) Reset() { *x = TaskTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[5] + mi := &file_flyteidl_core_tasks_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -923,7 +1000,7 @@ func (x *TaskTemplate) String() string { func (*TaskTemplate) ProtoMessage() {} func (x *TaskTemplate) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[5] + mi := &file_flyteidl_core_tasks_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -936,7 +1013,7 @@ func (x *TaskTemplate) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskTemplate.ProtoReflect.Descriptor instead. func (*TaskTemplate) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{5} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{6} } func (x *TaskTemplate) GetId() *Identifier { @@ -1068,7 +1145,7 @@ type ContainerPort struct { func (x *ContainerPort) Reset() { *x = ContainerPort{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[6] + mi := &file_flyteidl_core_tasks_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1081,7 +1158,7 @@ func (x *ContainerPort) String() string { func (*ContainerPort) ProtoMessage() {} func (x *ContainerPort) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[6] + mi := &file_flyteidl_core_tasks_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1094,7 +1171,7 @@ func (x *ContainerPort) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerPort.ProtoReflect.Descriptor instead. func (*ContainerPort) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{6} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{7} } func (x *ContainerPort) GetContainerPort() uint32 { @@ -1152,7 +1229,7 @@ type Container struct { func (x *Container) Reset() { *x = Container{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[7] + mi := &file_flyteidl_core_tasks_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1165,7 +1242,7 @@ func (x *Container) String() string { func (*Container) ProtoMessage() {} func (x *Container) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[7] + mi := &file_flyteidl_core_tasks_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1178,7 +1255,7 @@ func (x *Container) ProtoReflect() protoreflect.Message { // Deprecated: Use Container.ProtoReflect.Descriptor instead. func (*Container) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{7} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{8} } func (x *Container) GetImage() string { @@ -1260,7 +1337,7 @@ type IOStrategy struct { func (x *IOStrategy) Reset() { *x = IOStrategy{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[8] + mi := &file_flyteidl_core_tasks_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1273,7 +1350,7 @@ func (x *IOStrategy) String() string { func (*IOStrategy) ProtoMessage() {} func (x *IOStrategy) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[8] + mi := &file_flyteidl_core_tasks_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1286,7 +1363,7 @@ func (x *IOStrategy) ProtoReflect() protoreflect.Message { // Deprecated: Use IOStrategy.ProtoReflect.Descriptor instead. func (*IOStrategy) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{8} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{9} } func (x *IOStrategy) GetDownloadMode() IOStrategy_DownloadMode { @@ -1332,7 +1409,7 @@ type DataLoadingConfig struct { func (x *DataLoadingConfig) Reset() { *x = DataLoadingConfig{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[9] + mi := &file_flyteidl_core_tasks_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1345,7 +1422,7 @@ func (x *DataLoadingConfig) String() string { func (*DataLoadingConfig) ProtoMessage() {} func (x *DataLoadingConfig) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[9] + mi := &file_flyteidl_core_tasks_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1358,7 +1435,7 @@ func (x *DataLoadingConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use DataLoadingConfig.ProtoReflect.Descriptor instead. func (*DataLoadingConfig) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{9} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{10} } func (x *DataLoadingConfig) GetEnabled() bool { @@ -1424,7 +1501,7 @@ type K8SPod struct { func (x *K8SPod) Reset() { *x = K8SPod{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[10] + mi := &file_flyteidl_core_tasks_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1437,7 +1514,7 @@ func (x *K8SPod) String() string { func (*K8SPod) ProtoMessage() {} func (x *K8SPod) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[10] + mi := &file_flyteidl_core_tasks_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1450,7 +1527,7 @@ func (x *K8SPod) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SPod.ProtoReflect.Descriptor instead. func (*K8SPod) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{10} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{11} } func (x *K8SPod) GetMetadata() *K8SObjectMetadata { @@ -1496,7 +1573,7 @@ type K8SObjectMetadata struct { func (x *K8SObjectMetadata) Reset() { *x = K8SObjectMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[11] + mi := &file_flyteidl_core_tasks_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1509,7 +1586,7 @@ func (x *K8SObjectMetadata) String() string { func (*K8SObjectMetadata) ProtoMessage() {} func (x *K8SObjectMetadata) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[11] + mi := &file_flyteidl_core_tasks_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1522,7 +1599,7 @@ func (x *K8SObjectMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SObjectMetadata.ProtoReflect.Descriptor instead. func (*K8SObjectMetadata) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{11} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{12} } func (x *K8SObjectMetadata) GetLabels() map[string]string { @@ -1559,7 +1636,7 @@ type Sql struct { func (x *Sql) Reset() { *x = Sql{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[12] + mi := &file_flyteidl_core_tasks_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1572,7 +1649,7 @@ func (x *Sql) String() string { func (*Sql) ProtoMessage() {} func (x *Sql) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[12] + mi := &file_flyteidl_core_tasks_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1585,7 +1662,7 @@ func (x *Sql) ProtoReflect() protoreflect.Message { // Deprecated: Use Sql.ProtoReflect.Descriptor instead. func (*Sql) Descriptor() ([]byte, []int) { - return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{12} + return file_flyteidl_core_tasks_proto_rawDescGZIP(), []int{13} } func (x *Sql) GetStatement() string { @@ -1618,7 +1695,7 @@ type Resources_ResourceEntry struct { func (x *Resources_ResourceEntry) Reset() { *x = Resources_ResourceEntry{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_tasks_proto_msgTypes[13] + mi := &file_flyteidl_core_tasks_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1631,7 +1708,7 @@ func (x *Resources_ResourceEntry) String() string { func (*Resources_ResourceEntry) ProtoMessage() {} func (x *Resources_ResourceEntry) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_tasks_proto_msgTypes[13] + mi := &file_flyteidl_core_tasks_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1710,13 +1787,24 @@ var file_flyteidl_core_tasks_proto_rawDesc = []byte{ 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x46, 0x0a, 0x0f, 0x67, 0x70, 0x75, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x50, 0x55, 0x41, 0x63, 0x63, 0x65, - 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x67, 0x70, 0x75, 0x41, 0x63, 0x63, 0x65, - 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x74, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6b, 0x0a, 0x0c, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, + 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x46, 0x0a, + 0x0f, 0x67, 0x70, 0x75, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x50, 0x55, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x67, 0x70, 0x75, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, @@ -1965,7 +2053,7 @@ func file_flyteidl_core_tasks_proto_rawDescGZIP() []byte { } var file_flyteidl_core_tasks_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_flyteidl_core_tasks_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_flyteidl_core_tasks_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_flyteidl_core_tasks_proto_goTypes = []interface{}{ (Resources_ResourceName)(0), // 0: flyteidl.core.Resources.ResourceName (RuntimeMetadata_RuntimeType)(0), // 1: flyteidl.core.RuntimeMetadata.RuntimeType @@ -1976,73 +2064,75 @@ var file_flyteidl_core_tasks_proto_goTypes = []interface{}{ (Sql_Dialect)(0), // 6: flyteidl.core.Sql.Dialect (*Resources)(nil), // 7: flyteidl.core.Resources (*GPUAccelerator)(nil), // 8: flyteidl.core.GPUAccelerator - (*ExtendedResources)(nil), // 9: flyteidl.core.ExtendedResources - (*RuntimeMetadata)(nil), // 10: flyteidl.core.RuntimeMetadata - (*TaskMetadata)(nil), // 11: flyteidl.core.TaskMetadata - (*TaskTemplate)(nil), // 12: flyteidl.core.TaskTemplate - (*ContainerPort)(nil), // 13: flyteidl.core.ContainerPort - (*Container)(nil), // 14: flyteidl.core.Container - (*IOStrategy)(nil), // 15: flyteidl.core.IOStrategy - (*DataLoadingConfig)(nil), // 16: flyteidl.core.DataLoadingConfig - (*K8SPod)(nil), // 17: flyteidl.core.K8sPod - (*K8SObjectMetadata)(nil), // 18: flyteidl.core.K8sObjectMetadata - (*Sql)(nil), // 19: flyteidl.core.Sql - (*Resources_ResourceEntry)(nil), // 20: flyteidl.core.Resources.ResourceEntry - nil, // 21: flyteidl.core.TaskMetadata.TagsEntry - nil, // 22: flyteidl.core.TaskTemplate.ConfigEntry - nil, // 23: flyteidl.core.K8sObjectMetadata.LabelsEntry - nil, // 24: flyteidl.core.K8sObjectMetadata.AnnotationsEntry - (*durationpb.Duration)(nil), // 25: google.protobuf.Duration - (*RetryStrategy)(nil), // 26: flyteidl.core.RetryStrategy - (*wrapperspb.BoolValue)(nil), // 27: google.protobuf.BoolValue - (*Identifier)(nil), // 28: flyteidl.core.Identifier - (*TypedInterface)(nil), // 29: flyteidl.core.TypedInterface - (*structpb.Struct)(nil), // 30: google.protobuf.Struct - (*SecurityContext)(nil), // 31: flyteidl.core.SecurityContext - (*KeyValuePair)(nil), // 32: flyteidl.core.KeyValuePair + (*SharedMemory)(nil), // 9: flyteidl.core.SharedMemory + (*ExtendedResources)(nil), // 10: flyteidl.core.ExtendedResources + (*RuntimeMetadata)(nil), // 11: flyteidl.core.RuntimeMetadata + (*TaskMetadata)(nil), // 12: flyteidl.core.TaskMetadata + (*TaskTemplate)(nil), // 13: flyteidl.core.TaskTemplate + (*ContainerPort)(nil), // 14: flyteidl.core.ContainerPort + (*Container)(nil), // 15: flyteidl.core.Container + (*IOStrategy)(nil), // 16: flyteidl.core.IOStrategy + (*DataLoadingConfig)(nil), // 17: flyteidl.core.DataLoadingConfig + (*K8SPod)(nil), // 18: flyteidl.core.K8sPod + (*K8SObjectMetadata)(nil), // 19: flyteidl.core.K8sObjectMetadata + (*Sql)(nil), // 20: flyteidl.core.Sql + (*Resources_ResourceEntry)(nil), // 21: flyteidl.core.Resources.ResourceEntry + nil, // 22: flyteidl.core.TaskMetadata.TagsEntry + nil, // 23: flyteidl.core.TaskTemplate.ConfigEntry + nil, // 24: flyteidl.core.K8sObjectMetadata.LabelsEntry + nil, // 25: flyteidl.core.K8sObjectMetadata.AnnotationsEntry + (*durationpb.Duration)(nil), // 26: google.protobuf.Duration + (*RetryStrategy)(nil), // 27: flyteidl.core.RetryStrategy + (*wrapperspb.BoolValue)(nil), // 28: google.protobuf.BoolValue + (*Identifier)(nil), // 29: flyteidl.core.Identifier + (*TypedInterface)(nil), // 30: flyteidl.core.TypedInterface + (*structpb.Struct)(nil), // 31: google.protobuf.Struct + (*SecurityContext)(nil), // 32: flyteidl.core.SecurityContext + (*KeyValuePair)(nil), // 33: flyteidl.core.KeyValuePair } var file_flyteidl_core_tasks_proto_depIdxs = []int32{ - 20, // 0: flyteidl.core.Resources.requests:type_name -> flyteidl.core.Resources.ResourceEntry - 20, // 1: flyteidl.core.Resources.limits:type_name -> flyteidl.core.Resources.ResourceEntry + 21, // 0: flyteidl.core.Resources.requests:type_name -> flyteidl.core.Resources.ResourceEntry + 21, // 1: flyteidl.core.Resources.limits:type_name -> flyteidl.core.Resources.ResourceEntry 8, // 2: flyteidl.core.ExtendedResources.gpu_accelerator:type_name -> flyteidl.core.GPUAccelerator - 1, // 3: flyteidl.core.RuntimeMetadata.type:type_name -> flyteidl.core.RuntimeMetadata.RuntimeType - 10, // 4: flyteidl.core.TaskMetadata.runtime:type_name -> flyteidl.core.RuntimeMetadata - 25, // 5: flyteidl.core.TaskMetadata.timeout:type_name -> google.protobuf.Duration - 26, // 6: flyteidl.core.TaskMetadata.retries:type_name -> flyteidl.core.RetryStrategy - 21, // 7: flyteidl.core.TaskMetadata.tags:type_name -> flyteidl.core.TaskMetadata.TagsEntry - 27, // 8: flyteidl.core.TaskMetadata.generates_deck:type_name -> google.protobuf.BoolValue - 28, // 9: flyteidl.core.TaskTemplate.id:type_name -> flyteidl.core.Identifier - 11, // 10: flyteidl.core.TaskTemplate.metadata:type_name -> flyteidl.core.TaskMetadata - 29, // 11: flyteidl.core.TaskTemplate.interface:type_name -> flyteidl.core.TypedInterface - 30, // 12: flyteidl.core.TaskTemplate.custom:type_name -> google.protobuf.Struct - 14, // 13: flyteidl.core.TaskTemplate.container:type_name -> flyteidl.core.Container - 17, // 14: flyteidl.core.TaskTemplate.k8s_pod:type_name -> flyteidl.core.K8sPod - 19, // 15: flyteidl.core.TaskTemplate.sql:type_name -> flyteidl.core.Sql - 31, // 16: flyteidl.core.TaskTemplate.security_context:type_name -> flyteidl.core.SecurityContext - 9, // 17: flyteidl.core.TaskTemplate.extended_resources:type_name -> flyteidl.core.ExtendedResources - 22, // 18: flyteidl.core.TaskTemplate.config:type_name -> flyteidl.core.TaskTemplate.ConfigEntry - 7, // 19: flyteidl.core.Container.resources:type_name -> flyteidl.core.Resources - 32, // 20: flyteidl.core.Container.env:type_name -> flyteidl.core.KeyValuePair - 32, // 21: flyteidl.core.Container.config:type_name -> flyteidl.core.KeyValuePair - 13, // 22: flyteidl.core.Container.ports:type_name -> flyteidl.core.ContainerPort - 16, // 23: flyteidl.core.Container.data_config:type_name -> flyteidl.core.DataLoadingConfig - 2, // 24: flyteidl.core.Container.architecture:type_name -> flyteidl.core.Container.Architecture - 3, // 25: flyteidl.core.IOStrategy.download_mode:type_name -> flyteidl.core.IOStrategy.DownloadMode - 4, // 26: flyteidl.core.IOStrategy.upload_mode:type_name -> flyteidl.core.IOStrategy.UploadMode - 5, // 27: flyteidl.core.DataLoadingConfig.format:type_name -> flyteidl.core.DataLoadingConfig.LiteralMapFormat - 15, // 28: flyteidl.core.DataLoadingConfig.io_strategy:type_name -> flyteidl.core.IOStrategy - 18, // 29: flyteidl.core.K8sPod.metadata:type_name -> flyteidl.core.K8sObjectMetadata - 30, // 30: flyteidl.core.K8sPod.pod_spec:type_name -> google.protobuf.Struct - 16, // 31: flyteidl.core.K8sPod.data_config:type_name -> flyteidl.core.DataLoadingConfig - 23, // 32: flyteidl.core.K8sObjectMetadata.labels:type_name -> flyteidl.core.K8sObjectMetadata.LabelsEntry - 24, // 33: flyteidl.core.K8sObjectMetadata.annotations:type_name -> flyteidl.core.K8sObjectMetadata.AnnotationsEntry - 6, // 34: flyteidl.core.Sql.dialect:type_name -> flyteidl.core.Sql.Dialect - 0, // 35: flyteidl.core.Resources.ResourceEntry.name:type_name -> flyteidl.core.Resources.ResourceName - 36, // [36:36] is the sub-list for method output_type - 36, // [36:36] is the sub-list for method input_type - 36, // [36:36] is the sub-list for extension type_name - 36, // [36:36] is the sub-list for extension extendee - 0, // [0:36] is the sub-list for field type_name + 9, // 3: flyteidl.core.ExtendedResources.shared_memory:type_name -> flyteidl.core.SharedMemory + 1, // 4: flyteidl.core.RuntimeMetadata.type:type_name -> flyteidl.core.RuntimeMetadata.RuntimeType + 11, // 5: flyteidl.core.TaskMetadata.runtime:type_name -> flyteidl.core.RuntimeMetadata + 26, // 6: flyteidl.core.TaskMetadata.timeout:type_name -> google.protobuf.Duration + 27, // 7: flyteidl.core.TaskMetadata.retries:type_name -> flyteidl.core.RetryStrategy + 22, // 8: flyteidl.core.TaskMetadata.tags:type_name -> flyteidl.core.TaskMetadata.TagsEntry + 28, // 9: flyteidl.core.TaskMetadata.generates_deck:type_name -> google.protobuf.BoolValue + 29, // 10: flyteidl.core.TaskTemplate.id:type_name -> flyteidl.core.Identifier + 12, // 11: flyteidl.core.TaskTemplate.metadata:type_name -> flyteidl.core.TaskMetadata + 30, // 12: flyteidl.core.TaskTemplate.interface:type_name -> flyteidl.core.TypedInterface + 31, // 13: flyteidl.core.TaskTemplate.custom:type_name -> google.protobuf.Struct + 15, // 14: flyteidl.core.TaskTemplate.container:type_name -> flyteidl.core.Container + 18, // 15: flyteidl.core.TaskTemplate.k8s_pod:type_name -> flyteidl.core.K8sPod + 20, // 16: flyteidl.core.TaskTemplate.sql:type_name -> flyteidl.core.Sql + 32, // 17: flyteidl.core.TaskTemplate.security_context:type_name -> flyteidl.core.SecurityContext + 10, // 18: flyteidl.core.TaskTemplate.extended_resources:type_name -> flyteidl.core.ExtendedResources + 23, // 19: flyteidl.core.TaskTemplate.config:type_name -> flyteidl.core.TaskTemplate.ConfigEntry + 7, // 20: flyteidl.core.Container.resources:type_name -> flyteidl.core.Resources + 33, // 21: flyteidl.core.Container.env:type_name -> flyteidl.core.KeyValuePair + 33, // 22: flyteidl.core.Container.config:type_name -> flyteidl.core.KeyValuePair + 14, // 23: flyteidl.core.Container.ports:type_name -> flyteidl.core.ContainerPort + 17, // 24: flyteidl.core.Container.data_config:type_name -> flyteidl.core.DataLoadingConfig + 2, // 25: flyteidl.core.Container.architecture:type_name -> flyteidl.core.Container.Architecture + 3, // 26: flyteidl.core.IOStrategy.download_mode:type_name -> flyteidl.core.IOStrategy.DownloadMode + 4, // 27: flyteidl.core.IOStrategy.upload_mode:type_name -> flyteidl.core.IOStrategy.UploadMode + 5, // 28: flyteidl.core.DataLoadingConfig.format:type_name -> flyteidl.core.DataLoadingConfig.LiteralMapFormat + 16, // 29: flyteidl.core.DataLoadingConfig.io_strategy:type_name -> flyteidl.core.IOStrategy + 19, // 30: flyteidl.core.K8sPod.metadata:type_name -> flyteidl.core.K8sObjectMetadata + 31, // 31: flyteidl.core.K8sPod.pod_spec:type_name -> google.protobuf.Struct + 17, // 32: flyteidl.core.K8sPod.data_config:type_name -> flyteidl.core.DataLoadingConfig + 24, // 33: flyteidl.core.K8sObjectMetadata.labels:type_name -> flyteidl.core.K8sObjectMetadata.LabelsEntry + 25, // 34: flyteidl.core.K8sObjectMetadata.annotations:type_name -> flyteidl.core.K8sObjectMetadata.AnnotationsEntry + 6, // 35: flyteidl.core.Sql.dialect:type_name -> flyteidl.core.Sql.Dialect + 0, // 36: flyteidl.core.Resources.ResourceEntry.name:type_name -> flyteidl.core.Resources.ResourceName + 37, // [37:37] is the sub-list for method output_type + 37, // [37:37] is the sub-list for method input_type + 37, // [37:37] is the sub-list for extension type_name + 37, // [37:37] is the sub-list for extension extendee + 0, // [0:37] is the sub-list for field type_name } func init() { file_flyteidl_core_tasks_proto_init() } @@ -2080,7 +2170,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtendedResources); i { + switch v := v.(*SharedMemory); i { case 0: return &v.state case 1: @@ -2092,7 +2182,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RuntimeMetadata); i { + switch v := v.(*ExtendedResources); i { case 0: return &v.state case 1: @@ -2104,7 +2194,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskMetadata); i { + switch v := v.(*RuntimeMetadata); i { case 0: return &v.state case 1: @@ -2116,7 +2206,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskTemplate); i { + switch v := v.(*TaskMetadata); i { case 0: return &v.state case 1: @@ -2128,7 +2218,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainerPort); i { + switch v := v.(*TaskTemplate); i { case 0: return &v.state case 1: @@ -2140,7 +2230,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Container); i { + switch v := v.(*ContainerPort); i { case 0: return &v.state case 1: @@ -2152,7 +2242,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IOStrategy); i { + switch v := v.(*Container); i { case 0: return &v.state case 1: @@ -2164,7 +2254,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataLoadingConfig); i { + switch v := v.(*IOStrategy); i { case 0: return &v.state case 1: @@ -2176,7 +2266,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SPod); i { + switch v := v.(*DataLoadingConfig); i { case 0: return &v.state case 1: @@ -2188,7 +2278,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SObjectMetadata); i { + switch v := v.(*K8SPod); i { case 0: return &v.state case 1: @@ -2200,7 +2290,7 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Sql); i { + switch v := v.(*K8SObjectMetadata); i { case 0: return &v.state case 1: @@ -2212,6 +2302,18 @@ func file_flyteidl_core_tasks_proto_init() { } } file_flyteidl_core_tasks_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sql); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_core_tasks_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Resources_ResourceEntry); i { case 0: return &v.state @@ -2228,10 +2330,10 @@ func file_flyteidl_core_tasks_proto_init() { (*GPUAccelerator_Unpartitioned)(nil), (*GPUAccelerator_PartitionSize)(nil), } - file_flyteidl_core_tasks_proto_msgTypes[4].OneofWrappers = []interface{}{ + file_flyteidl_core_tasks_proto_msgTypes[5].OneofWrappers = []interface{}{ (*TaskMetadata_Interruptible)(nil), } - file_flyteidl_core_tasks_proto_msgTypes[5].OneofWrappers = []interface{}{ + file_flyteidl_core_tasks_proto_msgTypes[6].OneofWrappers = []interface{}{ (*TaskTemplate_Container)(nil), (*TaskTemplate_K8SPod)(nil), (*TaskTemplate_Sql)(nil), @@ -2242,7 +2344,7 @@ func file_flyteidl_core_tasks_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flyteidl_core_tasks_proto_rawDesc, NumEnums: 7, - NumMessages: 18, + NumMessages: 19, NumExtensions: 0, NumServices: 0, }, diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index 27c6c2880b..b350b4d3e1 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -7205,6 +7205,9 @@ "gpu_accelerator": { "$ref": "#/definitions/coreGPUAccelerator", "description": "GPU accelerator to select for task. Contains information about device type, and\nfor multi-instance GPUs, the partition size to use." + }, + "shared_memory": { + "$ref": "#/definitions/coreSharedMemory" } }, "description": "Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to\nallocate to a task." @@ -8062,6 +8065,24 @@ }, "description": "SecurityContext holds security attributes that apply to tasks." }, + "coreSharedMemory": { + "type": "object", + "properties": { + "mount_path": { + "type": "string", + "title": "Mount path to place in container" + }, + "mount_name": { + "type": "string", + "title": "Name for volume" + }, + "size_limit": { + "type": "string", + "title": "Size limit for shared memory. If not set, then the shared memory is equal\nto the allocated memory.\n+optional" + } + }, + "description": "Metadata associated with configuring a shared memory volume for a task." + }, "coreSignalCondition": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json index 580cc33b84..b4bb79a88e 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json @@ -1119,6 +1119,9 @@ "gpu_accelerator": { "$ref": "#/definitions/coreGPUAccelerator", "description": "GPU accelerator to select for task. Contains information about device type, and\nfor multi-instance GPUs, the partition size to use." + }, + "shared_memory": { + "$ref": "#/definitions/coreSharedMemory" } }, "description": "Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to\nallocate to a task." @@ -1680,6 +1683,24 @@ }, "description": "SecurityContext holds security attributes that apply to tasks." }, + "coreSharedMemory": { + "type": "object", + "properties": { + "mount_path": { + "type": "string", + "title": "Mount path to place in container" + }, + "mount_name": { + "type": "string", + "title": "Name for volume" + }, + "size_limit": { + "type": "string", + "title": "Size limit for shared memory. If not set, then the shared memory is equal\nto the allocated memory.\n+optional" + } + }, + "description": "Metadata associated with configuring a shared memory volume for a task." + }, "coreSimpleType": { "type": "string", "enum": [ diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json index bbf4cf1326..b7407da552 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json @@ -394,6 +394,9 @@ "gpu_accelerator": { "$ref": "#/definitions/coreGPUAccelerator", "description": "GPU accelerator to select for task. Contains information about device type, and\nfor multi-instance GPUs, the partition size to use." + }, + "shared_memory": { + "$ref": "#/definitions/coreSharedMemory" } }, "description": "Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to\nallocate to a task." @@ -943,6 +946,24 @@ }, "description": "SecurityContext holds security attributes that apply to tasks." }, + "coreSharedMemory": { + "type": "object", + "properties": { + "mount_path": { + "type": "string", + "title": "Mount path to place in container" + }, + "mount_name": { + "type": "string", + "title": "Name for volume" + }, + "size_limit": { + "type": "string", + "title": "Size limit for shared memory. If not set, then the shared memory is equal\nto the allocated memory.\n+optional" + } + }, + "description": "Metadata associated with configuring a shared memory volume for a task." + }, "coreSimpleType": { "type": "string", "enum": [ diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index bbd674372e..cf72a42282 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -6274,11 +6274,78 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a SharedMemory. */ + interface ISharedMemory { + + /** SharedMemory mountPath */ + mountPath?: (string|null); + + /** SharedMemory mountName */ + mountName?: (string|null); + + /** SharedMemory sizeLimit */ + sizeLimit?: (string|null); + } + + /** Represents a SharedMemory. */ + class SharedMemory implements ISharedMemory { + + /** + * Constructs a new SharedMemory. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.ISharedMemory); + + /** SharedMemory mountPath. */ + public mountPath: string; + + /** SharedMemory mountName. */ + public mountName: string; + + /** SharedMemory sizeLimit. */ + public sizeLimit: string; + + /** + * Creates a new SharedMemory instance using the specified properties. + * @param [properties] Properties to set + * @returns SharedMemory instance + */ + public static create(properties?: flyteidl.core.ISharedMemory): flyteidl.core.SharedMemory; + + /** + * Encodes the specified SharedMemory message. Does not implicitly {@link flyteidl.core.SharedMemory.verify|verify} messages. + * @param message SharedMemory message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.ISharedMemory, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SharedMemory message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SharedMemory + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.core.SharedMemory; + + /** + * Verifies a SharedMemory message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of an ExtendedResources. */ interface IExtendedResources { /** ExtendedResources gpuAccelerator */ gpuAccelerator?: (flyteidl.core.IGPUAccelerator|null); + + /** ExtendedResources sharedMemory */ + sharedMemory?: (flyteidl.core.ISharedMemory|null); } /** Represents an ExtendedResources. */ @@ -6293,6 +6360,9 @@ export namespace flyteidl { /** ExtendedResources gpuAccelerator. */ public gpuAccelerator?: (flyteidl.core.IGPUAccelerator|null); + /** ExtendedResources sharedMemory. */ + public sharedMemory?: (flyteidl.core.ISharedMemory|null); + /** * Creates a new ExtendedResources instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 309fc72c8a..7e676742af 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -15136,6 +15136,150 @@ return GPUAccelerator; })(); + core.SharedMemory = (function() { + + /** + * Properties of a SharedMemory. + * @memberof flyteidl.core + * @interface ISharedMemory + * @property {string|null} [mountPath] SharedMemory mountPath + * @property {string|null} [mountName] SharedMemory mountName + * @property {string|null} [sizeLimit] SharedMemory sizeLimit + */ + + /** + * Constructs a new SharedMemory. + * @memberof flyteidl.core + * @classdesc Represents a SharedMemory. + * @implements ISharedMemory + * @constructor + * @param {flyteidl.core.ISharedMemory=} [properties] Properties to set + */ + function SharedMemory(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SharedMemory mountPath. + * @member {string} mountPath + * @memberof flyteidl.core.SharedMemory + * @instance + */ + SharedMemory.prototype.mountPath = ""; + + /** + * SharedMemory mountName. + * @member {string} mountName + * @memberof flyteidl.core.SharedMemory + * @instance + */ + SharedMemory.prototype.mountName = ""; + + /** + * SharedMemory sizeLimit. + * @member {string} sizeLimit + * @memberof flyteidl.core.SharedMemory + * @instance + */ + SharedMemory.prototype.sizeLimit = ""; + + /** + * Creates a new SharedMemory instance using the specified properties. + * @function create + * @memberof flyteidl.core.SharedMemory + * @static + * @param {flyteidl.core.ISharedMemory=} [properties] Properties to set + * @returns {flyteidl.core.SharedMemory} SharedMemory instance + */ + SharedMemory.create = function create(properties) { + return new SharedMemory(properties); + }; + + /** + * Encodes the specified SharedMemory message. Does not implicitly {@link flyteidl.core.SharedMemory.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.SharedMemory + * @static + * @param {flyteidl.core.ISharedMemory} message SharedMemory message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SharedMemory.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.mountPath != null && message.hasOwnProperty("mountPath")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.mountPath); + if (message.mountName != null && message.hasOwnProperty("mountName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.mountName); + if (message.sizeLimit != null && message.hasOwnProperty("sizeLimit")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.sizeLimit); + return writer; + }; + + /** + * Decodes a SharedMemory message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.SharedMemory + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.SharedMemory} SharedMemory + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SharedMemory.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.core.SharedMemory(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.mountPath = reader.string(); + break; + case 2: + message.mountName = reader.string(); + break; + case 3: + message.sizeLimit = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a SharedMemory message. + * @function verify + * @memberof flyteidl.core.SharedMemory + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SharedMemory.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.mountPath != null && message.hasOwnProperty("mountPath")) + if (!$util.isString(message.mountPath)) + return "mountPath: string expected"; + if (message.mountName != null && message.hasOwnProperty("mountName")) + if (!$util.isString(message.mountName)) + return "mountName: string expected"; + if (message.sizeLimit != null && message.hasOwnProperty("sizeLimit")) + if (!$util.isString(message.sizeLimit)) + return "sizeLimit: string expected"; + return null; + }; + + return SharedMemory; + })(); + core.ExtendedResources = (function() { /** @@ -15143,6 +15287,7 @@ * @memberof flyteidl.core * @interface IExtendedResources * @property {flyteidl.core.IGPUAccelerator|null} [gpuAccelerator] ExtendedResources gpuAccelerator + * @property {flyteidl.core.ISharedMemory|null} [sharedMemory] ExtendedResources sharedMemory */ /** @@ -15168,6 +15313,14 @@ */ ExtendedResources.prototype.gpuAccelerator = null; + /** + * ExtendedResources sharedMemory. + * @member {flyteidl.core.ISharedMemory|null|undefined} sharedMemory + * @memberof flyteidl.core.ExtendedResources + * @instance + */ + ExtendedResources.prototype.sharedMemory = null; + /** * Creates a new ExtendedResources instance using the specified properties. * @function create @@ -15194,6 +15347,8 @@ writer = $Writer.create(); if (message.gpuAccelerator != null && message.hasOwnProperty("gpuAccelerator")) $root.flyteidl.core.GPUAccelerator.encode(message.gpuAccelerator, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.sharedMemory != null && message.hasOwnProperty("sharedMemory")) + $root.flyteidl.core.SharedMemory.encode(message.sharedMemory, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; @@ -15218,6 +15373,9 @@ case 1: message.gpuAccelerator = $root.flyteidl.core.GPUAccelerator.decode(reader, reader.uint32()); break; + case 2: + message.sharedMemory = $root.flyteidl.core.SharedMemory.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -15242,6 +15400,11 @@ if (error) return "gpuAccelerator." + error; } + if (message.sharedMemory != null && message.hasOwnProperty("sharedMemory")) { + var error = $root.flyteidl.core.SharedMemory.verify(message.sharedMemory); + if (error) + return "sharedMemory." + error; + } return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.py index a2626bb437..d246c4f60f 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.py @@ -20,7 +20,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/core/tasks.proto\x12\rflyteidl.core\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd0\x02\n\tResources\x12\x42\n\x08requests\x18\x01 \x03(\x0b\x32&.flyteidl.core.Resources.ResourceEntryR\x08requests\x12>\n\x06limits\x18\x02 \x03(\x0b\x32&.flyteidl.core.Resources.ResourceEntryR\x06limits\x1a`\n\rResourceEntry\x12\x39\n\x04name\x18\x01 \x01(\x0e\x32%.flyteidl.core.Resources.ResourceNameR\x04name\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"]\n\x0cResourceName\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x43PU\x10\x01\x12\x07\n\x03GPU\x10\x02\x12\n\n\x06MEMORY\x10\x03\x12\x0b\n\x07STORAGE\x10\x04\x12\x15\n\x11\x45PHEMERAL_STORAGE\x10\x05\"\x91\x01\n\x0eGPUAccelerator\x12\x16\n\x06\x64\x65vice\x18\x01 \x01(\tR\x06\x64\x65vice\x12&\n\runpartitioned\x18\x02 \x01(\x08H\x00R\runpartitioned\x12\'\n\x0epartition_size\x18\x03 \x01(\tH\x00R\rpartitionSizeB\x16\n\x14partition_size_value\"[\n\x11\x45xtendedResources\x12\x46\n\x0fgpu_accelerator\x18\x01 \x01(\x0b\x32\x1d.flyteidl.core.GPUAcceleratorR\x0egpuAccelerator\"\xac\x01\n\x0fRuntimeMetadata\x12>\n\x04type\x18\x01 \x01(\x0e\x32*.flyteidl.core.RuntimeMetadata.RuntimeTypeR\x04type\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x16\n\x06\x66lavor\x18\x03 \x01(\tR\x06\x66lavor\"\'\n\x0bRuntimeType\x12\t\n\x05OTHER\x10\x00\x12\r\n\tFLYTE_SDK\x10\x01\"\xe9\x05\n\x0cTaskMetadata\x12\"\n\x0c\x64iscoverable\x18\x01 \x01(\x08R\x0c\x64iscoverable\x12\x38\n\x07runtime\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.RuntimeMetadataR\x07runtime\x12\x33\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07timeout\x12\x36\n\x07retries\x18\x05 \x01(\x0b\x32\x1c.flyteidl.core.RetryStrategyR\x07retries\x12+\n\x11\x64iscovery_version\x18\x06 \x01(\tR\x10\x64iscoveryVersion\x12\x38\n\x18\x64\x65precated_error_message\x18\x07 \x01(\tR\x16\x64\x65precatedErrorMessage\x12&\n\rinterruptible\x18\x08 \x01(\x08H\x00R\rinterruptible\x12-\n\x12\x63\x61\x63he_serializable\x18\t \x01(\x08R\x11\x63\x61\x63heSerializable\x12\x39\n\x04tags\x18\x0b \x03(\x0b\x32%.flyteidl.core.TaskMetadata.TagsEntryR\x04tags\x12*\n\x11pod_template_name\x18\x0c \x01(\tR\x0fpodTemplateName\x12\x35\n\x17\x63\x61\x63he_ignore_input_vars\x18\r \x03(\tR\x14\x63\x61\x63heIgnoreInputVars\x12\x19\n\x08is_eager\x18\x0e \x01(\x08R\x07isEager\x12\x41\n\x0egenerates_deck\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rgeneratesDeck\x1a\x37\n\tTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x15\n\x13interruptible_valueJ\x04\x08\n\x10\x0b\"\xd6\x05\n\x0cTaskTemplate\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x37\n\x08metadata\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.TaskMetadataR\x08metadata\x12;\n\tinterface\x18\x04 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\tinterface\x12/\n\x06\x63ustom\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x06\x63ustom\x12\x38\n\tcontainer\x18\x06 \x01(\x0b\x32\x18.flyteidl.core.ContainerH\x00R\tcontainer\x12\x30\n\x07k8s_pod\x18\x11 \x01(\x0b\x32\x15.flyteidl.core.K8sPodH\x00R\x06k8sPod\x12&\n\x03sql\x18\x12 \x01(\x0b\x32\x12.flyteidl.core.SqlH\x00R\x03sql\x12*\n\x11task_type_version\x18\x07 \x01(\x05R\x0ftaskTypeVersion\x12I\n\x10security_context\x18\x08 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12O\n\x12\x65xtended_resources\x18\t \x01(\x0b\x32 .flyteidl.core.ExtendedResourcesR\x11\x65xtendedResources\x12?\n\x06\x63onfig\x18\x10 \x03(\x0b\x32\'.flyteidl.core.TaskTemplate.ConfigEntryR\x06\x63onfig\x1a\x39\n\x0b\x43onfigEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x08\n\x06target\"J\n\rContainerPort\x12%\n\x0e\x63ontainer_port\x18\x01 \x01(\rR\rcontainerPort\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xfc\x03\n\tContainer\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x18\n\x07\x63ommand\x18\x02 \x03(\tR\x07\x63ommand\x12\x12\n\x04\x61rgs\x18\x03 \x03(\tR\x04\x61rgs\x12\x36\n\tresources\x18\x04 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\x12-\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairR\x03\x65nv\x12\x37\n\x06\x63onfig\x18\x06 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairB\x02\x18\x01R\x06\x63onfig\x12\x32\n\x05ports\x18\x07 \x03(\x0b\x32\x1c.flyteidl.core.ContainerPortR\x05ports\x12\x41\n\x0b\x64\x61ta_config\x18\t \x01(\x0b\x32 .flyteidl.core.DataLoadingConfigR\ndataConfig\x12I\n\x0c\x61rchitecture\x18\n \x01(\x0e\x32%.flyteidl.core.Container.ArchitectureR\x0c\x61rchitecture\"I\n\x0c\x41rchitecture\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41MD64\x10\x01\x12\t\n\x05\x41RM64\x10\x02\x12\n\n\x06\x41RM_V6\x10\x03\x12\n\n\x06\x41RM_V7\x10\x04\"\xb5\x02\n\nIOStrategy\x12K\n\rdownload_mode\x18\x01 \x01(\x0e\x32&.flyteidl.core.IOStrategy.DownloadModeR\x0c\x64ownloadMode\x12\x45\n\x0bupload_mode\x18\x02 \x01(\x0e\x32$.flyteidl.core.IOStrategy.UploadModeR\nuploadMode\"L\n\x0c\x44ownloadMode\x12\x12\n\x0e\x44OWNLOAD_EAGER\x10\x00\x12\x13\n\x0f\x44OWNLOAD_STREAM\x10\x01\x12\x13\n\x0f\x44O_NOT_DOWNLOAD\x10\x02\"E\n\nUploadMode\x12\x12\n\x0eUPLOAD_ON_EXIT\x10\x00\x12\x10\n\x0cUPLOAD_EAGER\x10\x01\x12\x11\n\rDO_NOT_UPLOAD\x10\x02\"\xa7\x02\n\x11\x44\x61taLoadingConfig\x12\x18\n\x07\x65nabled\x18\x01 \x01(\x08R\x07\x65nabled\x12\x1d\n\ninput_path\x18\x02 \x01(\tR\tinputPath\x12\x1f\n\x0boutput_path\x18\x03 \x01(\tR\noutputPath\x12I\n\x06\x66ormat\x18\x04 \x01(\x0e\x32\x31.flyteidl.core.DataLoadingConfig.LiteralMapFormatR\x06\x66ormat\x12:\n\x0bio_strategy\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.IOStrategyR\nioStrategy\"1\n\x10LiteralMapFormat\x12\x08\n\x04JSON\x10\x00\x12\x08\n\x04YAML\x10\x01\x12\t\n\x05PROTO\x10\x02\"\xf3\x01\n\x06K8sPod\x12<\n\x08metadata\x18\x01 \x01(\x0b\x32 .flyteidl.core.K8sObjectMetadataR\x08metadata\x12\x32\n\x08pod_spec\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x07podSpec\x12\x41\n\x0b\x64\x61ta_config\x18\x03 \x01(\x0b\x32 .flyteidl.core.DataLoadingConfigR\ndataConfig\x12\x34\n\x16primary_container_name\x18\x04 \x01(\tR\x14primaryContainerName\"\xa9\x02\n\x11K8sObjectMetadata\x12\x44\n\x06labels\x18\x01 \x03(\x0b\x32,.flyteidl.core.K8sObjectMetadata.LabelsEntryR\x06labels\x12S\n\x0b\x61nnotations\x18\x02 \x03(\x0b\x32\x31.flyteidl.core.K8sObjectMetadata.AnnotationsEntryR\x0b\x61nnotations\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a>\n\x10\x41nnotationsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x92\x01\n\x03Sql\x12\x1c\n\tstatement\x18\x01 \x01(\tR\tstatement\x12\x34\n\x07\x64ialect\x18\x02 \x01(\x0e\x32\x1a.flyteidl.core.Sql.DialectR\x07\x64ialect\"7\n\x07\x44ialect\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04\x41NSI\x10\x01\x12\x08\n\x04HIVE\x10\x02\x12\t\n\x05OTHER\x10\x03\x42\xb0\x01\n\x11\x63om.flyteidl.coreB\nTasksProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/core/tasks.proto\x12\rflyteidl.core\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd0\x02\n\tResources\x12\x42\n\x08requests\x18\x01 \x03(\x0b\x32&.flyteidl.core.Resources.ResourceEntryR\x08requests\x12>\n\x06limits\x18\x02 \x03(\x0b\x32&.flyteidl.core.Resources.ResourceEntryR\x06limits\x1a`\n\rResourceEntry\x12\x39\n\x04name\x18\x01 \x01(\x0e\x32%.flyteidl.core.Resources.ResourceNameR\x04name\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"]\n\x0cResourceName\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x43PU\x10\x01\x12\x07\n\x03GPU\x10\x02\x12\n\n\x06MEMORY\x10\x03\x12\x0b\n\x07STORAGE\x10\x04\x12\x15\n\x11\x45PHEMERAL_STORAGE\x10\x05\"\x91\x01\n\x0eGPUAccelerator\x12\x16\n\x06\x64\x65vice\x18\x01 \x01(\tR\x06\x64\x65vice\x12&\n\runpartitioned\x18\x02 \x01(\x08H\x00R\runpartitioned\x12\'\n\x0epartition_size\x18\x03 \x01(\tH\x00R\rpartitionSizeB\x16\n\x14partition_size_value\"k\n\x0cSharedMemory\x12\x1d\n\nmount_path\x18\x01 \x01(\tR\tmountPath\x12\x1d\n\nmount_name\x18\x02 \x01(\tR\tmountName\x12\x1d\n\nsize_limit\x18\x03 \x01(\tR\tsizeLimit\"\x9d\x01\n\x11\x45xtendedResources\x12\x46\n\x0fgpu_accelerator\x18\x01 \x01(\x0b\x32\x1d.flyteidl.core.GPUAcceleratorR\x0egpuAccelerator\x12@\n\rshared_memory\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.SharedMemoryR\x0csharedMemory\"\xac\x01\n\x0fRuntimeMetadata\x12>\n\x04type\x18\x01 \x01(\x0e\x32*.flyteidl.core.RuntimeMetadata.RuntimeTypeR\x04type\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x16\n\x06\x66lavor\x18\x03 \x01(\tR\x06\x66lavor\"\'\n\x0bRuntimeType\x12\t\n\x05OTHER\x10\x00\x12\r\n\tFLYTE_SDK\x10\x01\"\xe9\x05\n\x0cTaskMetadata\x12\"\n\x0c\x64iscoverable\x18\x01 \x01(\x08R\x0c\x64iscoverable\x12\x38\n\x07runtime\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.RuntimeMetadataR\x07runtime\x12\x33\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07timeout\x12\x36\n\x07retries\x18\x05 \x01(\x0b\x32\x1c.flyteidl.core.RetryStrategyR\x07retries\x12+\n\x11\x64iscovery_version\x18\x06 \x01(\tR\x10\x64iscoveryVersion\x12\x38\n\x18\x64\x65precated_error_message\x18\x07 \x01(\tR\x16\x64\x65precatedErrorMessage\x12&\n\rinterruptible\x18\x08 \x01(\x08H\x00R\rinterruptible\x12-\n\x12\x63\x61\x63he_serializable\x18\t \x01(\x08R\x11\x63\x61\x63heSerializable\x12\x39\n\x04tags\x18\x0b \x03(\x0b\x32%.flyteidl.core.TaskMetadata.TagsEntryR\x04tags\x12*\n\x11pod_template_name\x18\x0c \x01(\tR\x0fpodTemplateName\x12\x35\n\x17\x63\x61\x63he_ignore_input_vars\x18\r \x03(\tR\x14\x63\x61\x63heIgnoreInputVars\x12\x19\n\x08is_eager\x18\x0e \x01(\x08R\x07isEager\x12\x41\n\x0egenerates_deck\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rgeneratesDeck\x1a\x37\n\tTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x15\n\x13interruptible_valueJ\x04\x08\n\x10\x0b\"\xd6\x05\n\x0cTaskTemplate\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x37\n\x08metadata\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.TaskMetadataR\x08metadata\x12;\n\tinterface\x18\x04 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\tinterface\x12/\n\x06\x63ustom\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x06\x63ustom\x12\x38\n\tcontainer\x18\x06 \x01(\x0b\x32\x18.flyteidl.core.ContainerH\x00R\tcontainer\x12\x30\n\x07k8s_pod\x18\x11 \x01(\x0b\x32\x15.flyteidl.core.K8sPodH\x00R\x06k8sPod\x12&\n\x03sql\x18\x12 \x01(\x0b\x32\x12.flyteidl.core.SqlH\x00R\x03sql\x12*\n\x11task_type_version\x18\x07 \x01(\x05R\x0ftaskTypeVersion\x12I\n\x10security_context\x18\x08 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12O\n\x12\x65xtended_resources\x18\t \x01(\x0b\x32 .flyteidl.core.ExtendedResourcesR\x11\x65xtendedResources\x12?\n\x06\x63onfig\x18\x10 \x03(\x0b\x32\'.flyteidl.core.TaskTemplate.ConfigEntryR\x06\x63onfig\x1a\x39\n\x0b\x43onfigEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x08\n\x06target\"J\n\rContainerPort\x12%\n\x0e\x63ontainer_port\x18\x01 \x01(\rR\rcontainerPort\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xfc\x03\n\tContainer\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x18\n\x07\x63ommand\x18\x02 \x03(\tR\x07\x63ommand\x12\x12\n\x04\x61rgs\x18\x03 \x03(\tR\x04\x61rgs\x12\x36\n\tresources\x18\x04 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\x12-\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairR\x03\x65nv\x12\x37\n\x06\x63onfig\x18\x06 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairB\x02\x18\x01R\x06\x63onfig\x12\x32\n\x05ports\x18\x07 \x03(\x0b\x32\x1c.flyteidl.core.ContainerPortR\x05ports\x12\x41\n\x0b\x64\x61ta_config\x18\t \x01(\x0b\x32 .flyteidl.core.DataLoadingConfigR\ndataConfig\x12I\n\x0c\x61rchitecture\x18\n \x01(\x0e\x32%.flyteidl.core.Container.ArchitectureR\x0c\x61rchitecture\"I\n\x0c\x41rchitecture\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41MD64\x10\x01\x12\t\n\x05\x41RM64\x10\x02\x12\n\n\x06\x41RM_V6\x10\x03\x12\n\n\x06\x41RM_V7\x10\x04\"\xb5\x02\n\nIOStrategy\x12K\n\rdownload_mode\x18\x01 \x01(\x0e\x32&.flyteidl.core.IOStrategy.DownloadModeR\x0c\x64ownloadMode\x12\x45\n\x0bupload_mode\x18\x02 \x01(\x0e\x32$.flyteidl.core.IOStrategy.UploadModeR\nuploadMode\"L\n\x0c\x44ownloadMode\x12\x12\n\x0e\x44OWNLOAD_EAGER\x10\x00\x12\x13\n\x0f\x44OWNLOAD_STREAM\x10\x01\x12\x13\n\x0f\x44O_NOT_DOWNLOAD\x10\x02\"E\n\nUploadMode\x12\x12\n\x0eUPLOAD_ON_EXIT\x10\x00\x12\x10\n\x0cUPLOAD_EAGER\x10\x01\x12\x11\n\rDO_NOT_UPLOAD\x10\x02\"\xa7\x02\n\x11\x44\x61taLoadingConfig\x12\x18\n\x07\x65nabled\x18\x01 \x01(\x08R\x07\x65nabled\x12\x1d\n\ninput_path\x18\x02 \x01(\tR\tinputPath\x12\x1f\n\x0boutput_path\x18\x03 \x01(\tR\noutputPath\x12I\n\x06\x66ormat\x18\x04 \x01(\x0e\x32\x31.flyteidl.core.DataLoadingConfig.LiteralMapFormatR\x06\x66ormat\x12:\n\x0bio_strategy\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.IOStrategyR\nioStrategy\"1\n\x10LiteralMapFormat\x12\x08\n\x04JSON\x10\x00\x12\x08\n\x04YAML\x10\x01\x12\t\n\x05PROTO\x10\x02\"\xf3\x01\n\x06K8sPod\x12<\n\x08metadata\x18\x01 \x01(\x0b\x32 .flyteidl.core.K8sObjectMetadataR\x08metadata\x12\x32\n\x08pod_spec\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x07podSpec\x12\x41\n\x0b\x64\x61ta_config\x18\x03 \x01(\x0b\x32 .flyteidl.core.DataLoadingConfigR\ndataConfig\x12\x34\n\x16primary_container_name\x18\x04 \x01(\tR\x14primaryContainerName\"\xa9\x02\n\x11K8sObjectMetadata\x12\x44\n\x06labels\x18\x01 \x03(\x0b\x32,.flyteidl.core.K8sObjectMetadata.LabelsEntryR\x06labels\x12S\n\x0b\x61nnotations\x18\x02 \x03(\x0b\x32\x31.flyteidl.core.K8sObjectMetadata.AnnotationsEntryR\x0b\x61nnotations\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a>\n\x10\x41nnotationsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x92\x01\n\x03Sql\x12\x1c\n\tstatement\x18\x01 \x01(\tR\tstatement\x12\x34\n\x07\x64ialect\x18\x02 \x01(\x0e\x32\x1a.flyteidl.core.Sql.DialectR\x07\x64ialect\"7\n\x07\x44ialect\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04\x41NSI\x10\x01\x12\x08\n\x04HIVE\x10\x02\x12\t\n\x05OTHER\x10\x03\x42\xb0\x01\n\x11\x63om.flyteidl.coreB\nTasksProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -47,46 +47,48 @@ _globals['_RESOURCES_RESOURCENAME']._serialized_end=598 _globals['_GPUACCELERATOR']._serialized_start=601 _globals['_GPUACCELERATOR']._serialized_end=746 - _globals['_EXTENDEDRESOURCES']._serialized_start=748 - _globals['_EXTENDEDRESOURCES']._serialized_end=839 - _globals['_RUNTIMEMETADATA']._serialized_start=842 - _globals['_RUNTIMEMETADATA']._serialized_end=1014 - _globals['_RUNTIMEMETADATA_RUNTIMETYPE']._serialized_start=975 - _globals['_RUNTIMEMETADATA_RUNTIMETYPE']._serialized_end=1014 - _globals['_TASKMETADATA']._serialized_start=1017 - _globals['_TASKMETADATA']._serialized_end=1762 - _globals['_TASKMETADATA_TAGSENTRY']._serialized_start=1678 - _globals['_TASKMETADATA_TAGSENTRY']._serialized_end=1733 - _globals['_TASKTEMPLATE']._serialized_start=1765 - _globals['_TASKTEMPLATE']._serialized_end=2491 - _globals['_TASKTEMPLATE_CONFIGENTRY']._serialized_start=2424 - _globals['_TASKTEMPLATE_CONFIGENTRY']._serialized_end=2481 - _globals['_CONTAINERPORT']._serialized_start=2493 - _globals['_CONTAINERPORT']._serialized_end=2567 - _globals['_CONTAINER']._serialized_start=2570 - _globals['_CONTAINER']._serialized_end=3078 - _globals['_CONTAINER_ARCHITECTURE']._serialized_start=3005 - _globals['_CONTAINER_ARCHITECTURE']._serialized_end=3078 - _globals['_IOSTRATEGY']._serialized_start=3081 - _globals['_IOSTRATEGY']._serialized_end=3390 - _globals['_IOSTRATEGY_DOWNLOADMODE']._serialized_start=3243 - _globals['_IOSTRATEGY_DOWNLOADMODE']._serialized_end=3319 - _globals['_IOSTRATEGY_UPLOADMODE']._serialized_start=3321 - _globals['_IOSTRATEGY_UPLOADMODE']._serialized_end=3390 - _globals['_DATALOADINGCONFIG']._serialized_start=3393 - _globals['_DATALOADINGCONFIG']._serialized_end=3688 - _globals['_DATALOADINGCONFIG_LITERALMAPFORMAT']._serialized_start=3639 - _globals['_DATALOADINGCONFIG_LITERALMAPFORMAT']._serialized_end=3688 - _globals['_K8SPOD']._serialized_start=3691 - _globals['_K8SPOD']._serialized_end=3934 - _globals['_K8SOBJECTMETADATA']._serialized_start=3937 - _globals['_K8SOBJECTMETADATA']._serialized_end=4234 - _globals['_K8SOBJECTMETADATA_LABELSENTRY']._serialized_start=4113 - _globals['_K8SOBJECTMETADATA_LABELSENTRY']._serialized_end=4170 - _globals['_K8SOBJECTMETADATA_ANNOTATIONSENTRY']._serialized_start=4172 - _globals['_K8SOBJECTMETADATA_ANNOTATIONSENTRY']._serialized_end=4234 - _globals['_SQL']._serialized_start=4237 - _globals['_SQL']._serialized_end=4383 - _globals['_SQL_DIALECT']._serialized_start=4328 - _globals['_SQL_DIALECT']._serialized_end=4383 + _globals['_SHAREDMEMORY']._serialized_start=748 + _globals['_SHAREDMEMORY']._serialized_end=855 + _globals['_EXTENDEDRESOURCES']._serialized_start=858 + _globals['_EXTENDEDRESOURCES']._serialized_end=1015 + _globals['_RUNTIMEMETADATA']._serialized_start=1018 + _globals['_RUNTIMEMETADATA']._serialized_end=1190 + _globals['_RUNTIMEMETADATA_RUNTIMETYPE']._serialized_start=1151 + _globals['_RUNTIMEMETADATA_RUNTIMETYPE']._serialized_end=1190 + _globals['_TASKMETADATA']._serialized_start=1193 + _globals['_TASKMETADATA']._serialized_end=1938 + _globals['_TASKMETADATA_TAGSENTRY']._serialized_start=1854 + _globals['_TASKMETADATA_TAGSENTRY']._serialized_end=1909 + _globals['_TASKTEMPLATE']._serialized_start=1941 + _globals['_TASKTEMPLATE']._serialized_end=2667 + _globals['_TASKTEMPLATE_CONFIGENTRY']._serialized_start=2600 + _globals['_TASKTEMPLATE_CONFIGENTRY']._serialized_end=2657 + _globals['_CONTAINERPORT']._serialized_start=2669 + _globals['_CONTAINERPORT']._serialized_end=2743 + _globals['_CONTAINER']._serialized_start=2746 + _globals['_CONTAINER']._serialized_end=3254 + _globals['_CONTAINER_ARCHITECTURE']._serialized_start=3181 + _globals['_CONTAINER_ARCHITECTURE']._serialized_end=3254 + _globals['_IOSTRATEGY']._serialized_start=3257 + _globals['_IOSTRATEGY']._serialized_end=3566 + _globals['_IOSTRATEGY_DOWNLOADMODE']._serialized_start=3419 + _globals['_IOSTRATEGY_DOWNLOADMODE']._serialized_end=3495 + _globals['_IOSTRATEGY_UPLOADMODE']._serialized_start=3497 + _globals['_IOSTRATEGY_UPLOADMODE']._serialized_end=3566 + _globals['_DATALOADINGCONFIG']._serialized_start=3569 + _globals['_DATALOADINGCONFIG']._serialized_end=3864 + _globals['_DATALOADINGCONFIG_LITERALMAPFORMAT']._serialized_start=3815 + _globals['_DATALOADINGCONFIG_LITERALMAPFORMAT']._serialized_end=3864 + _globals['_K8SPOD']._serialized_start=3867 + _globals['_K8SPOD']._serialized_end=4110 + _globals['_K8SOBJECTMETADATA']._serialized_start=4113 + _globals['_K8SOBJECTMETADATA']._serialized_end=4410 + _globals['_K8SOBJECTMETADATA_LABELSENTRY']._serialized_start=4289 + _globals['_K8SOBJECTMETADATA_LABELSENTRY']._serialized_end=4346 + _globals['_K8SOBJECTMETADATA_ANNOTATIONSENTRY']._serialized_start=4348 + _globals['_K8SOBJECTMETADATA_ANNOTATIONSENTRY']._serialized_end=4410 + _globals['_SQL']._serialized_start=4413 + _globals['_SQL']._serialized_end=4559 + _globals['_SQL_DIALECT']._serialized_start=4504 + _globals['_SQL_DIALECT']._serialized_end=4559 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.pyi index fc4a452775..8f489db002 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/core/tasks_pb2.pyi @@ -52,11 +52,23 @@ class GPUAccelerator(_message.Message): partition_size: str def __init__(self, device: _Optional[str] = ..., unpartitioned: bool = ..., partition_size: _Optional[str] = ...) -> None: ... +class SharedMemory(_message.Message): + __slots__ = ["mount_path", "mount_name", "size_limit"] + MOUNT_PATH_FIELD_NUMBER: _ClassVar[int] + MOUNT_NAME_FIELD_NUMBER: _ClassVar[int] + SIZE_LIMIT_FIELD_NUMBER: _ClassVar[int] + mount_path: str + mount_name: str + size_limit: str + def __init__(self, mount_path: _Optional[str] = ..., mount_name: _Optional[str] = ..., size_limit: _Optional[str] = ...) -> None: ... + class ExtendedResources(_message.Message): - __slots__ = ["gpu_accelerator"] + __slots__ = ["gpu_accelerator", "shared_memory"] GPU_ACCELERATOR_FIELD_NUMBER: _ClassVar[int] + SHARED_MEMORY_FIELD_NUMBER: _ClassVar[int] gpu_accelerator: GPUAccelerator - def __init__(self, gpu_accelerator: _Optional[_Union[GPUAccelerator, _Mapping]] = ...) -> None: ... + shared_memory: SharedMemory + def __init__(self, gpu_accelerator: _Optional[_Union[GPUAccelerator, _Mapping]] = ..., shared_memory: _Optional[_Union[SharedMemory, _Mapping]] = ...) -> None: ... class RuntimeMetadata(_message.Message): __slots__ = ["type", "version", "flavor"] diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index aba8b656cd..3017158410 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -1301,6 +1301,22 @@ pub mod gpu_accelerator { PartitionSize(::prost::alloc::string::String), } } +/// Metadata associated with configuring a shared memory volume for a task. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SharedMemory { + /// Mount path to place in container + #[prost(string, tag="1")] + pub mount_path: ::prost::alloc::string::String, + /// Name for volume + #[prost(string, tag="2")] + pub mount_name: ::prost::alloc::string::String, + /// Size limit for shared memory. If not set, then the shared memory is equal + /// to the allocated memory. + /// +optional + #[prost(string, tag="3")] + pub size_limit: ::prost::alloc::string::String, +} /// Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to /// allocate to a task. #[allow(clippy::derive_partial_eq_without_eq)] @@ -1310,6 +1326,8 @@ pub struct ExtendedResources { /// for multi-instance GPUs, the partition size to use. #[prost(message, optional, tag="1")] pub gpu_accelerator: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub shared_memory: ::core::option::Option, } /// Runtime information. This is loosely defined to allow for extensibility. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/flyteidl/protos/flyteidl/core/tasks.proto b/flyteidl/protos/flyteidl/core/tasks.proto index 82a6c842f8..602b7c3b10 100644 --- a/flyteidl/protos/flyteidl/core/tasks.proto +++ b/flyteidl/protos/flyteidl/core/tasks.proto @@ -61,12 +61,25 @@ message GPUAccelerator { } } +// Metadata associated with configuring a shared memory volume for a task. +message SharedMemory { + // Mount path to place in container + string mount_path = 1; + // Name for volume + string mount_name = 2; + // Size limit for shared memory. If not set, then the shared memory is equal + // to the allocated memory. + // +optional + string size_limit = 3; +} + // Encapsulates all non-standard resources, not captured by v1.ResourceRequirements, to // allocate to a task. message ExtendedResources { // GPU accelerator to select for task. Contains information about device type, and // for multi-instance GPUs, the partition size to use. GPUAccelerator gpu_accelerator = 1; + SharedMemory shared_memory = 2; } // Runtime information. This is loosely defined to allow for extensibility. diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper.go index 67e3b3d0f2..f3d049c74b 100644 --- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper.go +++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper.go @@ -10,6 +10,7 @@ import ( "github.com/golang/protobuf/proto" "github.com/imdario/mergo" v1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" @@ -129,9 +130,69 @@ func applyExtendedResourcesOverrides(base, overrides *core.ExtendedResources) *c new.GpuAccelerator = overrides.GetGpuAccelerator() } + if overrides.GetSharedMemory() != nil { + new.SharedMemory = overrides.GetSharedMemory() + } + return new } +func ApplySharedMemory(podSpec *v1.PodSpec, primaryContainerName string, SharedMemory *core.SharedMemory) error { + sharedMountName := SharedMemory.GetMountName() + sharedMountPath := SharedMemory.GetMountPath() + if sharedMountName == "" { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "mount name is not set") + } + if sharedMountPath == "" { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "mount path is not set") + } + + var primaryContainer *v1.Container + for index, container := range podSpec.Containers { + if container.Name == primaryContainerName { + primaryContainer = &podSpec.Containers[index] + } + } + if primaryContainer == nil { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "Unable to find primary container") + } + + for _, volume := range podSpec.Volumes { + if volume.Name == sharedMountName { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "A volume is already named %v in pod spec", sharedMountName) + } + } + + for _, volume_mount := range primaryContainer.VolumeMounts { + if volume_mount.Name == sharedMountName { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "A volume is already named %v in container", sharedMountName) + } + if volume_mount.MountPath == sharedMountPath { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "%s is already mounted in container", sharedMountPath) + } + } + + var quantity resource.Quantity + var err error + if SharedMemory.GetSizeLimit() != "" { + quantity, err = resource.ParseQuantity(SharedMemory.GetSizeLimit()) + if err != nil { + return pluginserrors.Errorf(pluginserrors.BadTaskSpecification, "Unable to parse size limit: %v", err.Error()) + } + } + + podSpec.Volumes = append( + podSpec.Volumes, + v1.Volume{ + Name: sharedMountName, + VolumeSource: v1.VolumeSource{EmptyDir: &v1.EmptyDirVolumeSource{Medium: v1.StorageMediumMemory, SizeLimit: &quantity}}, + }, + ) + primaryContainer.VolumeMounts = append(primaryContainer.VolumeMounts, v1.VolumeMount{Name: sharedMountName, MountPath: sharedMountPath}) + + return nil +} + func ApplyGPUNodeSelectors(podSpec *v1.PodSpec, gpuAccelerator *core.GPUAccelerator) { // Short circuit if pod spec does not contain any containers that use GPUs gpuResourceName := config.GetK8sPluginConfig().GpuResourceName @@ -451,6 +512,14 @@ func ApplyFlytePodConfiguration(ctx context.Context, tCtx pluginsCore.TaskExecut ApplyGPUNodeSelectors(podSpec, extendedResources.GetGpuAccelerator()) } + // Shared memory volume + if extendedResources.GetSharedMemory() != nil { + err = ApplySharedMemory(podSpec, primaryContainerName, extendedResources.GetSharedMemory()) + if err != nil { + return nil, nil, err + } + } + // Override container image if necessary if len(tCtx.TaskExecutionMetadata().GetOverrides().GetContainerImage()) > 0 { ApplyContainerImageOverride(podSpec, tCtx.TaskExecutionMetadata().GetOverrides().GetContainerImage(), primaryContainerName) diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper_test.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper_test.go index 6fb5889a2f..21d485235b 100644 --- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper_test.go +++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/pod_helper_test.go @@ -2397,3 +2397,218 @@ func TestAddTolerationsForExtendedResources(t *testing.T) { assert.Equal(t, v1.TolerationOpExists, podSpec.Tolerations[2].Operator) assert.Equal(t, v1.TaintEffectNoSchedule, podSpec.Tolerations[2].Effect) } + +func TestApplyExtendedResourcesOverridesSharedMemory(t *testing.T) { + SharedMemory := &core.ExtendedResources{ + SharedMemory: &core.SharedMemory{ + MountName: "flyte-shared-memory", + MountPath: "/dev/shm", + }, + } + + newSharedMemory := &core.ExtendedResources{ + SharedMemory: &core.SharedMemory{ + MountName: "flyte-shared-memory-v2", + MountPath: "/dev/shm", + }, + } + + t.Run("base is nil", func(t *testing.T) { + final := applyExtendedResourcesOverrides(nil, SharedMemory) + assert.EqualValues( + t, + SharedMemory.GetSharedMemory(), + final.GetSharedMemory(), + ) + }) + + t.Run("overrides is nil", func(t *testing.T) { + final := applyExtendedResourcesOverrides(SharedMemory, nil) + assert.EqualValues( + t, + SharedMemory.GetSharedMemory(), + final.GetSharedMemory(), + ) + }) + + t.Run("merging", func(t *testing.T) { + final := applyExtendedResourcesOverrides(SharedMemory, newSharedMemory) + assert.EqualValues( + t, + newSharedMemory.GetSharedMemory(), + final.GetSharedMemory(), + ) + }) +} + +func TestApplySharedMemoryErrors(t *testing.T) { + + type test struct { + name string + podSpec *v1.PodSpec + primaryContainerName string + sharedVolume *core.SharedMemory + errorMsg string + } + + tests := []test{ + { + name: "No mount name", + podSpec: nil, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountPath: "/dev/shm"}, + errorMsg: "mount name is not set", + }, + { + name: "No mount path name", + podSpec: nil, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory"}, + errorMsg: "mount path is not set", + }, + { + name: "No primary container", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "secondary", + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm"}, + errorMsg: "Unable to find primary container", + }, + + { + name: "Volume already exists in spec", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "primary", + }}, + Volumes: []v1.Volume{{ + Name: "flyte-shared-memory", + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm"}, + errorMsg: "A volume is already named flyte-shared-memory in pod spec", + }, + { + name: "Volume already in container", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "primary", + VolumeMounts: []v1.VolumeMount{{ + Name: "flyte-shared-memory", + MountPath: "/dev/shm", + }}, + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm"}, + errorMsg: "A volume is already named flyte-shared-memory in container", + }, + { + name: "Mount path already in container", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "primary", + VolumeMounts: []v1.VolumeMount{{ + Name: "flyte-shared-memory-v2", + MountPath: "/dev/shm", + }}, + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm"}, + errorMsg: "/dev/shm is already mounted in container", + }, + { + name: "Mount path already in container", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "primary", + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm", SizeLimit: "bad-name"}, + errorMsg: "Unable to parse size limit: bad-name", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := ApplySharedMemory(test.podSpec, test.primaryContainerName, test.sharedVolume) + assert.Errorf(t, err, test.errorMsg) + }) + } +} + +func TestApplySharedMemory(t *testing.T) { + + type test struct { + name string + podSpec *v1.PodSpec + primaryContainerName string + sharedVolume *core.SharedMemory + } + + tests := []test{ + { + name: "No size limit works", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "primary", + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm"}, + }, + { + name: "With size limits works", + podSpec: &v1.PodSpec{ + Containers: []v1.Container{{ + Name: "primary", + }}, + }, + primaryContainerName: "primary", + sharedVolume: &core.SharedMemory{MountName: "flyte-shared-memory", MountPath: "/dev/shm", SizeLimit: "2Gi"}, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := ApplySharedMemory(test.podSpec, test.primaryContainerName, test.sharedVolume) + assert.NoError(t, err) + + assert.Len(t, test.podSpec.Volumes, 1) + assert.Len(t, test.podSpec.Containers[0].VolumeMounts, 1) + + assert.Equal( + t, + test.podSpec.Containers[0].VolumeMounts[0], + v1.VolumeMount{ + Name: test.sharedVolume.GetMountName(), + MountPath: test.sharedVolume.GetMountPath(), + }, + ) + + var quantity resource.Quantity + if test.sharedVolume.GetSizeLimit() != "" { + quantity, err = resource.ParseQuantity(test.sharedVolume.GetSizeLimit()) + assert.NoError(t, err) + } + + assert.Equal( + t, + test.podSpec.Volumes[0], + v1.Volume{ + Name: test.sharedVolume.GetMountName(), + VolumeSource: v1.VolumeSource{ + EmptyDir: &v1.EmptyDirVolumeSource{Medium: v1.StorageMediumMemory, SizeLimit: &quantity}, + }, + }, + ) + + }) + } +}