Checklist:
What happened:
Ran a basic hello-world workflow
---
apiVersion: argoproj.io/v1alpha1
kind: Workflow # new type of k8s spec
metadata:
generateName: hello-world- # name of the workflow spec
namespace: octopus
spec:
entrypoint: whalesay # invoke the whalesay template
templates:
- name: whalesay # name of the template
container:
image: docker/whalesay
command: [cowsay]
args: ["hello world"]
resources: # limit the resources
limits:
memory: 32Mi
cpu: 100m


What you expected to happen:
Successful reading both on the UI dashboard as well as in the context of k8s workflow
How to reproduce it (as minimally and precisely as possible):
---
apiVersion: v1
kind: Namespace
metadata:
name: octopus
spec:
finalizers:
- kubernetes
status:
phase: Active
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: workflows.argoproj.io
namespace: octopus
spec:
additionalPrinterColumns:
- JSONPath: .status.phase
description: Status of the workflow
name: Status
type: string
- JSONPath: .status.startedAt
description: When the workflow was started
format: date-time
name: Age
type: date
group: argoproj.io
names:
kind: Workflow
plural: workflows
shortNames:
- wf
scope: Namespaced
version: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: workflowtemplates.argoproj.io
namespace: octopus
spec:
group: argoproj.io
names:
kind: WorkflowTemplate
plural: workflowtemplates
shortNames:
- wftmpl
scope: Namespaced
version: v1alpha1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: workflow-controller
namespace: octopus
spec:
selector:
matchLabels:
app: workflow-controller
template:
metadata:
namespace: octopus
labels:
app: workflow-controller
spec:
containers:
- args:
- --configmap
- workflow-controller-configmap
- --executor-image
- argoproj/argoexec:v2.5.0-rc2
command:
- workflow-controller
image: argoproj/workflow-controller:v2.5.0-rc2
name: workflow-controller
serviceAccountName: argo
---
apiVersion: v1
kind: ConfigMap
metadata:
name: workflow-controller-configmap
namespace: octopus
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: argo
namespace: octopus
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: cronworkflows.argoproj.io
namespace: octopus
spec:
group: argoproj.io
names:
kind: CronWorkflow
plural: cronworkflows
shortNames:
- cronwf
- cwf
scope: Namespaced
version: v1alpha1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-server
namespace: octopus
spec:
selector:
matchLabels:
app: argo-server
template:
metadata:
namespace: octopus
labels:
app: argo-server
spec:
containers:
- args:
- server
image: argoproj/argocli:v2.5.0-rc2
name: argo-server
ports:
- containerPort: 2746
readinessProbe:
httpGet:
path: /
port: 2746
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 30
serviceAccountName: argo-server
---
apiVersion: v1
kind: Service
metadata:
name: argo-server
namespace: octopus
spec:
ports:
- port: 2746
targetPort: 2746
selector:
app: argo-server
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: argo-server
namespace: octopus
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: argo-role
namespace: octopus
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: octopus
labels:
rbac.authorization.k8s.io/aggregate-to-admin: "true"
name: argo-aggregate-to-admin
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: octopus
labels:
rbac.authorization.k8s.io/aggregate-to-edit: "true"
name: argo-aggregate-to-edit
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: octopus
labels:
rbac.authorization.k8s.io/aggregate-to-view: "true"
name: argo-aggregate-to-view
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-cluster-role
namespace: octopus
rules:
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- create
- delete
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
verbs:
- get
- list
- watch
- update
- patch
- delete
- create
- apiGroups:
- argoproj.io
resources:
- workflowtemplates
- workflowtemplates/finalizers
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- get
- list
- apiGroups:
- argoproj.io
resources:
- cronworkflows
- cronworkflows/finalizers
verbs:
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-server-cluster-role
namespace: octopus
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- apiGroups:
- ""
resources:
- pods
- pods/exec
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- apiGroups:
- argoproj.io
resources:
- workflows
- workflowtemplates
- cronworkflows
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-binding
namespace: octopus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-cluster-role
subjects:
- kind: ServiceAccount
name: argo
namespace: octopus
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-server-binding
namespace: octopus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-server-cluster-role
subjects:
- kind: ServiceAccount
name: argo-server
namespace: octopus
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: argo-binding
namespace: octopus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: argo-role
subjects:
- kind: ServiceAccount
name: argo
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: default-admin
namespace: octopus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admin
subjects:
- kind: ServiceAccount
name: default
namespace: octopus
- kind: ServiceAccount
name: argo
namespace: octopus
- kind: ServiceAccount
name: argo-server
namespace: octopus
Anything else we need to know?:
Environment:
argoproj/workflow-controller:v2.5.0-rc2
argoproj/argocli:v2.5.0-rc2
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.5", GitCommit:"0e9fcb426b100a2aea5ed5c25b3d8cfbb01a8acf", GitTreeState:"clean", BuildDate:"2019-08-05T09:13:08Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Other debugging information (if applicable):
hello-world-8fb2g Error 10m
kubectl logs hello-world-8fb2g -c init
kubectl logs hello-world-8fb2g -c wait
kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)
Logs
kubectl get wf -n octopus
NAME STATUS AGE
hello-world-8fb2g Error 10m
kubectl logs hello-world-8fb2g -c wait
time="2020-01-28T19:31:02Z" level=info msg="Creating a docker executor"
time="2020-01-28T19:31:02Z" level=info msg="Executor (version: v0.0.0+unknown, build_date: 1970-01-01T00:00:00Z) initialized (pod: octopus/hello-world-8fb2g) with template:\n{\"name\":\"whalesay\",\"arguments\":{},\"inputs\":{},\"outputs\":{},\"metadata\":{},\"container\":{\"name\":\"\",\"image\":\"docker/whalesay\",\"command\":[\"cowsay\"],\"args\":[\"hello world\"],\"resources\":{\"limits\":{\"cpu\":\"100m\",\"memory\":\"32Mi\"}}}}"
time="2020-01-28T19:31:02Z" level=info msg="Waiting on main container"
time="2020-01-28T19:31:07Z" level=info msg="main container started with container ID: d663ace322b2c3f40de96a82447f85c8d73304d148b17c7bb243fed3edc56158"
time="2020-01-28T19:31:07Z" level=info msg="Starting annotations monitor"
time="2020-01-28T19:31:07Z" level=info msg="docker wait d663ace322b2c3f40de96a82447f85c8d73304d148b17c7bb243fed3edc56158"
time="2020-01-28T19:31:07Z" level=info msg="Starting deadline monitor"
time="2020-01-28T19:31:07Z" level=info msg="Main container completed"
time="2020-01-28T19:31:07Z" level=info msg="No output parameters"
time="2020-01-28T19:31:07Z" level=info msg="No output artifacts"
time="2020-01-28T19:31:07Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2020-01-28T19:31:07Z" level=info msg="Annotations monitor stopped"
time="2020-01-28T19:31:07Z" level=info msg="Killing sidecars"
time="2020-01-28T19:31:07Z" level=info msg="Alloc=7229 TotalAlloc=12521 Sys=70846 NumGC=4 Goroutines=9"
kubectl logs hello-world-8fb2g -c main
_____________
< hello world >
-------------
\
\
\
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
kubectl logs -n octopus $(kubectl get pods -l app=workflow-controller -n octopus -o name)
time="2020-01-28T19:37:25Z" level=warning msg="ConfigMap 'workflow-controller-configmap' does not have key 'config'"
time="2020-01-28T19:37:25Z" level=info msg="Starting CronWorkflow controller"
time="2020-01-28T19:37:25Z" level=info msg="Workflow Controller (version: v0.0.0+unknown) starting"
time="2020-01-28T19:37:25Z" level=info msg="Workers: workflow: 8, pod: 8"
time="2020-01-28T19:37:25Z" level=info msg="Watch Workflow controller config map updates"
time="2020-01-28T19:37:25Z" level=info msg="Starting workflow TTL controller (resync 20m0s)"
time="2020-01-28T19:37:25Z" level=info msg="Performing periodic GC every 5m0s"
time="2020-01-28T19:37:25Z" level=info msg="Detected ConfigMap update. Updating the controller config."
time="2020-01-28T19:37:25Z" level=warning msg="ConfigMap 'workflow-controller-configmap' does not have key 'config'"
time="2020-01-28T19:37:25Z" level=info msg="Started workflow TTL worker"
CrashLoopBackOff
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.
This is fixed in rc4
Most helpful comment
This is fixed in rc4