feat: complete node pool api, sdk and ui

Signed-off-by: allanice001 <allanice001@gmail.com>
This commit is contained in:
allanice001
2025-11-08 10:22:45 +00:00
parent c478a8d10f
commit 334df457ce
130 changed files with 19675 additions and 187 deletions

View File

@@ -0,0 +1,46 @@
package dto
import "github.com/glueops/autoglue/internal/common"
type NodeRole string
const (
NodeRoleMaster NodeRole = "master"
NodeRoleWorker NodeRole = "worker"
)
type CreateNodePoolRequest struct {
Name string `json:"name"`
Role NodeRole `json:"role" enums:"master,worker" swaggertype:"string"`
}
type UpdateNodePoolRequest struct {
Name *string `json:"name"`
Role *NodeRole `json:"role" enums:"master,worker" swaggertype:"string"`
}
type NodePoolResponse struct {
common.AuditFields
Name string `json:"name"`
Role NodeRole `json:"role" enums:"master,worker" swaggertype:"string"`
Servers []ServerResponse `json:"servers"`
Annotations []AnnotationResponse `json:"annotations"`
Labels []LabelResponse `json:"labels"`
Taints []TaintResponse `json:"taints"`
}
type AttachServersRequest struct {
ServerIDs []string `json:"server_ids"`
}
type AttachTaintsRequest struct {
TaintIDs []string `json:"taint_ids"`
}
type AttachLabelsRequest struct {
LabelIDs []string `json:"label_ids"`
}
type AttachAnnotationsRequest struct {
AnnotationIDs []string `json:"annotation_ids"`
}

View File

@@ -8,8 +8,8 @@ type CreateServerRequest struct {
PrivateIPAddress string `json:"private_ip_address"`
SSHUser string `json:"ssh_user"`
SshKeyID string `json:"ssh_key_id"`
Role string `json:"role" example:"master|worker|bastion"`
Status string `json:"status,omitempty" example:"pending|provisioning|ready|failed"`
Role string `json:"role" example:"master|worker|bastion" enums:"master,worker,bastion"`
Status string `json:"status,omitempty" example:"pending|provisioning|ready|failed" enums:"pending,provisioning,ready,failed"`
}
type UpdateServerRequest struct {
@@ -18,8 +18,8 @@ type UpdateServerRequest struct {
PrivateIPAddress *string `json:"private_ip_address,omitempty"`
SSHUser *string `json:"ssh_user,omitempty"`
SshKeyID *string `json:"ssh_key_id,omitempty"`
Role *string `json:"role,omitempty" example:"master|worker|bastion"`
Status *string `json:"status,omitempty" example:"pending|provisioning|ready|failed"`
Role *string `json:"role" example:"master|worker|bastion" enums:"master,worker,bastion"`
Status *string `json:"status,omitempty" example:"pending|provisioning|ready|failed" enums:"pending,provisioning,ready,failed"`
}
type ServerResponse struct {
@@ -30,8 +30,8 @@ type ServerResponse struct {
PrivateIPAddress string `json:"private_ip_address"`
SSHUser string `json:"ssh_user"`
SshKeyID uuid.UUID `json:"ssh_key_id"`
Role string `json:"role"`
Status string `json:"status"`
Role string `json:"role" example:"master|worker|bastion" enums:"master,worker,bastion"`
Status string `json:"status,omitempty" example:"pending|provisioning|ready|failed" enums:"pending,provisioning,ready,failed"`
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
}