argoproj / argoproj/argo-workflows
containerSet: `failed to look-up entrypoint/cmd for image ""` `could not parse reference`
- Dominant language
- Go
- Stars
- 17k
- Forks
- 3.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 138
Description
### Pre-requisites
- [X] I have double-checked my configuration
- [X] I can confirm the issues exists when I tested with `:latest`
- [ ] I'd like to contribute the fix myself (see [contributing guide](https://github.com/argoproj/argo-workflows/blob/master/docs/CONTRIBUTING.md))
### What happened/what you expected to happen?
Running containerSet fails with error:
```
failed to look-up entrypoint/cmd for image "", you must either explicitly specify the command, or list the image's command in the index: https://argoproj.github.io/argo-workflows/workflow-executors/#emissary-emissary: could not parse reference:
```
Sample workflow:
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: test
spec:
entrypoint: main
templates:
- name: main
containerSet:
containers:
- name: a
image: argoproj/argosay:v2
command: [ sh, -c ]
args: [ echo, hi, /workspace/out ]
- name: main
image: argoproj/argosay:v2
command: [ sh, -c ]
args: [ echo, hi, /workspace/out ]
```
### Version
v3.4.1 / helm chart 0.20.1
### 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.
```YAML
curl -s https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/container-set-template/sequence-workflow.yaml | sed -E 's/generateName: sequence-/name: test/g' > sequence-wf.yaml
kubectl apply -f sequence-wf.yaml
Note: adding args and command attributes does not help.
```
### Logs from the workflow controller
```
msg="Event(v1.ObjectReference{Kind:\"Workflow\", Namespace:\"default\", Name:\"test\", APIVersion:\"argoproj.io/v1alpha1\", ResourceVersion:\"19783990\", FieldPath:\"\"}): type: 'Normal' reason: 'WorkflowNodeRunning' Running node test: failed to look-up entrypoint/cmd for image \"\", you must either explicitly specify the command, or list the image's command in the index: https://argoproj.github.io/argo-workflows/workflow-executors/#emissary-emissary: could not parse reference: "
```
### Logs from in your workflow's wait container
n/a
Contributor guide
Research direction
Reproduce the failure with examples/container-set-template/sequence-workflow.yaml and the supplied containerSet workflow on Kubernetes. Start by tracing the Emissary executor path described in the error and compare it with the containerSet example. Done means the workflow runs without the empty-image or unparseable-reference error when command and args are specified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100