Gitlab runner service doesn't take proxy settings from config.toml file on Windows
Summary
Hi guys, I have been struggling all day long rying to make my Windows Gitlab runner work from behind a proxy.
The problem I have is that the windows service doesn't seem able to connect and communicate with my Gitlab server.
This is a message I could find in the Windows Application log:
time="2018-07-04T16:45:21+02:00" level=warning msg="Checking for jobs... failed" runner=ab7697e4 status="couldn't execute POST against https://mygitlab.instance.io/api/v4/jobs/request: Post https://mygitlab.instance.io/api/v4/jobs/request: dial tcp 111.222.333.4:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond."
(I have renamed the urls and ips's for privacy reasons)
I had the same message when I called via a elevated cmd prompt.
D:\GitLab\gitlab-runner.exe run --working-directory D:\GitLab --config D:\GitLab\config.toml --service gitlab-runner --syslog
(The code is actually just a copy paste of the GitLab-Runner service start path).
Setting the HTTP_PROXY variables solved the problem in the console prompt as follewd:
SET HTTP_PROXY=http://Address.ofMyProxy.net:8079
SET HTTPS_PROXY=https://Address.ofMyProxy.net:8079
D:\GitLab\gitlab-runner.exe run --working-directory D:\GitLab --config D:\GitLab\config.toml --service gitlab-runner --syslog
I tried to configure the config.toml file with the HTTP_PROXY environment variables (As described in your documentation here).
concurrent = 1
check_interval = 0
[[runners]]
environment = ["HTTPS_PROXY=https://Address.ofMyProxy.net:8079", "HTTP_PROXY=http://Address.ofMyProxy.net:8079"]
name = "Windows-Os-Automation"
url = "https://mygitlab.instance.io"
token = "aawwee223344556677889900"
executor = "shell"
[runners.cache]
Steps to reproduce
Register and Install a gitlab runner on a Windows machine, make sure it is behind a proxy, add a basic gitlab-ci.yml, commit and push the yml file.
Example Project
This is hosted on a local instance.
What is the current bug behavior?
The bug behaviour is that I would expect my runner to be able to communicate with my gitlab instance via the proxy using the HTTP_PROXY environment variables I have defined in the config.toml
The result, is that I see my CI job is 'Pending' and 'waiting to be picked up by a runner'.
What is the expected correct behavior?
The runner should be able to pick the CI job I created, and should not be pending anymore. I should also not have the Warning message in the Windows application log anymore.
Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise.)
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:env:info
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
(If you can, link to the line of code that might be responsible for the problem)