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

View File

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

View File

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

View File

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

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

View File

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

View File

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