additional generated parameters

This commit is contained in:
rushtehrani
2020-04-24 01:31:57 -07:00
parent 4b06855e00
commit 2913362ba9
3 changed files with 42 additions and 23 deletions

View File

@@ -13,6 +13,7 @@ type Parameter struct {
Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
Type string `json:"type" protobuf:"bytes,3,opt,name=type"`
Options []*ParameterOption `json:"options,omitempty" protobuf:"bytes,4,opt,name=options"`
Required bool `json:"required,omitempty" protobuf:"bytes,5,opt,name=required"`
}
type Arguments struct {

View File

@@ -24,6 +24,22 @@ func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err er
}
}
// Resource action parameter
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
Name: "name",
Type: "input.text",
Value: "name",
Required: true,
})
// Resource action parameter
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
Name: "resource-action",
Value: "apply",
Type: "input.hidden",
})
// Volume size parameters
volumeClaimsMapped := make(map[string]bool)
for _, c := range spec.Containers {
for _, v := range c.VolumeMounts {
@@ -34,12 +50,15 @@ func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err er
spec.Arguments.Parameters = append(spec.Arguments.Parameters, v1.Parameter{
Name: fmt.Sprintf("%v-volume-size", v.Name),
Type: "input.number",
Value: "20480",
Required: true,
})
volumeClaimsMapped[v.Name] = true
}
}
// Node pool parameter and options
var options []*v1.ParameterOption
if err = yaml.Unmarshal([]byte(config["applicationNodePoolOptions"]), &options); err != nil {
return
@@ -49,6 +68,7 @@ func generateArguments(spec *v1.WorkspaceSpec, config map[string]string) (err er
Value: options[0].Value,
Type: "select.select",
Options: options,
Required: true,
})
return
@@ -178,6 +198,7 @@ func createStatefulSetManifest(containers []corev1.Container, config map[string]
func unmarshalWorkflowTemplate(arguments *v1.Arguments, serviceManifest, virtualServiceManifest, containersManifest string) (workflowTemplateSpecManifest string, err error) {
workflowTemplateSpec := map[string]interface{}{
"arguments": arguments,
"entrypoint": "create-workspace",
"templates": []wfv1.Template{
{
Name: "create-workspace",
@@ -190,10 +211,12 @@ func unmarshalWorkflowTemplate(arguments *v1.Arguments, serviceManifest, virtual
{
Name: "create-virtual-service",
Template: "create-virtual-service-resource",
Dependencies: []string{"create-service"},
},
{
Name: "create-stateful-set",
Template: "create-stateful-set-resource",
Dependencies: []string{"create-virtual-service"},
},
},
},
@@ -201,21 +224,21 @@ func unmarshalWorkflowTemplate(arguments *v1.Arguments, serviceManifest, virtual
{
Name: "create-service-resource",
Resource: &wfv1.ResourceTemplate{
Action: "{{workflow.parameters.action}}",
Action: "{{workflow.parameters.resource-action}}",
Manifest: serviceManifest,
},
},
{
Name: "create-virtual-service-resource",
Resource: &wfv1.ResourceTemplate{
Action: "{{workflow.parameters.action}}",
Action: "{{workflow.parameters.resource-action}}",
Manifest: virtualServiceManifest,
},
},
{
Name: "create-stateful-set-resource",
Resource: &wfv1.ResourceTemplate{
Action: "{{workflow.parameters.action}}",
Action: "{{workflow.parameters.resource-action}}",
Manifest: containersManifest,
},
},

View File

@@ -7,11 +7,6 @@ import (
var (
workspaceSpecManifest = `
arguments:
parameters:
- name: description
value: description
type: textarea.textarea
containers:
- name: http
image: nginxdemos/hello