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 K8S
type CreateRequest struct {
// Name of kubernetes cluster
@@ -29,7 +27,7 @@ type CreateRequest struct {
WorkerGroupName string `url:"workerGroupName" json:"workerGroupName" validate:"required,workerGroupName"`
// Network plugin
// Must be one of these values: flunnel, weavenet, calico
// Must be one of these values: flannel, weavenet, calico
// Required: true
NetworkPlugin string `url:"networkPlugin" json:"networkPlugin" validate:"required,networkPlugin"`
@@ -113,7 +111,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
@@ -168,40 +166,25 @@ type CreateRequest struct {
OidcCertificate string `url:"oidcCertificate,omitempty" json:"oidcCertificate,omitempty"`
}
// type wrapperCreateRequest struct {
// CreateRequest
// Params []string `url:"lbSysctlParams,omitempty"`
// }
// GetRAM returns RAM 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 (k K8S) Create(ctx context.Context, req CreateRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
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 := "/cloudbroker/k8s/create"
res, err := k.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 as a ListK8S struct
func (k K8S) List(ctx context.Context, req ListRequest) (*ListK8S, error) {
res, err := k.ListRaw(ctx, req)
if err != nil {
return nil, err
@@ -72,6 +79,12 @@ func (k K8S) List(ctx context.Context, req ListRequest) (*ListK8S, error) {
// ListRaw gets list of all kubernetes clusters as an array of bytes
func (k K8S) ListRaw(ctx context.Context, req ListRequest) ([]byte, error) {
err := validators.ValidateRequest(req)
if err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudbroker/k8s/list"
res, err := k.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"`
@@ -48,6 +54,11 @@ type ListDeletedRequest struct {
// ListDeleted gets all deleted kubernetes clusters
func (k K8S) ListDeleted(ctx context.Context, req ListDeletedRequest) (*ListK8S, error) {
err := validators.ValidateRequest(req)
if err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudbroker/k8s/listDeleted"
res, err := k.client.DecortApiCall(ctx, http.MethodPost, url, req)

View File

@@ -64,6 +64,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 (k K8S) WorkersGroupAdd(ctx context.Context, req WorkersGroupAddRequest) (string, error) {
err := validators.ValidateRequest(req)