v9.0.0
This commit is contained in:
98
pkg/cloudbroker/k8s/workers_group_add.go
Normal file
98
pkg/cloudbroker/k8s/workers_group_add.go
Normal file
@@ -0,0 +1,98 @@
|
||||
package k8s
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v9/internal/validators"
|
||||
)
|
||||
|
||||
// WorkersGroupAddRequest struct to add workers group
|
||||
type WorkersGroupAddRequest struct {
|
||||
// Kubernetes cluster ID
|
||||
// Required: true
|
||||
K8SID uint64 `url:"k8sId" json:"k8sId" validate:"required"`
|
||||
|
||||
// Worker group name
|
||||
// Required: true
|
||||
Name string `url:"name" json:"name" validate:"required"`
|
||||
|
||||
// ID of SEP to create boot disks for default worker nodes group.
|
||||
// Uses images SEP ID if not set
|
||||
// Required: false
|
||||
WorkerSEPID uint64 `url:"workerSepId,omitempty" json:"workerSepId,omitempty"`
|
||||
|
||||
// Pool to use if worker SEP ID is set, can be also empty if
|
||||
// needed to be chosen by system
|
||||
// Required: false
|
||||
WorkerSEPPool string `url:"workerSepPool,omitempty" json:"workerSepPool,omitempty"`
|
||||
|
||||
// List of strings with labels for worker group
|
||||
// i.e: ["label1=value1", "label2=value2"]
|
||||
// Required: false
|
||||
Labels []string `url:"labels,omitempty" json:"labels,omitempty"`
|
||||
|
||||
// List of strings with taints for worker group
|
||||
// i.e: ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
|
||||
// Required: false
|
||||
Taints []string `url:"taints,omitempty" json:"taints,omitempty"`
|
||||
|
||||
// List of strings with annotations for worker group
|
||||
// i.e: ["key1=value1", "key2=value2"]
|
||||
// Required: false
|
||||
Annotations []string `url:"annotations,omitempty" json:"annotations,omitempty"`
|
||||
|
||||
// Number of worker nodes to create
|
||||
// Required: false
|
||||
WorkerNum uint64 `url:"workerNum,omitempty" json:"workerNum,omitempty"`
|
||||
|
||||
// Worker node CPU count
|
||||
// Required: false
|
||||
WorkerCPU uint64 `url:"workerCpu,omitempty" json:"workerCpu,omitempty"`
|
||||
|
||||
// Worker node RAM volume in MB
|
||||
// Required: false
|
||||
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
|
||||
WorkerDisk uint64 `url:"workerDisk,omitempty" json:"workerDisk,omitempty"`
|
||||
|
||||
// Meta data for working group computes, format YAML "user_data": 1111
|
||||
// Required: false
|
||||
UserData string `url:"userData,omitempty" json:"userData,omitempty"`
|
||||
|
||||
// Type of the emulated system, Q35 or i440fx
|
||||
// Required: false
|
||||
Chipset string `url:"chipset,omitempty" json:"chipset,omitempty" validate:"omitempty,chipset"`
|
||||
}
|
||||
|
||||
// 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)
|
||||
if err != nil {
|
||||
return "", validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/k8s/workersGroupAdd"
|
||||
|
||||
res, err := k.client.DecortApiCall(ctx, http.MethodPost, url, req)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
result := strings.ReplaceAll(string(res), "\"", "")
|
||||
|
||||
return result, nil
|
||||
}
|
||||
Reference in New Issue
Block a user