diff --git a/api/services/elastigroup/azure/spotVms/schemas/createElastigroupSpotVMs.yaml b/api/services/elastigroup/azure/spotVms/schemas/createElastigroupSpotVMs.yaml index 1de3ad358..19e34d23a 100644 --- a/api/services/elastigroup/azure/spotVms/schemas/createElastigroupSpotVMs.yaml +++ b/api/services/elastigroup/azure/spotVms/schemas/createElastigroupSpotVMs.yaml @@ -593,7 +593,7 @@ properties: example: standard_b1s spotSizes: title: Spot Sizes - description: "Available Spot-VM sizes. Find the list in Azure https://docs.microsoft.com/en-us/azure/virtual-machines/spot-vms?toc=/azure/virtual-machines/linux/toc.json&bc=/azure/virtual-machines/linux/breadcrumb/toc.json" + description: "Available Spot VM sizes. Find the list in Azure https://docs.microsoft.com/en-us/azure/virtual-machines/spot-vms?toc=/azure/virtual-machines/linux/toc.json&bc=/azure/virtual-machines/linux/breadcrumb/toc.json" type: array items: type: string @@ -606,6 +606,15 @@ properties: items: type: string example: "standard_a2_v2" + spotSizeAttributes: + $ref: "../schemas/elastigroupVm-spotSizeAttributes.yaml" + excludedVmSizes: + type: array + description: | + Spot VM sizes to exclude when using the attribute-based VM sizes selection option. + example: [ "standard_a2_v2", "standard_d2s_v3" ] + items: + type: string os: type: string example: Linux diff --git a/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute-update.yaml b/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute-update.yaml index 6c08d0e8b..36aa59908 100644 --- a/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute-update.yaml +++ b/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute-update.yaml @@ -18,7 +18,7 @@ properties: spotSizes: type: array description: | - Available Spot-VM sizes. + Available Spot VM sizes. items: type: string example: "standard_a2_v2" @@ -30,6 +30,15 @@ properties: items: type: string example: "standard_a2_v2" + spotSizeAttributes: + $ref: "../schemas/elastigroupVm-spotSizeAttributes.yaml" + excludedVmSizes: + type: array + description: | + Spot VM sizes to exclude when using the attribute-based VM sizes selection option. + example: [ "standard_a2_v2", "standard_d2s_v3" ] + items: + type: string launchSpecification: type: object properties: diff --git a/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute.yaml b/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute.yaml index a733c6253..b4a61cabb 100644 --- a/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute.yaml +++ b/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-compute.yaml @@ -22,7 +22,7 @@ properties: spotSizes: type: array description: | - Available Spot-VM sizes. + Available Spot VM sizes. items: type: string example: "standard_a2_v2" @@ -34,6 +34,15 @@ properties: items: type: string example: "standard_a2_v2" + spotSizeAttributes: + $ref: "../schemas/elastigroupVm-spotSizeAttributes.yaml" + excludedVmSizes: + type: array + description: | + Spot VM sizes to exclude when using the attribute-based VM sizes selection option. + example: [ "standard_a2_v2", "standard_d2s_v3" ] + items: + type: string os: type: string example: Linux diff --git a/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-spotSizeAttributes.yaml b/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-spotSizeAttributes.yaml new file mode 100644 index 000000000..1ab72595e --- /dev/null +++ b/api/services/elastigroup/azure/spotVms/schemas/elastigroupVm-spotSizeAttributes.yaml @@ -0,0 +1,43 @@ +type: object +title: Elastigroup spot size attributes +description: | + Required instance attributes. Instance types will be selected based on these requirements. +properties: + minCpu: + type: integer + description: | + Minimum instance CPU units. + example: 2 + maxCpu: + type: integer + description: | + Maximum instance CPU units. + example: 8 + minStorage: + type: integer + description: | + Minimum instance storage (GiB). + example: 5 + maxStorage: + type: integer + description: | + Maximum instance storage (GiB). + example: 50 + minMemory: + type: integer + description: | + Minimum instance memory (GiB). + example: 2 + maxMemory: + type: integer + description: | + Maximum instance memory (GiB). + example: 2 + cpuArchitecture: + type: string + description: | + Required CPU architecture. + enum: + - X64 + - ARM64 + example: X64 diff --git a/api/services/elastigroup/azure/stateful/node/schemas/create/createStatefulNodeCompute.yaml b/api/services/elastigroup/azure/stateful/node/schemas/create/createStatefulNodeCompute.yaml index e606377b1..ba7608b71 100644 --- a/api/services/elastigroup/azure/stateful/node/schemas/create/createStatefulNodeCompute.yaml +++ b/api/services/elastigroup/azure/stateful/node/schemas/create/createStatefulNodeCompute.yaml @@ -31,7 +31,7 @@ properties: spotSizes: type: array description: | - Defines the spot-VM sizes to use when launching VMs. + Defines the Spot VM sizes to use when launching VMs. items: type: string example: "standard_a2_v2" diff --git a/api/services/elastigroup/azure/stateful/node/schemas/update/updateStatefulNodeCompute.yaml b/api/services/elastigroup/azure/stateful/node/schemas/update/updateStatefulNodeCompute.yaml index 96512c33c..527b95848 100644 --- a/api/services/elastigroup/azure/stateful/node/schemas/update/updateStatefulNodeCompute.yaml +++ b/api/services/elastigroup/azure/stateful/node/schemas/update/updateStatefulNodeCompute.yaml @@ -31,7 +31,7 @@ properties: spotSizes: type: array description: | - Available Spot-VM sizes. + Available Spot VM sizes. items: type: string example: "standard_a2_v2"