Skip to content

Commit

Permalink
Revert "fix(controller): validation failed when dynamic templateRef i…
Browse files Browse the repository at this point in the history
…s used in nested template (#14053)"

This reverts commit 59026f5.
  • Loading branch information
Joibel committed Feb 10, 2025
1 parent 98eee45 commit 77552d8
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 82 deletions.
15 changes: 2 additions & 13 deletions workflow/validate/validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -959,12 +959,7 @@ func (ctx *templateValidationCtx) validateSteps(scope map[string]interface{}, tm
if err != nil {
return err
}
var args wfv1.ArgumentsProvider
args = &FakeArguments{}
if step.TemplateRef != nil {
args = &step.Arguments
}
resolvedTmpl, err := ctx.validateTemplateHolder(&step, tmplCtx, args, workflowTemplateValidation)
resolvedTmpl, err := ctx.validateTemplateHolder(&step, tmplCtx, &FakeArguments{}, workflowTemplateValidation)
if err != nil {
return errors.Errorf(errors.CodeBadRequest, "templates.%s.steps[%d].%s %s", tmpl.Name, i, step.Name, err.Error())
}
Expand Down Expand Up @@ -1357,13 +1352,7 @@ func (ctx *templateValidationCtx) validateDAG(scope map[string]interface{}, tmpl
return errors.Errorf(errors.CodeBadRequest, "templates.%s cannot use 'continueOn' when using 'depends'. Instead use 'dep-task.Failed'/'dep-task.Errored'", tmpl.Name)
}

var args wfv1.ArgumentsProvider
args = &FakeArguments{}
if task.TemplateRef != nil {
args = &task.Arguments
}

resolvedTmpl, err := ctx.validateTemplateHolder(&task, tmplCtx, args, workflowTemplateValidation)
resolvedTmpl, err := ctx.validateTemplateHolder(&task, tmplCtx, &FakeArguments{}, workflowTemplateValidation)

if err != nil {
return errors.Errorf(errors.CodeBadRequest, "templates.%s.tasks.%s %s", tmpl.Name, task.Name, err.Error())
Expand Down
69 changes: 0 additions & 69 deletions workflow/validate/validate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3344,72 +3344,3 @@ func TestShouldCheckValidationToSpacedParameters(t *testing.T) {
// Do not allow leading or trailing spaces in parameters
require.ErrorContains(t, err, "failed to resolve {{ workflow.thisdoesnotexist }}")
}

var dynamicWorkflowTemplateARefB = `
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: workflow-template-a
spec:
templates:
- name: template-a
inputs:
parameters:
- name: message
steps:
- - name: step-a
templateRef:
name: workflow-template-b
template: "{{ inputs.parameters.message }}"
`

var dynamicWorkflowTemplateRefB = `
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: workflow-template-b
spec:
templates:
- name: template-b
container:
image: docker/whalesay
command: [cowsay]
args: ["hello from template"]
`

var dynamicTemplateRefWorkflow = `
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: dynamic-workflow-
spec:
entrypoint: whalesay
templates:
- name: whalesay
steps:
- - name: whalesay
templateRef:
name: workflow-template-a
template: template-a
arguments:
parameters:
- name: message
value: "template-b"
`

func TestDynamicWorkflowTemplateRef(t *testing.T) {
wf := wfv1.MustUnmarshalWorkflow(dynamicTemplateRefWorkflow)
wftmplA := wfv1.MustUnmarshalWorkflowTemplate(dynamicWorkflowTemplateARefB)
wftmplB := wfv1.MustUnmarshalWorkflowTemplate(dynamicWorkflowTemplateRefB)

err := createWorkflowTemplate(wftmplA)
require.NoError(t, err)
err = createWorkflowTemplate(wftmplB)
require.NoError(t, err)

err = ValidateWorkflow(wftmplGetter, cwftmplGetter, wf, ValidateOpts{})
require.NoError(t, err)

_ = deleteWorkflowTemplate(wftmplA.Name)
_ = deleteWorkflowTemplate(wftmplB.Name)
}

0 comments on commit 77552d8

Please sign in to comment.