Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOC-2676-Open-Api-Support-For-Get-Automatic-Rightsizing-Savings #735

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
post:
summary: "Get Ocean Right-Sizing Savings"
description: |
Get right-sizing savings from downsizing operations for an Ocean cluster.
operationId: "oceanRightsizingSavings"
tags:
- "Ocean Automatic Rightsizing"
baruchis123 marked this conversation as resolved.
Show resolved Hide resolved
parameters:
- $ref: "../parameters/oceanId.yaml"
- $ref: "../../../../commons/parameters/accountId.yaml"
requestBody:
required: true
content:
application/json:
schema:
allOf:
- $ref: "../schemas/oceanRightsizingSavingsRequest.yaml"
responses:
200:
$ref: "../responses/oceanRightsizingSavingsResponse.yaml"
400:
description: "Bad Request"
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
description: "Ocean right-sizing savings response"
content:
application/json:
schema:
allOf:
- $ref: "../../../../commons/schemas/responseItemWrapper.yaml"
- type: object
properties:
request:
type: object
properties:
url:
example: "/ocean/o-abcd1234/rightSizing/savings"
method:
example: "POST"
response:
type: object
properties:
items:
type: array
items:
$ref: "../schemas/oceanRightsizingSavings.yaml"
example:
- totalSavingsSummary:
cpuWithOcean: 100,
memoryWithOcean: 128,
savings: 1000,
percentage: 0.75
namespacesSavingsSummary:
- namespace: "kube-system"
savings: 500
- namespace: "default"
savings: 500
workloadSavings:
- workloadName: "coredns"
workloadType: "Deployment"
namespace: "kube-system"
cpuWithOcean: 25
cpuWithoutOcean: 50
memoryWithOcean: 32
memoryWithoutOcean: 64
savings: 250
isDeleted: True
- workloadName: "aws-node"
workloadType: "DaemonSet"
namespace: "kube-system"
cpuWithOcean: 25
cpuWithoutOcean: 50
memoryWithOcean: 32
memoryWithoutOcean: 64
savings: 250
isDeleted": False
count:
example: 1
kind:
example: "mcs:ocean:rightSizing:savings"
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
type: object
title: Ocean Right-Sizing Savings Response
description: >
Right-sizing savings response object
properties:
totalSavingsSummary: #todo baruch - add description for the main objects
type: object
description: A summary of the savings for all the workloads in the response
properties:
cpuWithOcean:
type: number
memoryWithOcean:
type: number
savings:
type: number
percentage:
type: number
namespacesSavingsSummary:
type: array
description: A summary of the savings for each namespace in the response
items:
type: object
properties:
namespace:
type: string
savings:
type: number
workloadSavings:
type: array
description: A list of the savings for each workload in the response
items:
type: object
properties:
workloadName:
type: string
workloadType:
type: string
namespace:
type: string
cpuWithOcean:
type: number
cpuWithoutOcean:
type: number
memoryWithOcean:
type: number
memoryWithoutOcean:
type: number
savings:
type: number
isDeleted:
type: boolean


Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
type: object
title: Ocean Right-Sizing Savings
description: >
Determines the Ocean right-sizing savings
required:
- endTime
- startTime
- workloads
properties:
startTime:
type: string
example: 2025-01-20T11:35:02.745Z
description: >
Start date value using either the date format "yyyy-MM-dd'T'HH:mm:ss'Z'" or ms "1494751821472".
endTime:
type: string
example: 2025-01-30T11:30:01.745Z
description: >
End date value using either the date format "yyyy-MM-dd'T'HH:mm:ss'Z'" or ms "1494751821472".
benchmark:
type: string
description: >
The benchmark to compare the savings against. The default is ORIGINAL.
enum: [ORIGINAL, CURRENT]
workloads:
$ref: "../schemas/oceanRightsizingSavingsWorkloadsRequest.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
title: Ocean Right-Sizing Savings Workloads
description: >
Determines the Ocean Savings filtering by the combinations of namespace::workload
baruchis123 marked this conversation as resolved.
Show resolved Hide resolved
type: object
properties:
namespaceName:
type: object
additionalProperties:
type: array
items:
type: object
properties: #todo baruch
workloadName:
type: string
description: The name of the workload
workloadType:
type: string
description: The type of the workload (e.g., Deployment, DaemonSet, StatefulSet)

example:
namespaceName1:
- workloadName: workloadName1
workloadType: Deployment
- workloadName: workloadName2
workloadType: DaemonSet
namespaceName2:
- workloadName: workloadName3
workloadType: StatefulSet
- workloadName: workloadName4
workloadType: Deployment
2 changes: 2 additions & 0 deletions api/spot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -936,6 +936,8 @@ paths:
$ref: services/ocean/rightsizing/paths/oceanRightsizingAcknowledgeRollbacks.yaml
/ocean/{oceanId}/rightSizing/cluster/configuration:
$ref: services/ocean/rightsizing/paths/oceanRightsizingClusterConfiguration.yaml
/ocean/{oceanId}/rightSizing/savings:
$ref: services/ocean/rightsizing/paths/oceanRightsizingSavings.yaml
/security/v1/compliances:
$ref: services/security/v1/paths/compliances.yaml
/security/v1/compliances/count:
Expand Down