mirror of
https://github.com/onepanelio/onepanel.git
synced 2025-10-28 23:51:44 +08:00
additional generated parameters
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -7,11 +7,6 @@ import (
|
||||
|
||||
var (
|
||||
workspaceSpecManifest = `
|
||||
arguments:
|
||||
parameters:
|
||||
- name: description
|
||||
value: description
|
||||
type: textarea.textarea
|
||||
containers:
|
||||
- name: http
|
||||
image: nginxdemos/hello
|
||||
|
||||
Reference in New Issue
Block a user