Skip to content

Commit

Permalink
Merge pull request #1582 from sykim-etri/feat-add-recommend-k8scluster
Browse files Browse the repository at this point in the history
Seamless K8s Cluster Provisioning Support
  • Loading branch information
seokho-son committed Jun 7, 2024
2 parents 6c9db65 + b70eccb commit 54405c8
Show file tree
Hide file tree
Showing 10 changed files with 1,137 additions and 0 deletions.
80 changes: 80 additions & 0 deletions assets/k8sclusterinfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Configuration for Cluster(Kubernetes) of Cloud Service Providers (CSPs)
# This file is used to define the feature of clusters

# The file is in YAML format and contains the following fields:
# k8scluster: Top level key
# <csp>: Name of the CSP
# nodegroupsWithCluster:
# version:
# - region: [region1, region2, all(special keyword)]

k8scluster:
nhncloud:
nodegroupsWithCluster: true
version:
- region: [kr1, kr2]
available:
- name: 1.28
id: 1.28.9-aliyun.1
- name: 1.26
id: 1.26.15-aliyun.1
- name: 1.24
id: 1.24.6-aliyun.1
- region: [jp1]
nodeImage:
- region: [kr1]
available:
- name: default
id: default
- name: aliyun 3.9
id: aliyun_3_9_x64_20G_alibase_20231219.vhd
- region: [kr2]
available:
- name: default
id: default
- name: aliyun 3.9
id: aliyun_3_9_x64_20G_alibase_20231219.vhd
- region: [jp1]
rootDisk:
- region: [all]
type:
- name: default
id: default
- name: basic
id: CLOUD_BASIC
size:
min: 10
max: 40
alibaba:
nodegroupsWithCluster: true
version:
- region: [all]
available:
- name: 1.28
id: 1.28.9-aliyun.1
- name: 1.26
id: 1.26.15-aliyun.1
- name: 1.24
id: 1.24.6-aliyun.1
nodeImage:
- region: [eu-west-1]
#configurable: true
available:
- name: default
id: default
- name: aliyun 3.9
id: aliyun_3_9_x64_20G_alibase_20231219.vhd
- region: [eu-west-2,kr2]
rootDisk:
- region: [eu-west-1]
type:
#configurable: true
- name: default
id: default
- name: basic
id: CLOUD_BASIC
size:
#configurable: true
min: 10
max: 40

275 changes: 275 additions & 0 deletions src/api/rest/docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,110 @@ const docTemplate = `{
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/availableK8sClusterNodeImage": {
"get": {
"description": "Get available kubernetes cluster node image",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"[Infra resource] Cluster management"
],
"summary": "Get available kubernetes cluster node image",
"operationId": "GetAvailableK8sClusterNodeImage",
"parameters": [
{
"type": "string",
"description": "Name of the CSP to retrieve",
"name": "providerName",
"in": "query",
"required": true
},
{
"type": "string",
"description": "Name of region to retrieve",
"name": "regionName",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/common.K8sClusterNodeImageDetailAvailable"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/common.SimpleMsg"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/common.SimpleMsg"
}
}
}
}
},
"/availableK8sClusterVersion": {
"get": {
"description": "Get available kubernetes cluster version",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"[Infra resource] Cluster management"
],
"summary": "Get available kubernetes cluster version",
"operationId": "GetAvailableK8sClusterVersion",
"parameters": [
{
"type": "string",
"description": "Name of the CSP to retrieve",
"name": "providerName",
"in": "query",
"required": true
},
{
"type": "string",
"description": "Name of region to retrieve",
"name": "regionName",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/common.K8sClusterVersionDetailAvailable"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/common.SimpleMsg"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/common.SimpleMsg"
}
}
}
}
},
"/cloudInfo": {
"get": {
"description": "Get cloud information",
Expand Down Expand Up @@ -577,6 +681,42 @@ const docTemplate = `{
}
}
},
"/k8sClusterInfo": {
"get": {
"description": "Get kubernetes cluster information",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"[Admin] Multi-Cloud environment configuration"
],
"summary": "Get kubernetes cluster information",
"operationId": "GetK8sClusterInfo",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/common.K8sClusterInfo"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/common.SimpleMsg"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/common.SimpleMsg"
}
}
}
}
},
"/loadCommonResource": {
"get": {
"description": "Load Common Resources from internal asset files (Spec, Image)",
Expand Down Expand Up @@ -8933,6 +9073,141 @@ const docTemplate = `{
"common.JSONResult": {
"type": "object"
},
"common.K8sClusterDetail": {
"type": "object",
"properties": {
"node_images": {
"type": "array",
"items": {
"$ref": "#/definitions/common.K8sClusterNodeImageDetail"
}
},
"nodegroups_with_cluster": {
"type": "boolean"
},
"root_disks": {
"type": "array",
"items": {
"$ref": "#/definitions/common.K8sClusterRootDiskDetail"
}
},
"versions": {
"type": "array",
"items": {
"$ref": "#/definitions/common.K8sClusterVersionDetail"
}
}
}
},
"common.K8sClusterInfo": {
"type": "object",
"properties": {
"k8s_cluster": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/common.K8sClusterDetail"
}
}
}
},
"common.K8sClusterNodeImageDetail": {
"type": "object",
"properties": {
"availables": {
"type": "array",
"items": {
"$ref": "#/definitions/common.K8sClusterNodeImageDetailAvailable"
}
},
"region": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"common.K8sClusterNodeImageDetailAvailable": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"common.K8sClusterRootDiskDetail": {
"type": "object",
"properties": {
"region": {
"type": "array",
"items": {
"type": "string"
}
},
"size": {
"$ref": "#/definitions/common.K8sClusterRootDiskDetailSize"
},
"type": {
"type": "array",
"items": {
"$ref": "#/definitions/common.K8sClusterRootDiskDetailType"
}
}
}
},
"common.K8sClusterRootDiskDetailSize": {
"type": "object",
"properties": {
"max": {
"type": "integer"
},
"min": {
"type": "integer"
}
}
},
"common.K8sClusterRootDiskDetailType": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"common.K8sClusterVersionDetail": {
"type": "object",
"properties": {
"availables": {
"type": "array",
"items": {
"$ref": "#/definitions/common.K8sClusterVersionDetailAvailable"
}
},
"region": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"common.K8sClusterVersionDetailAvailable": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"common.KeyValue": {
"type": "object",
"properties": {
Expand Down
Loading

0 comments on commit 54405c8

Please sign in to comment.