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