From 11f5bf123e06b8f7150ab74355c6ee9a5fbd1eec Mon Sep 17 00:00:00 2001 From: Catalina Radu Date: Wed, 22 Mar 2023 12:49:24 +0200 Subject: [PATCH] Add Capacity fields for Capacity Forecaster --- .../registry.ethos.adobe.com_clusters.yaml | 10 ++ pkg/api/registry/v1/cluster_types.go | 10 ++ pkg/apiserver/docs/docs.go | 160 ++++++++---------- pkg/apiserver/docs/swagger.json | 160 ++++++++---------- pkg/apiserver/docs/swagger.yaml | 106 +++++------- 5 files changed, 196 insertions(+), 250 deletions(-) diff --git a/config/crd/bases/registry.ethos.adobe.com_clusters.yaml b/config/crd/bases/registry.ethos.adobe.com_clusters.yaml index f2889751..5aa7e855 100644 --- a/config/crd/bases/registry.ethos.adobe.com_clusters.yaml +++ b/config/crd/bases/registry.ethos.adobe.com_clusters.yaml @@ -84,6 +84,16 @@ spec: items: type: string type: array + capacity: + description: Capacity information updated by the Capacity Recommender + properties: + clusterCapacity: + type: integer + clusterProvisioning: + type: integer + lastUpdated: + type: string + type: object cloudProviderRegion: description: The cloud provider standard region type: string diff --git a/pkg/api/registry/v1/cluster_types.go b/pkg/api/registry/v1/cluster_types.go index c82ecdbe..218b2040 100644 --- a/pkg/api/registry/v1/cluster_types.go +++ b/pkg/api/registry/v1/cluster_types.go @@ -113,6 +113,9 @@ type ClusterSpec struct { // Cluster tags that were applied Tags map[string]string `json:"tags,omitempty"` + + // Capacity cluster information + Capacity Capacity `json:"capacity,omitempty"` } // Offering the cluster is meant for @@ -246,6 +249,13 @@ type K8sInfraRelease struct { Release string `json:"release"` } +// Capacity cluster information +type Capacity struct { + LastUpdated string `json:"lastUpdated"` + ClusterCapacity int `json:"clusterCapacity"` + ClusterProvisioning int `json:"clusterProvisioning"` +} + // ClusterStatus defines the observed state of Cluster type ClusterStatus struct { // Send/Receive Errors diff --git a/pkg/apiserver/docs/docs.go b/pkg/apiserver/docs/docs.go index 8a7af87b..12baa76d 100644 --- a/pkg/apiserver/docs/docs.go +++ b/pkg/apiserver/docs/docs.go @@ -77,7 +77,7 @@ const docTemplate = `{ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v1.clusterList" + "$ref": "#/definitions/v1.clusterList" } }, "500": { @@ -186,7 +186,7 @@ const docTemplate = `{ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/pkg_apiserver_web_handler_v2.clusterList" + "$ref": "#/definitions/v2.clusterList" } }, "500": { @@ -259,98 +259,6 @@ const docTemplate = `{ } } }, - "github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v1.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, - "github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v2.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, - "pkg_apiserver_web_handler_v1.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, - "pkg_apiserver_web_handler_v2.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, "v1.APIServer": { "type": "object", "properties": { @@ -387,6 +295,20 @@ const docTemplate = `{ } } }, + "v1.Capacity": { + "type": "object", + "properties": { + "clusterCapacity": { + "type": "integer" + }, + "clusterProvisioning": { + "type": "integer" + }, + "lastUpdated": { + "type": "string" + } + } + }, "v1.ClusterSpec": { "type": "object", "properties": { @@ -416,6 +338,10 @@ const docTemplate = `{ "type": "string" } }, + "capacity": { + "description": "Capacity cluster information", + "$ref": "#/definitions/v1.Capacity" + }, "cloudProviderRegion": { "description": "The cloud provider standard region\n+kubebuilder:validation:Required", "type": "string" @@ -665,6 +591,52 @@ const docTemplate = `{ "type": "string" } } + }, + "v1.clusterList": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.ClusterSpec" + } + }, + "itemsCount": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "more": { + "type": "boolean" + }, + "offset": { + "type": "integer" + } + } + }, + "v2.clusterList": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.ClusterSpec" + } + }, + "itemsCount": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "more": { + "type": "boolean" + }, + "offset": { + "type": "integer" + } + } } }, "securityDefinitions": { diff --git a/pkg/apiserver/docs/swagger.json b/pkg/apiserver/docs/swagger.json index 22e08ce4..4e92b4cf 100644 --- a/pkg/apiserver/docs/swagger.json +++ b/pkg/apiserver/docs/swagger.json @@ -74,7 +74,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v1.clusterList" + "$ref": "#/definitions/v1.clusterList" } }, "500": { @@ -183,7 +183,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/pkg_apiserver_web_handler_v2.clusterList" + "$ref": "#/definitions/v2.clusterList" } }, "500": { @@ -256,98 +256,6 @@ } } }, - "github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v1.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, - "github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v2.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, - "pkg_apiserver_web_handler_v1.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, - "pkg_apiserver_web_handler_v2.clusterList": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1.ClusterSpec" - } - }, - "itemsCount": { - "type": "integer" - }, - "limit": { - "type": "integer" - }, - "more": { - "type": "boolean" - }, - "offset": { - "type": "integer" - } - } - }, "v1.APIServer": { "type": "object", "properties": { @@ -384,6 +292,20 @@ } } }, + "v1.Capacity": { + "type": "object", + "properties": { + "clusterCapacity": { + "type": "integer" + }, + "clusterProvisioning": { + "type": "integer" + }, + "lastUpdated": { + "type": "string" + } + } + }, "v1.ClusterSpec": { "type": "object", "properties": { @@ -413,6 +335,10 @@ "type": "string" } }, + "capacity": { + "description": "Capacity cluster information", + "$ref": "#/definitions/v1.Capacity" + }, "cloudProviderRegion": { "description": "The cloud provider standard region\n+kubebuilder:validation:Required", "type": "string" @@ -662,6 +588,52 @@ "type": "string" } } + }, + "v1.clusterList": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.ClusterSpec" + } + }, + "itemsCount": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "more": { + "type": "boolean" + }, + "offset": { + "type": "integer" + } + } + }, + "v2.clusterList": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.ClusterSpec" + } + }, + "itemsCount": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "more": { + "type": "boolean" + }, + "offset": { + "type": "integer" + } + } } }, "securityDefinitions": { diff --git a/pkg/apiserver/docs/swagger.yaml b/pkg/apiserver/docs/swagger.yaml index 3547f922..c3374097 100644 --- a/pkg/apiserver/docs/swagger.yaml +++ b/pkg/apiserver/docs/swagger.yaml @@ -6,66 +6,6 @@ definitions: additionalProperties: true type: object type: object - github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v1.clusterList: - properties: - items: - items: - $ref: '#/definitions/v1.ClusterSpec' - type: array - itemsCount: - type: integer - limit: - type: integer - more: - type: boolean - offset: - type: integer - type: object - github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v2.clusterList: - properties: - items: - items: - $ref: '#/definitions/v1.ClusterSpec' - type: array - itemsCount: - type: integer - limit: - type: integer - more: - type: boolean - offset: - type: integer - type: object - pkg_apiserver_web_handler_v1.clusterList: - properties: - items: - items: - $ref: '#/definitions/v1.ClusterSpec' - type: array - itemsCount: - type: integer - limit: - type: integer - more: - type: boolean - offset: - type: integer - type: object - pkg_apiserver_web_handler_v2.clusterList: - properties: - items: - items: - $ref: '#/definitions/v1.ClusterSpec' - type: array - itemsCount: - type: integer - limit: - type: integer - more: - type: boolean - offset: - type: integer - type: object v1.APIServer: properties: certificateAuthorityData: @@ -95,6 +35,15 @@ definitions: +kubebuilder:validation:Required type: string type: object + v1.Capacity: + properties: + clusterCapacity: + type: integer + clusterProvisioning: + type: integer + lastUpdated: + type: string + type: object v1.ClusterSpec: properties: accountId: @@ -123,6 +72,9 @@ definitions: items: type: string type: array + capacity: + $ref: '#/definitions/v1.Capacity' + description: Capacity cluster information cloudProviderRegion: description: |- The cloud provider standard region @@ -357,6 +309,36 @@ definitions: +kubebuilder:validation:Required type: string type: object + v1.clusterList: + properties: + items: + items: + $ref: '#/definitions/v1.ClusterSpec' + type: array + itemsCount: + type: integer + limit: + type: integer + more: + type: boolean + offset: + type: integer + type: object + v2.clusterList: + properties: + items: + items: + $ref: '#/definitions/v1.ClusterSpec' + type: array + itemsCount: + type: integer + limit: + type: integer + more: + type: boolean + offset: + type: integer + type: object host: http://127.0.0.1:8080 info: contact: {} @@ -402,7 +384,7 @@ paths: "200": description: OK schema: - $ref: '#/definitions/github.com_adobe_cluster-registry_pkg_apiserver_web_handler_v1.clusterList' + $ref: '#/definitions/v1.clusterList' "500": description: Internal Server Error schema: @@ -473,7 +455,7 @@ paths: "200": description: OK schema: - $ref: '#/definitions/pkg_apiserver_web_handler_v2.clusterList' + $ref: '#/definitions/v2.clusterList' "500": description: Internal Server Error schema: