feat: auto-inject filesyncer sidecar

This commit is contained in:
Andrey Melnikov
2021-02-16 12:29:34 -08:00
parent ace9e6e7f0
commit 5b0bc517d3

View File

@@ -499,6 +499,10 @@ func (c *Client) createWorkflow(namespace string, workflowTemplateID uint64, wor
}
wf.Spec.Arguments.Parameters = newParameters
if err = injectFilesyncerSidecar(wf); err != nil {
return nil, err
}
if err = injectWorkflowExecutionStatusCaller(wf, wfv1.NodeRunning); err != nil {
return nil, err
}
@@ -2063,6 +2067,34 @@ func getCURLNodeTemplate(name, curlMethod, curlPath, curlBody string, inputs wfv
return
}
func injectFilesyncerSidecar(wf *wfv1.Workflow) error {
filesyncer := wfv1.UserContainer{
Container: corev1.Container{
Name: "sys-filesyncer",
Image: "onepanel/filesyncer:test-server-6",
Args: []string{"server", "-server-prefix=/sys/filesyncer"},
Env: []corev1.EnvVar{
{
Name: "ONEPANEL_INTERACTIVE_SIDECAR",
Value: "true",
},
},
Ports: []corev1.ContainerPort{
{
ContainerPort: 8888,
},
},
},
}
for i := range wf.Spec.Templates {
template := &wf.Spec.Templates[i]
template.Sidecars = append(template.Sidecars, filesyncer)
}
return nil
}
func injectExitHandlerWorkflowExecutionStatistic(wf *wfv1.Workflow, workflowTemplateId *uint64) error {
curlPath := "/apis/v1beta1/{{workflow.namespace}}/workflow_executions/{{workflow.name}}/statistics"
statistics := map[string]interface{}{