콘텐츠로 이동

API Reference

Table of Contents

cluster_lcm.proto

common.proto

contract.proto

info.proto

ClusterLcmService

ClusterLcmService is a service to manage cluster's document.

CreateCluster

rpc CreateCluster(CreateClusterRequest) returns IDResponse

CreateCluster creates a Kubernetes cluster and returns cluster id

ScaleCluster

rpc ScaleCluster(ScaleClusterRequest) returns SimpleResponse

ScaleCluster scales Kubernetes cluster

DeleteCluster

rpc DeleteCluster(IDRequest) returns SimpleResponse

DeleteCluster deletes Kubernetes cluster

InstallAppGroups

rpc InstallAppGroups(InstallAppGroupsRequest) returns IDsResponse

InstallAppGroups installs app groups, returns an array of app group id

UninstallAppGroups

rpc UninstallAppGroups(UninstallAppGroupsRequest) returns IDsResponse

UninstallAppGroups uninstalls app groups.

Messages

CreateClusterRequest

CreateClusterRequest is a request to create a Kubernetes cluster

Field Type Description
contract_id string contract_id is a contract ID.
csp_id string csp_id is an ID of CSPInfo.
name string cluster_name is a cluster name defined by users
conf ClusterRawConf conf is a cluster configuration

InstallAppGroupsRequest

InstallAppGroupsRequest requests to install application groups on cluster

Field Type Description
app_groups repeated AppGroup apps are applications to install into target cluster.

ScaleClusterRequest

ScaleClusterRequest is a request to scale the number of nodes on the cluster

Field Type Description
cluster_id string cluster_id is Global Unique ID
master_replicas int32 master_replicas is the number of master node
worker_replicas int32 worker_replicas is the number of worker node

UninstallAppGroupsRequest

UninstallAppGroupsRequest is a request to delete applications on the Cluster

Field Type Description
cluster_id string cluster_id is Global Unique ID
app_group_ids repeated string app_group_ids is a array of app_group_id.

Messages

AppGroup

AppGroup represents an application group such as LMA, ServiceMesh.

Field Type Description
app_group_id string app_group_id for the application group
app_group_name string app_group_name is a human-readable name.
type AppGroupType type (LMA/SERVICE_MESH/LMA_EFK)
cluster_id string cluster_id is a cluster ID to install application.
workflow_id string workflow_id is a argo workflow id
status AppGroupStatus a status of the application eg) Installing/Running/Error
status_desc string a status description of the application
external_label string external_lable is the label used for globally unique identification
created_at google.protobuf.Timestamp created_at is a creatioin timestamp for the application
updated_at google.protobuf.Timestamp updated_at is a timestamp for the trigger of status change

Application

Application represents each Application.

Field Type Description
app_id string id for the application
type AppType type (Prometheus/Grafana/...)
app_group_id string app_group_id is an applicagion group ID.
endpoint string endpoint is a endpoint string.
metadata string metadata is a unstructured information for application.
created_at google.protobuf.Timestamp created_at is a creatioin timestamp for the application
updated_at google.protobuf.Timestamp updated_at is a timestamp for the trigger of status change

Cluster

Cluster represents each Cluster.

Field Type Description
id string is is a unique id for the cluster
name string name is a cluster name for users
created_at google.protobuf.Timestamp created_at is a creatioin timestamp for the cluster
updated_at google.protobuf.Timestamp updated_at is a timestamp for the trigger of status change
workflow_id string workflow_id is a argo workflow id
status ClusterStatus status is a status of the cluste eg) Installing/Running/Error
status_desc string status_desc is a detail description of the cluster status
contract_id string contract_id is a contract ID.
csp_id string csp_id is an ID of CSPInfo.
conf ClusterConf conf is a kubernete cluster configuration
app_groups repeated AppGroup app_groups is a array of applications
kubeconfig string kubeconfig is a default kubeconfig for the cluster

ClusterConf

ClusterConf represents a Kubernetes cluster configuration.

Field Type Description
ssh_key_name string name of user ssh key for ec2 instance connection
region string region is a AWS region name
num_of_az int32 number of AZ in selected region
machine_type string type of the worker machine
min_size_per_az int32 minimum number of worker node that can be scaled in
max_size_per_az int32 maximum number of worker node that can be scaled out

ClusterRawConf

ClusterRawConf represents raw data for K8S cluster configuration.

Field Type Description
ssh_key_name string name of user ssh key for ec2 instance connection
region string region is a AWS region name
num_of_az int32 number of AZ in selected region
machine_type string type of the worker machine
machine_replicas int32 number of replicas for worker machine

Error

Error represents a detailed error for gRPC request.

Field Type Description
msg string msg is an error message.

IDRequest

IDRequest is a request with a id

Field Type Description
id string id is a id to ask

IDResponse

IDResponse returns a id

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
id string id is a id

IDsResponse

IDsResponse returns arry of ids

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
ids repeated string ids is a array of ids

KeycloakInfo

KeycloakInfo represents a keycloak info.

Field Type Description
cluster_id string Id for cluster
realm string Realm
client_id string Client Id
secret string Secret key
private_key string Private key

SimpleResponse

SimpleResponse returns a result for the request (the simplest return type)

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.

Enums

AppGroupStatus

AppGroupStatus represents a status of the application group

Name Number Description
APP_GROUP_UNSPECIFIED 0 none
APP_GROUP_INSTALLING 1 none
APP_GROUP_RUNNING 2 none
APP_GROUP_DELETING 4 none
APP_GROUP_DELETED 5 none
APP_GROUP_ERROR 6 none

AppGroupType

AppGroupType is types of app group

Name Number Description
APP_TYPE_UNSPECIFIED 0 none
LMA 1 none
SERVICE_MESH 2 none
LMA_EFK 3 none

AppType

AppType is a type of application.

Name Number Description
EP_UNSPECIFIED 0 none
THANOS 1 none
PROMETHEUS 2 none
GRAFANA 3 none
KIALI 4 none
KIBANA 5 none
ELASTICSERCH 6 none
CLOUD_CONSOLE 7 none
HORIZON 8 none
JAEGER 9 none
KUBERNETES_DASHBOARD 10 none

ClusterStatus

ClusterStatus represents a status of the cluster

Name Number Description
UNSPECIFIED 0 none
INSTALLING 1 none
RUNNING 2 none
DELETING 4 none
DELETED 5 none
ERROR 6 none

Code

Code is a response code for gRpc request.

Name Number Description
OK_UNSPECIFIED 0 none
CANCELLED 1 none
UNKNOWN 2 none
INVALID_ARGUMENT 3 none
DEADLINE_EXCEEDED 4 none
NOT_FOUND 5 none
ALREADY_EXISTS 6 none
PERMISSION_DENIED 7 none
UNAUTHENTICATED 16 none
RESOURCE_EXHAUSTED 8 none
FAILED_PRECONDITION 9 none
ABORTED 10 none
OUT_OF_RANGE 11 none
UNIMPLEMENTED 12 none
INTERNAL 13 none
UNAVAILABLE 14 none

CspType

CspType is types of cloud service provider

Name Number Description
CSPTYPE_UNSPECIFIED 0 none
AWS 1 none
GCP 2 none
AZURE 3 none

ContractService

ContractService is a service to manage contract's document.

CreateContract

rpc CreateContract(CreateContractRequest) returns CreateContractResponse

CreateContract creates new contract.

UpdateQuota

rpc UpdateQuota(UpdateQuotaRequest) returns UpdateQuotaResponse

UpdateQuota updates quota of the contract.

UpdateServices

rpc UpdateServices(UpdateServicesRequest) returns UpdateServicesResponse

UpdateServices updates list of available services of the contract.

GetContract

rpc GetContract(GetContractRequest) returns GetContractResponse

GetContract returns a contract if exists.

GetDefaultContract

rpc GetDefaultContract(.google.protobuf.Empty) returns GetContractResponse

GetDefaultContract returns a default contract.

GetContracts

rpc GetContracts(GetContractsRequest) returns GetContractsResponse

Getcontracts return a list of contract.

GetQuota

rpc GetQuota(GetQuotaRequest) returns GetQuotaResponse

GetQuota returns a quota for the contract.

GetAvailableServices

rpc GetAvailableServices(GetAvailableServicesRequest) returns GetAvailableServicesResponse

GetAvailableServices returns list of available services for the contract.

Messages

Contract

Contract is a contract information.

Field Type Description
contractor_name string contractor_name is a name of contractor
contract_id string contract_id is a global unique ID created by CBP
quota ContractQuota quota is a resource quota for cpu, memory, storage and so on.
available_services repeated string availavle_services is a list of services constomer purchased.
csp_id string csp_id is a global unique ID created by the info service.
updated_at google.protobuf.Timestamp updated_at is a timestamp last updated.
created_at google.protobuf.Timestamp created_at is a timestamp created.

ContractQuota

ContractQuota is a resource quota for total usage in clusters.

Field Type Description
cpu sint64 cpu unit(GB) from 10 to 10000
memory sint64 memory unit(MB) from 40 to 40000
block sint64 block storage(MB) from 0 to 256000000
block_ssd sint64 block ssd storage(MB) from 0 to 256000000
fs sint64 filesystem (MB) from 0 to 256000000
fs_ssd sint64 SSD filesystem (MB) from 0 to 256000000

CreateContractRequest

CreateContractRequest is a request to create new contract to the contract service.

Field Type Description
contractor_name string contractor_name is a name of contractor
quota ContractQuota quota is a resource quota for this contract
available_services repeated string availavle_services is a list of services constomer purchased.
csp_name string csp_name is a name of csp for user.
csp_auth string csp_auth is an authentication information for IaaS Provider.

CreateContractResponse

CreateContractResponse is a response to the CreateContractRequest request from the contract service.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
csp_id string csp_id is a global unique ID created by the info service.
contract_id string contract_id is a global unique ID created by the contract service.

GetAvailableServicesRequest

GetAvailableServicesRequest is a request to get available service list for the specific contract.

Field Type Description
contract_id string contract_id is a global unique ID created by the contract service.

GetAvailableServicesResponse

GetAvailableServicesResponse is a response to the GetAvailableServicesRequest from the contract service.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
avaiable_service_apps repeated string availavle_services is a list of services constomer purchased.

GetContractRequest

GetContractRequest is a request to inquire contract to the contract service.

Field Type Description
contract_id string contract_id is a global unique ID created by CBP

GetContractResponse

GetContractResponse is a response to the GetContractRequest from the contract service.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
contract Contract contract is a contract information.

GetContractsRequest

GetContractsRequest is a request to inquire all contracts to the contract service.

GetContractsResponse

GetContractsResponse is a response to the GetContractsRequest from the contract service.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
contracts repeated Contract contracts is a list of contracts.

GetQuotaRequest

GetQuotaRequest is a request to inquire quota information of the specific contract.

Field Type Description
contract_id string contract_id is a global unique ID created by CBP

GetQuotaResponse

GetQuotaResponse is a response to the GetQuotaRequest from the contract service.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
quota ContractQuota quota is a resource quota for cpu, memory, storage and so on.

UpdateQuotaRequest

UpdateQuotaRequest is a request to update resource quota for specific contract.

Field Type Description
contract_id string contract_id is a global unique ID created by CBP
quota ContractQuota quota is a resource quota for cpu, memory, storage and so on.

UpdateQuotaResponse

UpdateQuotaResponse is a response to the UpdateQuotaRequest from the contract service

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
contract_id string contract_id is a global unique ID created by CBP
prev_quota ContractQuota prev_quota is a quota before updating quota.
current_quota ContractQuota current_quota is a quota after updating.

UpdateServicesRequest

UpdateServicesRequest is a request to update available service list to the contract service. The services currently provided are as below: - LMA(Logging Monitoring Alert) - service-mesh (Istio, jaeger, kiali)

Field Type Description
contract_id string contract_id is a global unique ID created by CBP
available_services repeated string availavle_services is a list of services constomer purchased.

UpdateServicesResponse

UpdateServicesResponse is a response to the UpdateServicesRequest from the contract service.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
contract_id string contract_id is a global unique ID created by CBP
prev_services repeated string prev_services is a list of services before updating.
current_services repeated string current_services is a list of services after updating.

AppInfoService

AppInfoService is a service to manage Application info document.

CreateAppGroup

rpc CreateAppGroup(CreateAppGroupRequest) returns IDResponse

CreateAppGroup creates a new application group.

GetAppGroupsByClusterID

rpc GetAppGroupsByClusterID(IDRequest) returns GetAppGroupsResponse

GetAppGroupsByClusterID gets an array of app infos By the clusterID

GetAppGroups

rpc GetAppGroups(GetAppGroupsRequest) returns GetAppGroupsResponse

GetAppGroups gets an array of app infos by name & type in the cluster

GetAppGroup

rpc GetAppGroup(GetAppGroupRequest) returns GetAppGroupResponse

GetAppGroup gets an application group by application group ID

UpdateAppGroupStatus

rpc UpdateAppGroupStatus(UpdateAppGroupStatusRequest) returns SimpleResponse

UpdateAppGroupStatus updates a status of an application group

DeleteAppGroup

rpc DeleteAppGroup(DeleteAppGroupRequest) returns SimpleResponse

DeleteAppGroup deletes an app group.

GetAppsByAppGroupID

rpc GetAppsByAppGroupID(IDRequest) returns GetAppsResponse

GetAppsByClusterID gets applications by application group id.

GetApps

rpc GetApps(GetAppsRequest) returns GetAppsResponse

GetApps gets applications by application type and application id.

UpdateApp

rpc UpdateApp(UpdateAppRequest) returns SimpleResponse

UpdateApp updates application data.

ClusterInfoService

ClusterInfoService is a service to manage cluster info document.

AddClusterInfo

rpc AddClusterInfo(AddClusterInfoRequest) returns IDResponse

AddClusterInfo adds new cluster information

UpdateClusterConf

rpc UpdateClusterConf(UpdateClusterConfRequest) returns SimpleResponse

UpdateClusterConf updates the cluster configuration information

GetCluster

rpc GetCluster(GetClusterRequest) returns GetClusterResponse

GetCluster gets cluster info for the id of the cluster

GetClusters

rpc GetClusters(GetClustersRequest) returns GetClustersResponse

GetClusters get every clusters on the mutlcluster

UpdateClusterStatus

rpc UpdateClusterStatus(UpdateClusterStatusRequest) returns SimpleResponse

UpdateClusterStatus update Status of the Cluster

CspInfoService

CspInfoService is a service to manage CSP info document.

CreateCSPInfo

rpc CreateCSPInfo(CreateCSPInfoRequest) returns IDResponse

CreateCSPInfo create new CSP Info for the contract id.

GetCSPInfo

rpc GetCSPInfo(IDRequest) returns GetCSPInfoResponse

GetCSPInfo returns an csp info by csp id.

GetCSPIDs

rpc GetCSPIDs(.google.protobuf.Empty) returns IDsResponse

GetCSPIDs returns all CSP ids.

GetCSPIDsByContractID

rpc GetCSPIDsByContractID(IDRequest) returns IDsResponse

GetCSPIDsByContractID returns the CSP ids by the contract id.

UpdateCSPAuth

rpc UpdateCSPAuth(UpdateCSPAuthRequest) returns SimpleResponse

UpdateCSPInfo updates an authentication config for CSP.

GetCSPAuth

rpc GetCSPAuth(IDRequest) returns GetCSPAuthResponse

GetCSPAuth returns an authentication info by csp id.

KeycloakInfoService

KeycloakInfoService is a service to manage Keycloak info.

CreateKeycloakInfo

rpc CreateKeycloakInfo(CreateKeycloakInfoRequest) returns IDResponse

CreateKeycloakInfo creates a new keycloak info.

GetKeycloakInfoByClusterId

rpc GetKeycloakInfoByClusterId(IDRequest) returns GetKeycloakInfoResponse

GetKeycloakInfoByClusterId gets an array of keycloak infos By the clusterID

UpdateKeycloakInfo

rpc UpdateKeycloakInfo(IDRequest) returns SimpleResponse

UpdateKeycloakInfo updates a status of an keycloak info

DeleteKeycloakInfo

rpc DeleteKeycloakInfo(IDRequest) returns SimpleResponse

DeleteKeycloakInfo deletes an keycloak info.

Messages

AddClusterInfoRequest

AddClusterInfoRequest is used to add a new cluster info

Field Type Description
contract_id string contract_id is a contract ID.
csp_id string csp_id is an ID of CSPInfo.
name string cluster_name is a cluster name defined by users
conf ClusterConf conf is a cluster configuration

CreateAppGroupRequest

CreateAppGroupRequest is used to create a new app group.

Field Type Description
cluster_id string cluster_id is a cluster ID
app_group AppGroup app_group is an application group

CreateCSPInfoRequest

CreateCSPInfoRequest is used to create a new CSP Info

Field Type Description
contract_id string contract_id is Global Unique MultiCluster ID
csp_name string csp_name is a name for users
auth string auth is an optional. This is an authentication info for IaaS.
csp_type CspType csp_type is a type of cloud service provider.

CreateKeycloakInfoRequest

CreateKeycloakInfoRequest is used to create a new keycloak Info

Field Type Description
cluster_id string Id for cluster
realm string Realm
client_id string Client Id
secret string Secret
private_key string Private key

DeleteAppGroupRequest

DeleteAppGroupRequest is used to delete app group.

Field Type Description
app_group_id string app_group_id is an app group id to delete.

GetAppGroupRequest

GetAppGroupRequest returns an array of application groups on the cluster

Field Type Description
app_group_id string app_group_id is an id of the application group

GetAppGroupResponse

GetAppGroupResponse contains an array of application groups.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
app_group AppGroup app_group is an application group

GetAppGroupsRequest

GetAppGroupsRequest is used to get an array of application infos on cluster

Field Type Description
app_group_name string app_name is a name of the application
type AppGroupType app_type is a type of the application

GetAppGroupsResponse

GetAppGroupsResponse contains an array of application infos.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
app_groups repeated AppGroup app_groups is an array of applications

GetAppsRequest

GetAppsRequest returns an array of applications

Field Type Description
app_group_id string app_group_id is a name of the application
type AppType app_type is a type of the application

GetAppsResponse

GetAppsResponse returns an array of applications.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
apps repeated Application app_groups is an array of applications

GetCSPAuthResponse

GetCSPAuthResponse is used to get an authentication information by csp id.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
auth string auth is an authentication info stiringified in JSON.

GetCSPInfoResponse

GetCSPInfoResponse is used to get info of csp

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
contract_id string contract_id is a contract ID.
csp_name string csp_name is a name for users
auth string auth is an optional. This is an authentication info for IaaS.
csp_type CspType csp_type is a type of cloud service provider.

GetClusterRequest

GetClusterRequest is used to get info of MultiCluster to correspond with id

Field Type Description
cluster_id string cluster_id is a cluster ID

GetClusterResponse

GetClusterResponse contains a cluster info.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
cluster Cluster cluster is info for the cluster

GetClustersRequest

GetClustersRequest returns a list of clusters in specific CSP.

Field Type Description
csp_id string csp_id is a Global Unique ID
contract_id string Unique contract ID

GetClustersResponse

GetClustersResponse contains an array of cluster infos.

Field Type Description
code Code code is a response code.
error Error error is a detailed error message.
clusters repeated Cluster cluster is info. for the cluster

GetKeycloakInfoResponse

GetKeycloakInfoResponse returns an array of keycloak infos

Field Type Description
code Code code is a response code.
error Error orror is a detailed error message.
keycloak_infos repeated KeycloakInfo keycloakInfos is a detailed keycloak info.

UpdateAppGroupStatusRequest

UpdateAppGroupStatusRequest is used to change the status of the app

Field Type Description
app_group_id string app_group_id is the application group id to change the status
status AppGroupStatus status is a AppStatus of the application
status_desc string status_desc is a detail message of cluster status.
workflow_id string workflow_id is a argo workflow ID(name)

UpdateAppRequest

UpdateAppRequest updates an information of application such as endpoints.

Field Type Description
app_group_id string app_group_id is the application group id.
app_type AppType app_type is a type of the application
endpoint string endpoints is an endpoint string.
metadata string metadata is an unstructured metadata for application.

UpdateCSPAuthRequest

UpdateCSPAuthRequest updates an authenticationg information for CSP.

Field Type Description
csp_id string csp_id is .
auth string auth is an authentication info to update.

UpdateClusterConfRequest

UpdateClusterConfRequest is used to update kubernetes cluster configuration to correspond with id

Field Type Description
cluster_id string cluster_id is a cluster ID
conf ClusterConf conf is a kubernetes cluster configuration

UpdateClusterStatusRequest

UpdateClusterStatusRequest is used to change status of the cluster

Field Type Description
cluster_id string cluster_id is a cluster ID
status ClusterStatus status is the clusterstatus to be changed
status_desc string status_desc is a detail message of cluster status.
workflow_id string workflow_id is a argo workflow ID(name)
맨위로