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

Workflow parameter creationTimestamp is not RFC3339 compliant #2974

Closed
4 tasks done
brabster opened this issue May 7, 2020 · 2 comments · Fixed by #3023
Closed
4 tasks done

Workflow parameter creationTimestamp is not RFC3339 compliant #2974

brabster opened this issue May 7, 2020 · 2 comments · Fixed by #3023
Assignees
Labels
Milestone

Comments

@brabster
Copy link
Contributor

brabster commented May 7, 2020

Checklist:

  • I've included the version.
  • I've included reproduction steps.
  • I've included the workflow YAML.
  • I've included the logs.

What happened:

Workflow parameter workflow.creationTimestamp did not output a timestamp in RFC3339 compliant format.

What you expected to happen:

Documentation states it should output a timestamp compliant with RFC3339

How to reproduce it (as minimally and precisely as possible):

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: hello-world-
spec:
  entrypoint: whalesay
  templates:
    - name: whalesay
      container:
        image: docker/whalesay:latest
        command: [cowsay]
        args: ["{{workflow.creationTimestamp}}"]

Output:

 _______________________________ 
< 2020-05-07 16:51:21 +0000 UTC >
 ------------------------------- 
    \
     \
      \     
                    ##        .            
              ## ## ##       ==            
           ## ## ## ##      ===            
       /""""""""""""""""___/ ===        
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~   
       \______ o          __/            
        \    \        __/             
          \____\______/   

Anything else we need to know?:

According to my reading of the spec and the output of Python's rfc3339-validator package, "2020-05-07 16:51:21 +0000 UTC" is not valid - there should be a 'T' between date and time, there should not be a space before offset, the offset should be formatted hh:mm and there should not be a timezone on the end.

I think equivalent compliant timestamps would be 2020-05-07T16:51:21+00:00 and 2020-05-07T16:51:21Z

Environment:

  • Argo version:
$ argo version
argo: vv2.7.4+50b209c.dirty
  BuildDate: 2020-04-16T16:27:43Z
  GitCommit: 50b209ca14c056fb470ebb8329e255304dd5be90
  GitTreeState: dirty
  GitTag: v2.7.4
  GoVersion: go1.13
  Compiler: gc
  Platform: linux/amd64
  • Kubernetes version :
$ kubectl version -o yaml
clientVersion:
  buildDate: "2019-06-19T16:40:16Z"
  compiler: gc
  gitCommit: e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529
  gitTreeState: clean
  gitVersion: v1.15.0
  goVersion: go1.12.5
  major: "1"
  minor: "15"
  platform: linux/amd64
serverVersion:
  buildDate: "2020-03-31T02:49:49Z"
  compiler: gc
  gitCommit: a5bf731ea129336a3cf32c3375317b3a626919d7
  gitTreeState: clean
  gitVersion: v1.15.11-gke.5
  goVersion: go1.12.17b4
  major: "1"
  minor: 15+
  platform: linux/amd64

Other debugging information (if applicable):

  • workflow result:
argo --loglevel DEBUG get <workflowname>
Name:                hello-world-q925x
Namespace:           default
ServiceAccount:      default
Status:              Succeeded
Created:             Thu May 07 17:51:21 +0100 (14 minutes ago)
Started:             Thu May 07 17:51:21 +0100 (14 minutes ago)
Finished:            Thu May 07 17:51:33 +0100 (14 minutes ago)
Duration:            12 seconds

STEP                  TEMPLATE  PODNAME            DURATION  MESSAGE
 ✔ hello-world-q925x  whalesay  hello-world-q925x  10s       
  • executor logs:
kubectl logs <failedpodname> -c init
kubectl logs <failedpodname> -c wait
( no failed pods )
  • workflow-controller logs:
kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)

time="2020-05-07T16:51:21Z" level=info msg="Pod node {hello-world-q925x hello-world-q925x hello-world-q925x Pod whalesay nil    Pending   2020-05-07 16:51:21.821953905 +0000 UTC 0001-01-01 00:00:00 +0000 UTC   <nil> nil nil [] []} initialized Pending" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:21Z" level=info msg="Created pod: hello-world-q925x (hello-world-q925x)" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:21Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=7777759 workflow=hello-world-q925x
time="2020-05-07T16:51:22Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:22Z" level=info msg="Updating node &NodeStatus{ID:hello-world-q925x,Name:hello-world-q925x,DisplayName:hello-world-q925x,Type:Pod,TemplateName:whalesay,TemplateRef:nil,Phase:Pending,BoundaryID:,Message:,StartedAt:2020-05-07 16:51:21 +0000 UTC,FinishedAt:0001-01-01 00:00:00 +0000 UTC,PodIP:,Daemoned:nil,Inputs:nil,Outputs:nil,Children:[],OutboundNodes:[],StoredTemplateID:,WorkflowTemplateName:,TemplateScope:,ResourcesDuration:ResourcesDuration{},} message: ContainerCreating"
time="2020-05-07T16:51:22Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=7777768 workflow=hello-world-q925x
time="2020-05-07T16:51:23Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:31Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:31Z" level=info msg="Updating node &NodeStatus{ID:hello-world-q925x,Name:hello-world-q925x,DisplayName:hello-world-q925x,Type:Pod,TemplateName:whalesay,TemplateRef:nil,Phase:Pending,BoundaryID:,Message:ContainerCreating,StartedAt:2020-05-07 16:51:21 +0000 UTC,FinishedAt:0001-01-01 00:00:00 +0000 UTC,PodIP:,Daemoned:nil,Inputs:nil,Outputs:nil,Children:[],OutboundNodes:[],StoredTemplateID:,WorkflowTemplateName:,TemplateScope:,ResourcesDuration:ResourcesDuration{},} status Pending -> Running"
time="2020-05-07T16:51:31Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=7777806 workflow=hello-world-q925x
time="2020-05-07T16:51:32Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:33Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:33Z" level=info msg="Updating node &NodeStatus{ID:hello-world-q925x,Name:hello-world-q925x,DisplayName:hello-world-q925x,Type:Pod,TemplateName:whalesay,TemplateRef:nil,Phase:Running,BoundaryID:,Message:,StartedAt:2020-05-07 16:51:21 +0000 UTC,FinishedAt:0001-01-01 00:00:00 +0000 UTC,PodIP:,Daemoned:nil,Inputs:nil,Outputs:nil,Children:[],OutboundNodes:[],StoredTemplateID:,WorkflowTemplateName:,TemplateScope:,ResourcesDuration:ResourcesDuration{},} status Running -> Succeeded"
time="2020-05-07T16:51:33Z" level=info msg="Updated phase Running -> Succeeded" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:33Z" level=info msg="Marking workflow completed" namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:33Z" level=info msg="Checking daemoned children of " namespace=default workflow=hello-world-q925x
time="2020-05-07T16:51:33Z" level=info msg="Workflow update successful" namespace=default phase=Succeeded resourceVersion=7777814 workflow=hello-world-q925x
time="2020-05-07T16:51:34Z" level=info msg="Labeled pod default/hello-world-q925x completed"

Logs

argo get <workflowname>
kubectl logs <failedpodname> -c init
kubectl logs <failedpodname> -c wait
kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)
(where relevant supplied above)

Message from the maintainers:

If you are impacted by this bug please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

@alexec
Copy link
Contributor

alexec commented May 15, 2020

v2.8.1

@alexec alexec modified the milestones: v2.9, v2.8 May 15, 2020
@dienstfuchs
Copy link

Can you explain how this will tackled. Will it got into.a 2.8.1 release?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants