Closed przemeklal closed 11 months ago
Git sync fails behind a proxy regardless of the protocol used, SSH and HTTP both fail.
juju run-action cos-config/0 sync-now --wait unit-cos-config-0: UnitId: cos-config/0 id: "6" log: - 2023-08-18 12:06:54 +0000 UTC Calling git-sync with --one-time... - 2023-08-18 12:10:29 +0000 UTC I0818 12:06:54.309038 306 main.go:473] "level"=0 "msg"="starting up" "pid"=306 "args"=["/git-sync","--repo","https://<username>:<token>@git.launchpad.net/~<redacted>/+git/cos-config","--branch","<branch>","--r ev","HEAD","--depth","1","--root","/git","--dest","repo","--one-time"] - 2023-08-18 12:10:29 +0000 UTC I0818 12:06:54.309175 306 main.go:923] "level"=0 "msg"="cloning repo" "origin"="https://<username>:<token>@git.launchpad.net/~<redacted>/+git/cos-config" "path"="/git" - 2023-08-18 12:10:29 +0000 UTC I0818 12:06:54.311270 306 main.go:929] "level"=0 "msg"="git root exists and is not empty (previous crash?), cleaning up" "path"="/git" - '2023-08-18 12:10:30 +0000 UTC E0818 12:10:29.295155 306 main.go:525] "msg"="too many failures, aborting" "error"="Run(git clone -v --no-checkout -b <branch> --depth 1 https://<username>:<token>@git.launchpad.net/~<redacted>/+git/cos-config /git): context deadline exceeded: { stdout: "", stderr: "Cloning into ''/git''...\nfatal: unable to access ''https://git.launchpad.net/~<redacted>/+git/cos-config/'': Failed to connect to git.launchpad.net port 443: Connection timed out\n" }" "failCount"=0' message: 'Sync error: Exited with code 1.' results: {} status: failed timing: completed: 2023-08-18 12:10:30 +0000 UTC enqueued: 2023-08-18 12:03:02 +0000 UTC started: 2023-08-18 12:06:54 +0000 UTC
Repository is accessible through the proxy from the cos-config git-sync container:
$ juju ssh --container git-sync cos-config/0 # export https_proxy=http://<proxy_url>:8000 # git clone -v --no-checkout -b <branch> --depth 1 https://<username>:<token>@git.launchpad.net/~<redacted>/+git/cos-config Cloning into 'cos-config'... POST git-upload-pack (415 bytes) POST git-upload-pack (157 bytes) remote: Enumerating objects: 6, done. remote: Counting objects: 100% (6/6), done. remote: Compressing objects: 100% (4/4), done. remote: Total 6 (delta 0), reused 0 (delta 0) Receiving objects: 100% (6/6), 16.93 KiB | 298.00 KiB/s, done.
Without the proxy env var it throws the same error as the sync-now action:
$ juju ssh --container git-sync cos-config/0 # unset https_proxy # git clone -v --no-checkout -b <branch> --depth 1 https://<username>:<token>@git.launchpad.net/~<redacted>/+git/cos-config Cloning into 'cos-config'... fatal: unable to access 'https://git.launchpad.net/~<redacted>/+git/cos-config/': Failed to connect to git.launchpad.net port 443: Connection timed out
cos-configuration-k8s-operator rev 38 running behind proxya
Fixing it for ssh protocol might be tricky.
Example implementation: https://github.com/canonical/grafana-k8s-operator/pull/242/files#diff-b9ed39bbc9c0387bd3e07da31d13373745534a1cd723d3e292c73496b12e307c
Bug Description
Git sync fails behind a proxy regardless of the protocol used, SSH and HTTP both fail.
To Reproduce
Repository is accessible through the proxy from the cos-config git-sync container:
Without the proxy env var it throws the same error as the sync-now action:
Environment
cos-configuration-k8s-operator rev 38 running behind proxya
Relevant log output
Additional context
Fixing it for ssh protocol might be tricky.