Open shun095 opened 1 year ago
Duplicate bug?
@shun095 looks like your argoexec version is wrong. Can you configure the v3.4.3
on your deployment?
time="2022-11-26T17:46:33.417Z" level=info msg="Starting Workflow Executor" version=untagged
@sarabala1979 Same result.
time="2022-11-29T04:45:20.386Z" level=info msg="Starting Workflow Executor" version=v3.4.3
time="2022-11-29T04:45:20.389Z" level=info msg="Using executor retry strategy" Duration=1s Factor=1.6 Jitter=0.5 Steps=5
time="2022-11-29T04:45:20.389Z" level=info msg="Executor initialized" deadline="0001-01-01 00:00:00 +0000 UTC" includeScriptOutput=false namespace=argo podName=clone-relative-submodule template="{\"name\":\"clone\",\"inputs\":{\"artifacts\":[{\"name\":\"repo\",\"path\":\"/repo\",\"git\":{\"repo\":\"https://github.com/valorl/repository-with-relative-submodule.git\",\"revision\":\"main\"}}]},\"outputs\":{},\"metadata\":{},\"script\":{\"name\":\"\",\"image\":\"alpine/git:latest\",\"command\":[\"sh\"],\"workingDir\":\"/repo\",\"resources\":{},\"source\":\"git status\\n\"}}" version="&Version{Version:v3.4.3,BuildDate:2022-10-31T05:40:15Z,GitCommit:eddb1b78407adc72c08b4ed6be8f52f2a1f1316a,GitTag:v3.4.3,GitTreeState:clean,GoVersion:go1.18.7,Compiler:gc,Platform:linux/amd64,}"
time="2022-11-29T04:45:20.433Z" level=info msg="Loading script source to /argo/staging/script"
time="2022-11-29T04:45:20.433Z" level=info msg="Start loading input artifacts..."
time="2022-11-29T04:45:20.433Z" level=info msg="Downloading artifact: repo"
time="2022-11-29T04:45:21.765Z" level=info msg="Load artifact" artifactName=repo duration=1.332219619s error="failed to update submodules: exec: \"git\": executable file not found in $PATH" key=
time="2022-11-29T04:45:21.765Z" level=error msg="executor error: artifact repo failed to load: failed to update submodules: exec: \"git\": executable file not found in $PATH"
time="2022-11-29T04:45:21.765Z" level=info msg="Alloc=9878 TotalAlloc=15555 Sys=22994 NumGC=4 Goroutines=3"
time="2022-11-29T04:45:21.765Z" level=fatal msg="artifact repo failed to load: failed to update submodules: exec: \"git\": executable file not found in $PATH"
quay.io/argoproj/argoexec:v3.4.3
docker image seems doesn't have git binary
$ docker run --name tmp quay.io/argoproj/argoexec:v3.4.3
argoexec is the executor sidecar to workflow containers
Usage:
argoexec [flags]
argoexec [command]
Available Commands:
agent
artifact
completion Generate the autocompletion script for the specified shell
data Process data
emissary
help Help about any command
init Load artifacts
kill
resource update a resource and wait for resource conditions
version Print version information
wait wait for main container to finish and save artifacts
Flags:
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--as-uid string UID to impersonate for the operation
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--context string The name of the kubeconfig context to use
--gloglevel int Set the glog logging level
-h, --help help for argoexec
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to a kube config. Only required if out-of-cluster
--log-format string The formatter to use for logs. One of: text|json (default "text")
--loglevel string Set the logging level. One of: debug|info|warn|error (default "info")
-n, --namespace string If present, the namespace scope for this CLI request
--password string Password for basic authentication to the API server
--proxy-url string If provided, this URL will be used to connect via proxy
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
--server string The address and port of the Kubernetes API server
--tls-server-name string If provided, this name will be used to validate server certificate. If this is not provided, hostname used to contact the server is used.
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
--username string Username for basic authentication to the API server
Use "argoexec [command] --help" for more information about a command.
$ docker export tmp | tar -tf - | grep bin
bin/
bin/argoexec
bin/jq
bin/kubectl
sbin/
usr/bin/
usr/sbin/
usr/sbin/tzconfig
usr/share/zoneinfo/Asia/Harbin
usr/share/zoneinfo/posix/Asia/Harbin
usr/share/zoneinfo/right/Asia/Harbin
as my investigation, until v3.3.9 has git binary. Since v3.4.0, it's not included
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is a mentoring request, please provide an update here. Thank you for your contributions.
I've been doing some testing with argo workflows and have hit this same issue while trying out @descrepes terraform template alongside Terraform Cloud. I dug into it a bit and it looks like the change from using the alpine:3 container to the distroless/static container is where the git binary disappeared. Specifically this commit: https://github.com/argoproj/argo-workflows/commit/bc01003468186ddcb93d1d32e9a49a75046827e7
The updated Dockerfile does copy a couple of additional binaries in (kubectl and jq) but does not grab git as part of the build process. I presume that the git feature has not worked since this change was introduced.
Any updates on this issue?
I'm using gitArtifact and it worked fine until using git submodules. Now I'm getting this error:
time="2023-02-09T18:38:00.383Z" level=info msg="Downloading artifact: argo-source" time="2023-02-09T18:38:05.634Z" level=info msg="Load artifact" artifactName=argo-source duration=5.250753712s error="failed to update submodules: exec: \"git\": executable file not found in $PATH" key=
yeah, looks like argoexec container no longer has the git executable past v3.4.0, this is a major issue for git artefacts
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is a mentoring request, please provide an update here. Thank you for your contributions.
the same problem
folks, can you try the latest version of argoexec and argo-workflows, we migrated from the git executable to a go native implementation of git https://github.com/go-git/go-git in v3.4.0
I ran into this issue yesterday when using v3.4.9.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
I ran into this issue using v3.5.10
Pre-requisites
:latest
What happened/what you expected to happen?
Running version v3.4.3 with quay.io/argoproj/argoexec:latest or quay.io/argoproj/argoexec:v3.4.3 (both reproduced)
I used same configuration with this issue: https://github.com/argoproj/argo-workflows/issues/7141
Init container log:
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.
Logs from the workflow controller
Logs from in your workflow's wait container