Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expr expressions can't make use of workflow.parameters #9742

Closed
3 tasks done
juliev0 opened this issue Oct 3, 2022 · 1 comment · Fixed by #9761
Closed
3 tasks done

Expr expressions can't make use of workflow.parameters #9742

juliev0 opened this issue Oct 3, 2022 · 1 comment · Fixed by #9761
Assignees
Labels

Comments

@juliev0
Copy link
Contributor

juliev0 commented Oct 3, 2022

Pre-requisites

  • I have double-checked my configuration
  • I can confirm the issues exists when I tested with :latest
  • I'd like to contribute the fix myself (see contributing guide)

What happened/what you expected to happen?

In this function we remove workfow.parameters from our map if it contains workflow.parameters.x. This means we can't evaluate an expr expression if it contains workflow.parameters.

In the Workflow example I've included, the result of argo logs is:

 % argo logs global-parameters-64mnf 
global-parameters-64mnf: time="2022-10-03T22:45:08.830Z" level=info msg="capturing logs" argo=true
global-parameters-64mnf:  __________________________________ 
global-parameters-64mnf: / {{=jsonpath(workflow.parameters, \
global-parameters-64mnf: \ '$.value')}}                   /
global-parameters-64mnf:  ---------------------------------- 
global-parameters-64mnf:     \
global-parameters-64mnf:      \
global-parameters-64mnf:       \     
global-parameters-64mnf:                     ##        .            
global-parameters-64mnf:               ## ## ##       ==            
global-parameters-64mnf:            ## ## ## ##      ===            
global-parameters-64mnf:        /""""""""""""""""___/ ===        
global-parameters-64mnf:   ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~   
global-parameters-64mnf:        \______ o          __/            
global-parameters-64mnf:         \    \        __/             
global-parameters-64mnf:           \____\______/   
global-parameters-64mnf: time="2022-10-03T22:45:09.847Z" level=info msg="sub-process exited" argo=true error="<nil>"

Version

latest

Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: global-parameters-
spec:
  entrypoint: whalesay1
  arguments:
    parameters:
    - name: message
      value: 99

  templates:
  - name: whalesay1
    container:
      image: docker/whalesay:latest
      command: [cowsay]
      args: ["{{=jsonpath(workflow.parameters, '$.value')}}"]

Logs from the workflow controller

controller | time="2022-10-03T15:45:04.522Z" level=debug msg="Syncing all CronWorkflows"
 controller | time="2022-10-03T15:45:05.104Z" level=info msg="Processing workflow" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Getting the template by name"
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.105Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:05.122Z" level=info msg="Get configmaps 200"
 controller | time="2022-10-03T15:45:05.122Z" level=info msg="resolved artifact repository" artifactRepositoryRef="argo/#"
 controller | time="2022-10-03T15:45:05.122Z" level=info msg="Updated phase  -> Running" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Evaluating node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Event(v1.ObjectReference{Kind:\"Workflow\", Namespace:\"argo\", Name:\"global-parameters-64mnf\", UID:\"2e17d094-e421-424c-a016-4045713f127b\", APIVersion:\"argoproj.io/v1alpha1\", ResourceVersion:\"67692\", FieldPath:\"\"}): type: 'Normal' reason: 'WorkflowRunning' Workflow Running"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Initializing node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.122Z" level=info msg="Pod node global-parameters-64mnf initialized Pending" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.122Z" level=debug msg="Executing node global-parameters-64mnf with container template: whalesay1\n" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.122Z" level=debug namespace=argo needLocation=true workflow=global-parameters-64mnf
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:05.124Z" level=debug msg="Creating Pod: global-parameters-64mnf (global-parameters-64mnf)" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.127Z" level=info msg="Create events 201"
 controller | time="2022-10-03T15:45:05.137Z" level=info msg="Create pods 201"
 controller | time="2022-10-03T15:45:05.138Z" level=info msg="Created pod: global-parameters-64mnf (global-parameters-64mnf)" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.138Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.138Z" level=info msg=reconcileAgentPod namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:05.138Z" level=debug msg="Log changes patch: {\"metadata\":{\"annotations\":{\"workflows.argoproj.io/pod-name-format\":\"v2\"},\"labels\":{\"workflows.argoproj.io/phase\":\"Running\"}},\"spec\":{\"activeDeadlineSeconds\":300,\"podSpecPatch\":\"terminationGracePeriodSeconds: 3\\n\"},\"status\":{\"artifactGCStatus\":{\"notSpecified\":true},\"artifactRepositoryRef\":{\"artifactRepository\":{\"archiveLogs\":true,\"s3\":{\"accessKeySecret\":{\"key\":\"accesskey\",\"name\":\"my-minio-cred\"},\"bucket\":\"my-bucket\",\"endpoint\":\"minio:9000\",\"insecure\":true,\"secretKeySecret\":{\"key\":\"secretkey\",\"name\":\"my-minio-cred\"}}},\"configMap\":\"artifact-repositories\",\"key\":\"default-v1\",\"namespace\":\"argo\"},\"nodes\":{\"global-parameters-64mnf\":{\"displayName\":\"global-parameters-64mnf\",\"finishedAt\":null,\"id\":\"global-parameters-64mnf\",\"name\":\"global-parameters-64mnf\",\"phase\":\"Pending\",\"startedAt\":\"2022-10-03T22:45:05Z\",\"templateName\":\"whalesay1\",\"templateScope\":\"local/global-parameters-64mnf\",\"type\":\"Pod\"}},\"phase\":\"Running\",\"startedAt\":\"2022-10-03T22:45:05Z\"}}"
 controller | time="2022-10-03T15:45:05.139Z" level=info msg="Workflow to be dehydrated" Workflow Size=939
 controller | time="2022-10-03T15:45:05.144Z" level=info msg="Update workflows 200"
 controller | time="2022-10-03T15:45:05.145Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=67695 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.106Z" level=info msg="Processing workflow" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.108Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.108Z" level=info msg="node changed" namespace=argo new.message=PodInitializing new.phase=Pending new.progress=0/1 nodeID=global-parameters-64mnf old.message= old.phase=Pending old.progress=0/1 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.108Z" level=debug msg="Evaluating node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.108Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:06.108Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:06.108Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:06.108Z" level=debug msg="Executing node global-parameters-64mnf of Pod is Pending" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.108Z" level=debug msg="Executing node global-parameters-64mnf with container template: whalesay1\n" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.109Z" level=debug msg="Skipped pod global-parameters-64mnf (global-parameters-64mnf) creation: already exists" namespace=argo podPhase=Pending workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.109Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.109Z" level=info msg=reconcileAgentPod namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:06.109Z" level=debug msg="Log changes patch: {\"status\":{\"conditions\":[{\"status\":\"False\",\"type\":\"PodRunning\"}],\"nodes\":{\"global-parameters-64mnf\":{\"hostNodeName\":\"k3d-k3s1.22-server-0\",\"message\":\"PodInitializing\"}}}}"
 controller | time="2022-10-03T15:45:06.109Z" level=info msg="Workflow to be dehydrated" Workflow Size=1235
 controller | time="2022-10-03T15:45:06.117Z" level=info msg="Update workflows 200"
 controller | time="2022-10-03T15:45:06.118Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=67702 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.120Z" level=info msg="Processing workflow" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.122Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.122Z" level=info msg="node unchanged" namespace=argo nodeID=global-parameters-64mnf workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.122Z" level=debug msg="Evaluating node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.122Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:07.122Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:07.123Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:07.123Z" level=debug msg="Executing node global-parameters-64mnf of Pod is Pending" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.123Z" level=debug msg="Executing node global-parameters-64mnf with container template: whalesay1\n" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.123Z" level=debug msg="Skipped pod global-parameters-64mnf (global-parameters-64mnf) creation: already exists" namespace=argo podPhase=Pending workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.123Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:07.123Z" level=info msg=reconcileAgentPod namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.514Z" level=info msg="Processing workflow" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.515Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.515Z" level=info msg="node changed" namespace=argo new.message= new.phase=Running new.progress=0/1 nodeID=global-parameters-64mnf old.message=PodInitializing old.phase=Pending old.progress=0/1 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.515Z" level=debug msg="Evaluating node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.515Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:10.515Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:10.515Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:10.516Z" level=debug msg="Executing node global-parameters-64mnf of Pod is Running" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.516Z" level=debug msg="Executing node global-parameters-64mnf with container template: whalesay1\n" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.516Z" level=debug msg="Skipped pod global-parameters-64mnf (global-parameters-64mnf) creation: already exists" namespace=argo podPhase=Running workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.516Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.516Z" level=info msg=reconcileAgentPod namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.516Z" level=debug msg="Log changes patch: {\"status\":{\"conditions\":[{\"status\":\"True\",\"type\":\"PodRunning\"}],\"nodes\":{\"global-parameters-64mnf\":{\"message\":null,\"outputs\":{\"exitCode\":\"0\"},\"phase\":\"Running\"}}}}"
 controller | time="2022-10-03T15:45:10.516Z" level=info msg="Workflow to be dehydrated" Workflow Size=1224
 controller | time="2022-10-03T15:45:10.521Z" level=info msg="cleaning up pod" action=terminateContainers key=argo/global-parameters-64mnf/terminateContainers
 controller | time="2022-10-03T15:45:10.521Z" level=info msg="https://0.0.0.0:57089/api/v1/namespaces/argo/pods/global-parameters-64mnf/exec?command=%2Fvar%2Frun%2Fargo%2Fargoexec&command=kill&command=15&command=1&container=wait&stderr=true&stdout=true&tty=false"
 controller | time="2022-10-03T15:45:10.522Z" level=info msg="Update workflows 200"
 controller | time="2022-10-03T15:45:10.522Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=67716 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:10.523Z" level=debug msg="Event(v1.ObjectReference{Kind:\"Workflow\", Namespace:\"argo\", Name:\"global-parameters-64mnf\", UID:\"2e17d094-e421-424c-a016-4045713f127b\", APIVersion:\"argoproj.io/v1alpha1\", ResourceVersion:\"67716\", FieldPath:\"\"}): type: 'Normal' reason: 'WorkflowNodeRunning' Running node global-parameters-64mnf"
 controller | time="2022-10-03T15:45:10.527Z" level=info msg="Create events 201"
 controller | time="2022-10-03T15:45:10.548Z" level=info msg="Create pods/exec 101"
 controller | time="2022-10-03T15:45:10.597Z" level=info msg="signaled container" container=wait error="Internal error occurred: error executing command in container: failed to exec in container: failed to start exec \"40b9d900cf3d5cf586a283ac6d99ddbe1f28d50860d0dd92a9907110956f3d56\": OCI runtime exec failed: exec failed: unable to start container process: read init-p: connection reset by peer: unknown" namespace=argo pod=global-parameters-64mnf stderr="<nil>" stdout="<nil>"
 controller | time="2022-10-03T15:45:12.526Z" level=info msg="Processing workflow" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.527Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=1 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.527Z" level=info msg="task-result changed" namespace=argo nodeID=global-parameters-64mnf workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.528Z" level=info msg="node unchanged" namespace=argo nodeID=global-parameters-64mnf workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.528Z" level=debug msg="Evaluating node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.528Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:12.528Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:12.528Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:12.528Z" level=debug msg="Executing node global-parameters-64mnf of Pod is Running" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.528Z" level=debug msg="Executing node global-parameters-64mnf with container template: whalesay1\n" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.529Z" level=debug msg="Skipped pod global-parameters-64mnf (global-parameters-64mnf) creation: already exists" namespace=argo podPhase=Running workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.529Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.529Z" level=info msg=reconcileAgentPod namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:12.529Z" level=debug msg="Log changes patch: {\"status\":{\"conditions\":[{\"status\":\"False\",\"type\":\"PodRunning\"}],\"nodes\":{\"global-parameters-64mnf\":{\"outputs\":{\"artifacts\":[{\"name\":\"main-logs\",\"s3\":{\"key\":\"global-parameters-64mnf/global-parameters-64mnf/main.log\"}}]}}}}}"
 controller | time="2022-10-03T15:45:12.529Z" level=info msg="Workflow to be dehydrated" Workflow Size=1328
 controller | time="2022-10-03T15:45:12.533Z" level=info msg="cleaning up pod" action=terminateContainers key=argo/global-parameters-64mnf/terminateContainers
 controller | time="2022-10-03T15:45:12.542Z" level=info msg="Update workflows 200"
 controller | time="2022-10-03T15:45:12.542Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=67720 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.543Z" level=info msg="Processing workflow" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.544Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=1 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.544Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=global-parameters-64mnf old.message= old.phase=Running old.progress=0/1 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.544Z" level=debug msg="Evaluating node global-parameters-64mnf: template: *v1alpha1.WorkflowStep (whalesay1), boundaryID: " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.544Z" level=debug msg="Resolving the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:13.544Z" level=debug msg="Getting the template" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | time="2022-10-03T15:45:13.544Z" level=debug msg="Getting the template by name" base="*v1alpha1.Workflow (namespace=argo,name=global-parameters-64mnf)" depth=0 tmpl="*v1alpha1.WorkflowStep (whalesay1)"
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | deletethis: called GetFuncMap
 controller | deletethis: template.Replace(), calling expressionReplace() on jsonpath(workflow.parameters, '$.message')
 controller | time="2022-10-03T15:45:13.544Z" level=debug msg="Node global-parameters-64mnf already completed" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.545Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.545Z" level=info msg=reconcileAgentPod namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.545Z" level=info msg="Updated phase Running -> Succeeded" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.545Z" level=info msg="Marking workflow completed" namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.545Z" level=info msg="Checking daemoned children of " namespace=argo workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.545Z" level=debug msg="Event(v1.ObjectReference{Kind:\"Workflow\", Namespace:\"argo\", Name:\"global-parameters-64mnf\", UID:\"2e17d094-e421-424c-a016-4045713f127b\", APIVersion:\"argoproj.io/v1alpha1\", ResourceVersion:\"67720\", FieldPath:\"\"}): type: 'Normal' reason: 'WorkflowSucceeded' Workflow completed"
 controller | time="2022-10-03T15:45:13.545Z" level=debug msg="Log changes patch: {\"metadata\":{\"labels\":{\"workflows.argoproj.io/completed\":\"true\",\"workflows.argoproj.io/phase\":\"Succeeded\"}},\"status\":{\"conditions\":[{\"status\":\"False\",\"type\":\"PodRunning\"},{\"status\":\"True\",\"type\":\"Completed\"}],\"finishedAt\":\"2022-10-03T22:45:13Z\",\"nodes\":{\"global-parameters-64mnf\":{\"finishedAt\":\"2022-10-03T22:45:10Z\",\"phase\":\"Succeeded\",\"resourcesDuration\":{\"cpu\":5,\"memory\":3}}},\"phase\":\"Succeeded\"}}"
 controller | time="2022-10-03T15:45:13.545Z" level=info msg="Workflow to be dehydrated" Workflow Size=1456
 controller | time="2022-10-03T15:45:13.550Z" level=info msg="cleaning up pod" action=deletePod key=argo/global-parameters-64mnf-1340600742-agent/deletePod
 controller | time="2022-10-03T15:45:13.550Z" level=info msg="Create events 201"
 controller | time="2022-10-03T15:45:13.554Z" level=info msg="Update workflows 200"
 controller | time="2022-10-03T15:45:13.555Z" level=info msg="Delete pods 404"
 controller | time="2022-10-03T15:45:13.555Z" level=info msg="Workflow update successful" namespace=argo phase=Succeeded resourceVersion=67723 workflow=global-parameters-64mnf
 controller | time="2022-10-03T15:45:13.556Z" level=debug msg="Event(v1.ObjectReference{Kind:\"Workflow\", Namespace:\"argo\", Name:\"global-parameters-64mnf\", UID:\"2e17d094-e421-424c-a016-4045713f127b\", APIVersion:\"argoproj.io/v1alpha1\", ResourceVersion:\"67723\", FieldPath:\"\"}): type: 'Normal' reason: 'WorkflowNodeSucceeded' Succeeded node global-parameters-64mnf"
 controller | time="2022-10-03T15:45:13.560Z" level=info msg="Create events 201"
 controller | time="2022-10-03T15:45:13.567Z" level=info msg="DeleteCollection workflowtaskresults 200"
 controller | time="2022-10-03T15:45:13.572Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/global-parameters-64mnf/labelPodCompleted
 controller | time="2022-10-03T15:45:13.582Z" level=info msg="Patch pods 200"
 controller | time="2022-10-03T15:45:13.599Z" level=info msg="cleaning up pod" action=killContainers key=argo/global-parameters-64mnf/killContainers
 controller | time="2022-10-03T15:45:14.523Z" level=debug msg="Syncing all CronWorkflows"
 controller | time="2022-10-03T15:45:14.584Z" level=debug msg="Won't process Workflow since it's completed" key=argo/global-parameters-64mnf

Logs from in your workflow's wait container

N/A for this bug

@juliev0
Copy link
Contributor Author

juliev0 commented Oct 3, 2022

One recommended fix for this comes from Bala's comment in #6410: rename workflow.parameters to workflow.parameters.json.

Another option is to add a validation error message that checks for expr expressions which reference workflow.parameters and forbid those explicitly.

Note, there is currently the prevention of using expr in a when condition in the code from #6410 . That is ultimately due to this issue. If we fix this we can remove that validation error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment