This commit is contained in:
2024-04-16 14:26:06 +03:00
parent bc264c4d90
commit e7c968797b
298 changed files with 11066 additions and 398 deletions

View File

@@ -8,8 +8,6 @@ import (
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
// type Params []string
// CreateRequest struct to create kubernetes cluster
type CreateRequest struct {
// Name of Kubernetes cluster
@@ -74,7 +72,7 @@ type CreateRequest struct {
// Master node RAM volume in MB
// Required: false
MasterRAM uint `url:"masterRam,omitempty" json:"masterRam,omitempty"`
MasterRAM uint64 `url:"masterRam,omitempty" json:"masterRam,omitempty"`
// Master node boot disk size in GB If 0 is specified, size is defined by the OS image size
// Required: false
@@ -90,7 +88,7 @@ type CreateRequest struct {
// Worker node RAM volume in MB
// Required: false
WorkerRAM uint `url:"workerRam,omitempty" json:"workerRam,omitempty"`
WorkerRAM uint64 `url:"workerRam,omitempty" json:"workerRam,omitempty"`
// Worker node boot disk size in GB. If 0 is specified, size is defined by the OS image size
// Required: false
@@ -111,7 +109,7 @@ type CreateRequest struct {
// Custom sysctl values for Load Balancer instance. Applied on boot
// Required: false
LbSysctlParams string `url:"lbSysctlParams,omitempty" json:"lbSysctlParams,omitempty"`
LbSysctlParams []map[string]interface{} `url:"lbSysctlParams,omitempty" json:"lbSysctlParams,omitempty"`
// Use Highly Available schema for LB deploy
// Required: false
@@ -166,10 +164,16 @@ type CreateRequest struct {
OidcCertificate string `url:"oidcCertificate,omitempty" json:"oidcCertificate,omitempty"`
}
// type wrapperCreateRequest struct {
// CreateRequest
// Params []string `url:"lbSysctlParams,omitempty"`
// }
// GetRAM returns RAM field values
func (r CreateRequest) GetRAM() map[string]uint64 {
res := make(map[string]uint64, 2)
res["MasterRAM"] = r.MasterRAM
res["WorkerRAM"] = r.WorkerRAM
return res
}
// Create creates a new Kubernetes cluster in the specified Resource Group
func (k8s K8S) Create(ctx context.Context, req CreateRequest) (string, error) {
@@ -178,28 +182,6 @@ func (k8s K8S) Create(ctx context.Context, req CreateRequest) (string, error) {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
// var params []string
// if len(req.LbSysctlParams) != 0 {
// params = make([]string, 0, len(req.LbSysctlParams))
// for r := range req.LbSysctlParams {
// b, err := json.Marshal(req.LbSysctlParams[r])
// if err != nil {
// return "", err
// }
// params = append(params, string(b))
// }
// } else {
// params = []string{"[]"}
// }
// reqWrapped := wrapperCreateRequest{
// CreateRequest: req,
// Params: params,
// }
url := "/cloudapi/k8s/create"
res, err := k8s.client.DecortApiCallMP(ctx, http.MethodPost, url, req)

View File

@@ -4,6 +4,8 @@ import (
"context"
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
// ListRequest struct to get list information K8S
@@ -44,6 +46,10 @@ type ListRequest struct {
// Required: false
IncludeDeleted bool `url:"includedeleted,omitempty" json:"includedeleted,omitempty"`
// Sort by one of supported fields, format +|-(field)
// Required: false
SortBy string `url:"sortBy,omitempty" json:"sortBy,omitempty" validate:"omitempty,sortBy"`
// Page number
// Required: false
Page uint64 `url:"page,omitempty" json:"page,omitempty"`
@@ -55,6 +61,7 @@ type ListRequest struct {
// List gets list of all kubernetes clusters the user has access to as a ListK8SClusters
func (k8s K8S) List(ctx context.Context, req ListRequest) (*ListK8SClusters, error) {
res, err := k8s.ListRaw(ctx, req)
if err != nil {
return nil, err
@@ -72,6 +79,11 @@ func (k8s K8S) List(ctx context.Context, req ListRequest) (*ListK8SClusters, err
// ListRaw gets list of all kubernetes clusters the user has access to as an array of bytes
func (k8s K8S) ListRaw(ctx context.Context, req ListRequest) ([]byte, error) {
if err := validators.ValidateRequest(req); err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/k8s/list"
res, err := k8s.client.DecortApiCall(ctx, http.MethodPost, url, req)

View File

@@ -4,6 +4,8 @@ import (
"context"
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
// ListDeletedRequest struct to get list of deleted kubernetes cluster
@@ -36,6 +38,10 @@ type ListDeletedRequest struct {
// Required: false
TechStatus string `url:"techStatus,omitempty" json:"techStatus,omitempty"`
// Sort by one of supported fields, format +|-(field)
// Required: false
SortBy string `url:"sortBy,omitempty" json:"sortBy,omitempty" validate:"omitempty,sortBy"`
// Page number
// Required: false
Page uint64 `url:"page,omitempty" json:"page,omitempty"`
@@ -47,6 +53,11 @@ type ListDeletedRequest struct {
// ListDeleted gets all deleted kubernetes clusters the user has access to
func (k8s K8S) ListDeleted(ctx context.Context, req ListDeletedRequest) (*ListK8SClusters, error) {
if err := validators.ValidateRequest(req); err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/k8s/listDeleted"
res, err := k8s.client.DecortApiCall(ctx, http.MethodPost, url, req)

View File

@@ -62,6 +62,16 @@ type WorkersGroupAddRequest struct {
UserData string `url:"userData,omitempty" json:"userData,omitempty"`
}
// GetRAM returns RAM field values
func (r WorkersGroupAddRequest) GetRAM() map[string]uint64 {
res := make(map[string]uint64, 1)
res["WorkerRAM"] = r.WorkerRAM
return res
}
// WorkersGroupAdd adds workers group to Kubernetes cluster
func (k8s K8S) WorkersGroupAdd(ctx context.Context, req WorkersGroupAddRequest) (uint64, error) {
err := validators.ValidateRequest(req)