From 4813c55c9c0f37ac8fe7f842985689b1702a79d7 Mon Sep 17 00:00:00 2001 From: vladislavchourilov Date: Mon, 16 Feb 2026 16:09:52 +0200 Subject: [PATCH 1/2] SPOTCON-36238 add instance types filters documentation --- .../schemas/oceanInstanceTypesFilters.yaml | 79 ++++++++++++++++- .../oceanInstanceTypesFiltersForVng.yaml | 87 ++++++++++++++++++- .../schemas/oceanInstanceTypesFilters.yaml | 79 ++++++++++++++++- 3 files changed, 242 insertions(+), 3 deletions(-) diff --git a/api/services/ocean/aws/schemas/oceanInstanceTypesFilters.yaml b/api/services/ocean/aws/schemas/oceanInstanceTypesFilters.yaml index 94ac1981..cde60ed4 100644 --- a/api/services/ocean/aws/schemas/oceanInstanceTypesFilters.yaml +++ b/api/services/ocean/aws/schemas/oceanInstanceTypesFilters.yaml @@ -16,6 +16,20 @@ properties: Maximum number of vcpus available. minimum: 1 example: 16 + includeVcpu: + type: array + description: > + Vcpus from this list will be the only available for scaling. + items: + type: integer + example: [ 1, 2, 4 ] + excludeVcpu: + type: array + description: > + Vcpus from this list will not be available for scaling. + items: + type: integer + example: [ 1, 2, 4 ] minMemoryGiB: type: number format: double @@ -30,6 +44,20 @@ properties: Maximum amount of Memory (GiB). minimum: 0 example: 16 + includeMemoryGiB: + type: array + description: > + Memory (GiB) from this list will be the only available for scaling. + items: + type: number + example: [ 8, 16, 32 ] + excludeMemoryGiB: + type: array + description: > + Memory (GiB) from this list will not be available for scaling. + items: + type: number + example: [ 8, 16, 32 ] minGpu: type: integer description: | @@ -77,6 +105,14 @@ properties: type: string enum: [ i386, x86_64, arm64 ] example: [ "i386", "x86_64"] + excludeArchitectures: + type: array + description: | + The filtered instance types will not support any of the architectures from this list. + items: + type: string + enum: [ i386, x86_64, arm64 ] + example: [ "i386", "x86_64"] virtualizationTypes: type: array description: | @@ -115,6 +151,14 @@ properties: type: string enum: [ nitro, xen ] example: [ "nitro"] + excludeHypervisor: + type: array + description: | + The filtered instance types will not have a hypervisor type from this list. + items: + type: string + enum: [ nitro, xen ] + example: [ "xen" ] rootDeviceTypes: type: array description: | @@ -168,4 +212,37 @@ properties: type: boolean description: | encryptionInTransitSupported is supported or not. - example: true \ No newline at end of file + example: true + includeSize: + type: array + description: > + Size from the IncludeSize will be available for scaling. + items: + type: string + example: [ "medium", "8xlarge" ] + excludeSize: + type: array + description: > + Size from the ExcludeSize will not be available for scaling. + items: + type: string + example: [ "medium", "8xlarge" ] + capabilityFlex: + type: boolean + description: | + If true, the filtered instance types will have the capability of flexible resource management (Flex). + example: true + includeNetworkPerformance: + type: array + description: > + Network performance from this list will be the only available for scaling. + items: + type: integer + example: [ 10, 20 ] + excludeNetworkPerformance: + type: array + description: > + Network performance from this list will not be available for scaling. + items: + type: integer + example: [ 10, 20 ] \ No newline at end of file diff --git a/api/services/ocean/aws/schemas/oceanInstanceTypesFiltersForVng.yaml b/api/services/ocean/aws/schemas/oceanInstanceTypesFiltersForVng.yaml index 188dc3a0..07be2eaa 100644 --- a/api/services/ocean/aws/schemas/oceanInstanceTypesFiltersForVng.yaml +++ b/api/services/ocean/aws/schemas/oceanInstanceTypesFiltersForVng.yaml @@ -17,6 +17,20 @@ properties: Maximum number of vcpus available. minimum: 1 example: 16 + includeVcpu: + type: array + description: > + Vcpus from this list will be the only available for scaling. + items: + type: integer + example: [ 1, 2, 4 ] + excludeVcpu: + type: array + description: > + Vcpus from this list will not be available for scaling. + items: + type: integer + example: [ 1, 2, 4 ] minMemoryGiB: type: number description: | @@ -29,6 +43,20 @@ properties: Maximum amount of Memory (GiB). minimum: 0 example: 16 + includeMemoryGiB: + type: array + description: > + Memory (GiB) from this list will be the only available for scaling. + items: + type: number + example: [ 8, 16, 32 ] + excludeMemoryGiB: + type: array + description: > + Memory (GiB) from this list will not be available for scaling. + items: + type: number + example: [ 8, 16, 32 ] minGpu: type: integer description: | @@ -68,6 +96,22 @@ properties: description: | Ena is supported or not. example: true + architectures: + type: array + description: | + The filtered instance types will support at least one of the architectures from this list. + items: + type: string + enum: [ i386, x86_64, arm64 ] + example: [ "i386", "x86_64" ] + excludeArchitectures: + type: array + description: | + The filtered instance types will not support any of the architectures from this list. + items: + type: string + enum: [ i386, x86_64, arm64 ] + example: [ "i386", "x86_64" ] virtualizationTypes: type: array description: | @@ -106,6 +150,14 @@ properties: type: string enum: [ nitro, xen ] example: [ "nitro"] + excludeHypervisor: + type: array + description: | + The filtered instance types will not have a hypervisor type from this list. + items: + type: string + enum: [ nitro, xen ] + example: [ "xen"] rootDeviceTypes: type: array description: | @@ -159,4 +211,37 @@ properties: type: boolean description: | encryptionInTransitSupported is supported or not. - example: true \ No newline at end of file + example: true + includeSize: + type: array + description: > + Size from the IncludeSize will be available for scaling. + items: + type: string + example: [ "medium", "8xlarge"] + excludeSize: + type: array + description: > + Size from the ExcludeSize will not be available for scaling. + items: + type: string + example: [ "medium", "8xlarge"] + capabilityFlex: + type: boolean + description: | + If true, the filtered instance types will have the capability of flexible resource management (Flex). + example: true + includeNetworkPerformance: + type: array + description: > + Network performance from this list will be the only available for scaling. + items: + type: integer + example: [ 10, 20 ] + excludeNetworkPerformance: + type: array + description: > + Network performance from this list will not be available for scaling. + items: + type: integer + example: [ 10, 20 ] diff --git a/api/services/ocean/ecs/schemas/oceanInstanceTypesFilters.yaml b/api/services/ocean/ecs/schemas/oceanInstanceTypesFilters.yaml index 28bac386..54289fe2 100644 --- a/api/services/ocean/ecs/schemas/oceanInstanceTypesFilters.yaml +++ b/api/services/ocean/ecs/schemas/oceanInstanceTypesFilters.yaml @@ -16,6 +16,20 @@ properties: Maximum number of vCPUs available. minimum: 1 example: 16 + includeVcpu: + type: array + description: > + Vcpus from this list will be the only available for scaling. + items: + type: integer + example: [ 1, 2, 4 ] + excludeVcpu: + type: array + description: > + Vcpus from this list will not be available for scaling. + items: + type: integer + example: [ 1, 2, 4 ] minMemoryGiB: type: number format: double @@ -30,6 +44,20 @@ properties: Maximum amount of Memory (GiB). minimum: 0 example: 16 + includeMemoryGiB: + type: array + description: > + Memory (GiB) from this list will be the only available for scaling. + items: + type: number + example: [ 8, 16, 32 ] + excludeMemoryGiB: + type: array + description: > + Memory (GiB) from this list will not be available for scaling. + items: + type: number + example: [ 8, 16, 32 ] minGpu: type: integer description: | @@ -77,6 +105,14 @@ properties: type: string enum: [ i386, x86_64, arm64 ] example: [ "i386", "x86_64"] + excludeArchitectures: + type: array + description: | + The filtered instance types will not support any of the architectures from this list. + items: + type: string + enum: [ i386, x86_64, arm64 ] + example: [ "i386", "x86_64" ] virtualizationTypes: type: array description: | @@ -115,6 +151,14 @@ properties: type: string enum: [ nitro, xen ] example: [ "nitro"] + excludeHypervisor: + type: array + description: | + The filtered instance types will not have a hypervisor type from this list. + items: + type: string + enum: [ nitro, xen ] + example: [ "xen" ] rootDeviceTypes: type: array description: | @@ -168,4 +212,37 @@ properties: type: boolean description: | encryptionInTransitSupported is supported or not. - example: true \ No newline at end of file + example: true + includeSize: + type: array + description: > + Size from the IncludeSize will be available for scaling. + items: + type: string + example: [ "medium", "8xlarge" ] + excludeSize: + type: array + description: > + Size from the ExcludeSize will not be available for scaling. + items: + type: string + example: [ "medium", "8xlarge" ] + capabilityFlex: + type: boolean + description: | + If true, the filtered instance types will have the capability of flexible resource management (Flex). + example: true + includeNetworkPerformance: + type: array + description: > + Network performance from this list will be the only available for scaling. + items: + type: integer + example: [ 10, 20 ] + excludeNetworkPerformance: + type: array + description: > + Network performance from this list will not be available for scaling. + items: + type: integer + example: [ 10, 20 ] \ No newline at end of file From 7dac3d6faf511d499ab3e48ea19695c970f3e8c4 Mon Sep 17 00:00:00 2001 From: vladislavchourilov Date: Mon, 16 Feb 2026 22:21:32 +0200 Subject: [PATCH 2/2] SPOTCON-36238 add instance types filters documentation --- .../parameters/karpenterNodePool-query.yaml | 8 ++++ .../importKarpenterNodePool-launchSpec.yaml | 32 ++++++++++++++ .../aws/paths/karpenterNodePoolNames.yaml | 15 +++++++ .../importKarpenterNodePool-launchSpec.yaml | 24 ++++++++++ .../aws/responses/karpenterNodePoolNames.yaml | 24 ++++++++++ ...rtKarpenterNodePool-launchSpecRequest.yaml | 44 +++++++++++++++++++ ...tKarpenterNodePool-launchSpecResponse.yaml | 39 ++++++++++++++++ .../aws/schemas/karpenterNodePoolNames.yaml | 9 ++++ api/spot.yaml | 4 ++ 9 files changed, 199 insertions(+) create mode 100644 api/services/ocean/aws/parameters/karpenterNodePool-query.yaml create mode 100644 api/services/ocean/aws/paths/importKarpenterNodePool-launchSpec.yaml create mode 100644 api/services/ocean/aws/paths/karpenterNodePoolNames.yaml create mode 100644 api/services/ocean/aws/responses/importKarpenterNodePool-launchSpec.yaml create mode 100644 api/services/ocean/aws/responses/karpenterNodePoolNames.yaml create mode 100644 api/services/ocean/aws/schemas/importKarpenterNodePool-launchSpecRequest.yaml create mode 100644 api/services/ocean/aws/schemas/importKarpenterNodePool-launchSpecResponse.yaml create mode 100644 api/services/ocean/aws/schemas/karpenterNodePoolNames.yaml diff --git a/api/services/ocean/aws/parameters/karpenterNodePool-query.yaml b/api/services/ocean/aws/parameters/karpenterNodePool-query.yaml new file mode 100644 index 00000000..14e25c31 --- /dev/null +++ b/api/services/ocean/aws/parameters/karpenterNodePool-query.yaml @@ -0,0 +1,8 @@ +in: query +name: "karpenterNodePool" +example: MyKarpenterNodePool +description: | + Node pool name to import. +schema: + type: string +required: true \ No newline at end of file diff --git a/api/services/ocean/aws/paths/importKarpenterNodePool-launchSpec.yaml b/api/services/ocean/aws/paths/importKarpenterNodePool-launchSpec.yaml new file mode 100644 index 00000000..a92a4d08 --- /dev/null +++ b/api/services/ocean/aws/paths/importKarpenterNodePool-launchSpec.yaml @@ -0,0 +1,32 @@ +summary: Ocean for EKS +post: + summary: "Import Karpenter NodePool To Ocean Virtual Node Group" + description: > +