move workspace_types and common_types and refactor Parameter alias

This commit is contained in:
rushtehrani
2020-04-29 17:31:44 -07:00
parent b0571f69c9
commit af82c312a7
9 changed files with 25 additions and 38 deletions

View File

@@ -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,
})

View File

@@ -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

View File

@@ -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,
})

View File

@@ -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 {

View File

@@ -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)
}
}

View File

@@ -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),
})

View File

@@ -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),
})