argoproj / argoproj/argo-workflows

Git artifacts detached from revision

Open
#10,018 8 comments 0 reactions 1 assignee Claimed by @rohankmr414 View on GitHub
area/artifacts P3 solution/workaround type/regression
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)) (I would fix myself but I am not allowed at my organization. I may only report during business hours.)

### What happened/what you expected to happen?

When using a standard git input artifact in Argo Workflows v3.4.3 or latest to clone a repository, the resulting source directory will not be on the branch that was cloned.

If you were to exec into the container that ran a git clone and run `git branch` you will see (based on the workflow I provided),

```
* (no branch)
main
feature/2022q4
```

We recently upgraded from v3.2.7 where the clone would have been on the branch `feature/2022q4` based on the sample workflow I've provided.

### Version

v3.4.3

### 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
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: test-git-clone-
spec:
entrypoint: git-clone
templates:
- name: git-clone
inputs:
artifacts:
- name: repo-source
path: /clone
git:
# Any repo and revision can be used here
repo: https://github.com/wsams/latex
revision: "release/2022q4"
script:
image: golang:1.19.2
command: ["sh"]
workingDir: /clone
source: |
git status
git branch
```

### Logs from the workflow controller

I ran,
```
kubectl logs -n argo-ns deploy/workflow-controller | grep ${workflow}
```
but as far as I can tell nothing related to this git clone was logged.
```
msg="Get leases 200"
msg="Update leases 200"
msg="Alloc=4653 TotalAlloc=336634 Sys=20305 NumGC=818 Goroutines=14"
msg="Get leases 200"
msg="Processing workflow" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Get configmaps 404"
ng msg="Non-transient error: configmaps \"artifact-repositories\" not found"
msg="resolved artifact repository" artifactRepositoryRef=default-artifact-repository
msg="Updated phase -> Running" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Pod node test-git-clone-dm2lr initialized Pending" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Create events 201"
msg="Create pods 201"
msg="Created pod: test-git-clone-dm2lr (test-git-clone-dm2lr)" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="TaskSet Reconciliation" namespace=argo-ns workflow=test-git-clone-dm2lr
msg=reconcileAgentPod namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Workflow to be dehydrated" Workflow Size=1607
msg="Update workflows 200"
msg="Workflow update successful" namespace=argo-ns phase=Running resourceVersion=258834004 workflow=test-git-clone-dm2lr
msg="Get leases 200"
msg="Update leases 200"
msg="Get leases 200"
msg="Get leases 200"
msg="Update leases 200"
msg="Get leases 200"
msg="Processing workflow" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Task-result reconciliation" namespace=argo-ns numObjs=0 workflow=test-git-clone-dm2lr
ng msg="workflow uses legacy/insecure pod patch, see https://argoproj.github.io/argo-workflows/workflow-rbac/" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="node changed" namespace=argo-ns new.message= new.phase=Succeeded new.progress=0/1 nodeID=test-git-clone-dm2lr old.message= old.phase=Pending old.progress=0/1 workflow=test-git-clone-dm2lr
msg="TaskSet Reconciliation" namespace=argo-ns workflow=test-git-clone-dm2lr
msg=reconcileAgentPod namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Updated phase Running -> Succeeded" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Marking workflow completed" namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Checking daemoned children of " namespace=argo-ns workflow=test-git-clone-dm2lr
msg="Workflow to be dehydrated" Workflow Size=2195
msg="cleaning up pod" action=deletePod key=argo-ns/test-git-clone-dm2lr-1340600742-agent/deletePod
msg="Create events 201"
msg="Delete pods 404"
msg="Update workflows 200"
msg="Workflow update successful" namespace=argo-ns phase=Succeeded resourceVersion=258834066 workflow=test-git-clone-dm2lr
msg="DeleteCollection workflowtaskresults 200"
msg="Create events 201"
msg="cleaning up pod" action=labelPodCompleted key=argo-ns/test-git-clone-dm2lr/labelPodCompleted
```

### Logs from in your workflow's wait container

I ran the following because this workflow completes successfully. There are no errors in any of these steps.
```
kubectl logs -n argo-ns -c wait -l workflows.argoproj.io/workflow=${workflow},workflow.argoproj.io/phase!=Completed
```

```
time="2022-11-11T19:38:40.099Z" level=info msg="Starting Workflow Executor" version=v3.4.3
time="2022-11-11T19:38:40.102Z" level=info msg="Using executor retry strategy" Duration=1s Factor=1.6 Jitter=0.5 Steps=5
time="2022-11-11T19:38:40.102Z" level=info msg="Starting deadline monitor"
time="2022-11-11T19:38:43.102Z" level=info msg="Main container completed" error=""
time="2022-11-11T19:38:43.102Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2022-11-11T19:38:43.102Z" level=info msg="No output parameters"
time="2022-11-11T19:38:43.102Z" level=info msg="No output artifacts"
time="2022-11-11T19:38:43.102Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: archive-logs/argo-ns/2022/11/11/test-git-clone-dm2lr/test-git-clone-dm2lr/main.log"
time="2022-11-11T19:38:43.102Z" level=info msg="Creating minio client using static credentials" endpoint=s3.endpoint
time="2022-11-11T19:38:43.110Z" level=info msg="Saving file to s3" bucket=argo-snd endpoint=s3.endpoint key=archive-logs/argo-ns/2022/11/11/test-git-clone-dm2lr/test-git-clone-dm2lr/main.log path=/tmp/argo/outputs/logs/main.log
time="2022-11-11T19:38:44.364Z" level=info msg="Save artifact" artifactName=main-logs duration=1.261411633s error="" key=archive-logs/argo-ns/2022/11/11/test-git-clone-dm2lr/test-git-clone-dm2lr/main.log
time="2022-11-11T19:38:44.364Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2022-11-11T19:38:44.364Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2022-11-11T19:38:44.371Z" level=info msg="Create workflowtaskresults 403"
time="2022-11-11T19:38:44.371Z" level=warning msg="failed to patch task set, falling back to legacy/insecure pod patch, see https://argoproj.github.io/argo-workflows/workflow-rbac/" error="workflowtaskresults.argoproj.io is forbidden: User \"system:serviceaccount:argo-ns:default\" cannot create resource \"workflowtaskresults\" in API group \"argoproj.io\" in the namespace \"argo-ns\""
time="2022-11-11T19:38:44.381Z" level=info msg="Patch pods 200"
time="2022-11-11T19:38:44.385Z" level=info msg="Alloc=8351 TotalAlloc=16773 Sys=22994 NumGC=5 Goroutines=10"
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.