mirror of
https://github.com/onepanelio/onepanel.git
synced 2025-10-05 05:36:50 +08:00
move workspace_types and common_types and refactor Parameter alias
This commit is contained in:
@@ -42,7 +42,7 @@ func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow
|
||||
re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`)
|
||||
opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-"
|
||||
for _, param := range workflow.Parameters {
|
||||
opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{
|
||||
opts.Parameters = append(opts.Parameters, Parameter{
|
||||
Name: param.Name,
|
||||
Value: param.Value,
|
||||
})
|
||||
@@ -172,7 +172,7 @@ func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow
|
||||
re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`)
|
||||
opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-"
|
||||
for _, param := range workflow.Parameters {
|
||||
opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{
|
||||
opts.Parameters = append(opts.Parameters, Parameter{
|
||||
Name: param.Name,
|
||||
Value: param.Value,
|
||||
})
|
||||
|
14
pkg/types.go
14
pkg/types.go
@@ -2,7 +2,6 @@ package v1
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
v1 "github.com/onepanelio/core/pkg/apis/core/v1"
|
||||
"github.com/onepanelio/core/pkg/util/mapping"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gopkg.in/yaml.v2"
|
||||
@@ -83,8 +82,8 @@ type CronWorkflow struct {
|
||||
WorkflowTemplateVersionId uint64 `db:"workflow_template_version_id"`
|
||||
}
|
||||
|
||||
func (cw *CronWorkflow) GetParametersFromWorkflowSpec() ([]WorkflowExecutionParameter, error) {
|
||||
var parameters []WorkflowExecutionParameter
|
||||
func (cw *CronWorkflow) GetParametersFromWorkflowSpec() ([]Parameter, error) {
|
||||
var parameters []Parameter
|
||||
|
||||
mappedData := make(map[string]interface{})
|
||||
|
||||
@@ -113,7 +112,7 @@ func (cw *CronWorkflow) GetParametersFromWorkflowSpec() ([]WorkflowExecutionPara
|
||||
name := paramMap["name"].(string)
|
||||
value := paramMap["value"].(string)
|
||||
|
||||
workflowParameter := WorkflowExecutionParameter{
|
||||
workflowParameter := Parameter{
|
||||
Name: name,
|
||||
Value: &value,
|
||||
}
|
||||
@@ -387,7 +386,7 @@ type WorkflowExecution struct {
|
||||
UID string
|
||||
Name string
|
||||
GenerateName string
|
||||
Parameters []WorkflowExecutionParameter
|
||||
Parameters []Parameter
|
||||
Manifest string
|
||||
Phase wfv1.NodePhase
|
||||
StartedAt *time.Time `db:"started_at"`
|
||||
@@ -396,9 +395,6 @@ type WorkflowExecution struct {
|
||||
Labels map[string]string
|
||||
}
|
||||
|
||||
// TODO: Using an alias so we can refactor out WorkflowExecutionParameter
|
||||
type WorkflowExecutionParameter = v1.Parameter
|
||||
|
||||
type ListOptions = metav1.ListOptions
|
||||
|
||||
type PodGCStrategy = wfv1.PodGCStrategy
|
||||
@@ -407,7 +403,7 @@ type WorkflowExecutionOptions struct {
|
||||
Name string
|
||||
GenerateName string
|
||||
Entrypoint string
|
||||
Parameters []WorkflowExecutionParameter
|
||||
Parameters []Parameter
|
||||
ServiceAccount string
|
||||
Labels *map[string]string
|
||||
ListOptions *ListOptions
|
||||
|
@@ -310,7 +310,7 @@ func (c *Client) CreateWorkflowExecution(namespace string, workflow *WorkflowExe
|
||||
re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`)
|
||||
opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-"
|
||||
for _, param := range workflow.Parameters {
|
||||
opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{
|
||||
opts.Parameters = append(opts.Parameters, Parameter{
|
||||
Name: param.Name,
|
||||
Value: param.Value,
|
||||
})
|
||||
|
@@ -5,7 +5,6 @@ import (
|
||||
"fmt"
|
||||
sq "github.com/Masterminds/squirrel"
|
||||
wfv1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1"
|
||||
v1 "github.com/onepanelio/core/pkg/apis/core/v1"
|
||||
"github.com/onepanelio/core/pkg/util"
|
||||
"github.com/onepanelio/core/pkg/util/pagination"
|
||||
"github.com/onepanelio/core/pkg/util/ptr"
|
||||
@@ -16,21 +15,21 @@ import (
|
||||
"sigs.k8s.io/yaml"
|
||||
)
|
||||
|
||||
func parseWorkspaceSpec(template string) (spec *v1.WorkspaceSpec, err error) {
|
||||
func parseWorkspaceSpec(template string) (spec *WorkspaceSpec, err error) {
|
||||
err = yaml.UnmarshalStrict([]byte(template), &spec)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err error) {
|
||||
func generateArguments(spec *WorkspaceSpec, config map[string]string) (err error) {
|
||||
if spec.Arguments == nil {
|
||||
spec.Arguments = &v1.Arguments{
|
||||
Parameters: []v1.Parameter{},
|
||||
spec.Arguments = &Arguments{
|
||||
Parameters: []Parameter{},
|
||||
}
|
||||
}
|
||||
|
||||
// Resource action parameter
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, Parameter{
|
||||
Name: "sys-name",
|
||||
Type: "input.text",
|
||||
Value: ptr.String("name"),
|
||||
@@ -39,25 +38,25 @@ func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err er
|
||||
})
|
||||
|
||||
// Resource action parameter
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, Parameter{
|
||||
Name: "sys-resource-action",
|
||||
Value: ptr.String("apply"),
|
||||
Type: "input.hidden",
|
||||
})
|
||||
|
||||
// Workspace action
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, Parameter{
|
||||
Name: "sys-workspace-action",
|
||||
Value: ptr.String("create"),
|
||||
Type: "input.hidden",
|
||||
})
|
||||
|
||||
// Node pool parameter and options
|
||||
var options []*v1.ParameterOption
|
||||
var options []*ParameterOption
|
||||
if err = yaml.Unmarshal([]byte(config["applicationNodePoolOptions"]), &options); err != nil {
|
||||
return
|
||||
}
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, Parameter{
|
||||
Name: "sys-node-pool",
|
||||
Value: ptr.String(options[0].Value),
|
||||
Type: "select.select",
|
||||
@@ -75,7 +74,7 @@ func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err er
|
||||
continue
|
||||
}
|
||||
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
|
||||
spec.Arguments.Parameters = append(spec.Arguments.Parameters, Parameter{
|
||||
Name: fmt.Sprintf("sys-%v-volume-size", v.Name),
|
||||
Type: "input.number",
|
||||
Value: ptr.String("20480"),
|
||||
@@ -91,7 +90,7 @@ func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err er
|
||||
return
|
||||
}
|
||||
|
||||
func createServiceManifest(spec *v1.WorkspaceSpec) (serviceManifest string, err error) {
|
||||
func createServiceManifest(spec *WorkspaceSpec) (serviceManifest string, err error) {
|
||||
service := corev1.Service{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "v1",
|
||||
@@ -116,7 +115,7 @@ func createServiceManifest(spec *v1.WorkspaceSpec) (serviceManifest string, err
|
||||
return
|
||||
}
|
||||
|
||||
func createVirtualServiceManifest(spec *v1.WorkspaceSpec, config map[string]string) (virtualServiceManifest string, err error) {
|
||||
func createVirtualServiceManifest(spec *WorkspaceSpec, config map[string]string) (virtualServiceManifest string, err error) {
|
||||
for _, h := range spec.Routes {
|
||||
for _, r := range h.Route {
|
||||
r.Destination.Host = "{{workflow.parameters.sys-name}}"
|
||||
@@ -143,7 +142,7 @@ func createVirtualServiceManifest(spec *v1.WorkspaceSpec, config map[string]stri
|
||||
return
|
||||
}
|
||||
|
||||
func createStatefulSetManifest(workspaceSpec *v1.WorkspaceSpec, config map[string]string) (statefulSetManifest string, err error) {
|
||||
func createStatefulSetManifest(workspaceSpec *WorkspaceSpec, config map[string]string) (statefulSetManifest string, err error) {
|
||||
var volumeClaims []map[string]interface{}
|
||||
volumeClaimsMapped := make(map[string]bool)
|
||||
for _, c := range workspaceSpec.Containers {
|
||||
@@ -212,7 +211,7 @@ func createStatefulSetManifest(workspaceSpec *v1.WorkspaceSpec, config map[strin
|
||||
return
|
||||
}
|
||||
|
||||
func unmarshalWorkflowTemplate(spec *v1.WorkspaceSpec, serviceManifest, virtualServiceManifest, containersManifest string) (workflowTemplateSpecManifest string, err error) {
|
||||
func unmarshalWorkflowTemplate(spec *WorkspaceSpec, serviceManifest, virtualServiceManifest, containersManifest string) (workflowTemplateSpecManifest string, err error) {
|
||||
var volumeClaimItems []wfv1.Item
|
||||
volumeClaimsMapped := make(map[string]bool)
|
||||
for _, c := range spec.Containers {
|
||||
|
@@ -65,11 +65,3 @@ func TestParseWorkspaceSpec(t *testing.T) {
|
||||
assert.Equal(t, workspaceSpec.Containers[0].Ports[0].ContainerPort, int32(80))
|
||||
assert.Equal(t, workspaceSpec.Containers[1].Ports[0].ContainerPort, int32(443))
|
||||
}
|
||||
|
||||
func TestCreateWorkspaceTemplate(t *testing.T) {
|
||||
c := NewTestClient(mockSystemSecret, mockSystemConfigMap)
|
||||
|
||||
if err := c.CreateWorkspaceTemplate("rush", workspaceTemplate); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
@@ -71,7 +71,7 @@ func (c *CronWorkflowServer) CreateCronWorkflow(ctx context.Context, req *api.Cr
|
||||
},
|
||||
}
|
||||
for _, param := range req.CronWorkflow.WorkflowExecution.Parameters {
|
||||
workflow.Parameters = append(workflow.Parameters, v1.WorkflowExecutionParameter{
|
||||
workflow.Parameters = append(workflow.Parameters, v1.Parameter{
|
||||
Name: param.Name,
|
||||
Value: ptr.String(param.Value),
|
||||
})
|
||||
@@ -110,7 +110,7 @@ func (c *CronWorkflowServer) UpdateCronWorkflow(ctx context.Context, req *api.Up
|
||||
},
|
||||
}
|
||||
for _, param := range req.CronWorkflow.WorkflowExecution.Parameters {
|
||||
workflow.Parameters = append(workflow.Parameters, v1.WorkflowExecutionParameter{
|
||||
workflow.Parameters = append(workflow.Parameters, v1.Parameter{
|
||||
Name: param.Name,
|
||||
Value: ptr.String(param.Value),
|
||||
})
|
||||
|
@@ -67,7 +67,7 @@ func (s *WorkflowServer) CreateWorkflowExecution(ctx context.Context, req *api.C
|
||||
},
|
||||
}
|
||||
for _, param := range req.WorkflowExecution.Parameters {
|
||||
workflow.Parameters = append(workflow.Parameters, v1.WorkflowExecutionParameter{
|
||||
workflow.Parameters = append(workflow.Parameters, v1.Parameter{
|
||||
Name: param.Name,
|
||||
Value: ptr.String(param.Value),
|
||||
})
|
||||
|
Reference in New Issue
Block a user