concourse: Bug: worker mangles no_proxy environment variable
Bug Report
We just upgraded from 3.9.2
to 3.13.0
and had saw all our pipelines failing.
In our setup we rely on http(s)_proxy
and no_proxy
as our corporate proxy refuses to serve internal resources.
Since the upgrade we can’t access internal resources anymore which means the no_proxy
environment variable is not set or wrong.
Inspecting running /opt/resource/check
processes via /proc/$PID/environ
we noticed that the no_proxy
environment variable only contains the very last part the value we pass via the http_proxy
environment variable to the worker:
env no_proxy=host1,host2,host3 concourse worker ...
ends up as no_proxy=host3
in containers scheduled by the atc to that worker.
We also confirmed that this is already wrong in the database via select name,no_proxy from workers
. So the worker seems to be picking this up wrong during startup.
I opened a PR that hopefully fixes this issue: https://github.com/concourse/worker/pull/1
The following can also be handy:
-
Concourse version:
3.13.0
-
Deployment type (BOSH/Docker/binary):
binary
-
Did this used to work?
Yes with 3.9.2
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 8
- Comments: 16 (8 by maintainers)
@cfasnacht As this bug only effects how environment variables are parsed you can mitigate this by starting the worker with the command line flag
--no-proxy=$no_proxy
. This works because command line arguments have a higher precedence then environment variables.