diff --git a/changelogs/unreleased/53676-ip-address-of-gitlab-runner-is-wrong-in-the-runners-description.yml b/changelogs/unreleased/53676-ip-address-of-gitlab-runner-is-wrong-in-the-runners-description.yml new file mode 100644 index 0000000000000000000000000000000000000000..12a6509e6f7b327ca77911dc57a9f1393873df97 --- /dev/null +++ b/changelogs/unreleased/53676-ip-address-of-gitlab-runner-is-wrong-in-the-runners-description.yml @@ -0,0 +1,5 @@ +--- +title: Get remote IP address of runner +merge_request: 24624 +author: +type: changed diff --git a/lib/api/helpers/runner.rb b/lib/api/helpers/runner.rb index 45d0343bc89930d2a8cb852b811653185f5dd88e..16df8e830e15986011a8839b9aa3a0215bbebf59 100644 --- a/lib/api/helpers/runner.rb +++ b/lib/api/helpers/runner.rb @@ -26,7 +26,7 @@ module API end def get_runner_ip - { ip_address: request.ip } + { ip_address: request.env["HTTP_X_FORWARDED_FOR"] || request.ip } end def current_runner diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index ec48bf60426ff9a1b8a18e25b8b50978943bf2ea..ed0108c846a95573c450c9d2ffa75075525a8bbb 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -210,8 +210,8 @@ describe API::Runner, :clean_gitlab_redis_shared_state do it "sets the runner's ip_address" do post api('/runners'), - params: { token: registration_token }, - headers: { 'REMOTE_ADDR' => '123.111.123.111' } + params: { token: registration_token }, + headers: { 'X-Forwarded-For' => '123.111.123.111' } expect(response).to have_gitlab_http_status 201 expect(Ci::Runner.first.ip_address).to eq('123.111.123.111') @@ -520,7 +520,7 @@ describe API::Runner, :clean_gitlab_redis_shared_state do it "sets the runner's ip_address" do post api('/jobs/request'), params: { token: runner.token }, - headers: { 'User-Agent' => user_agent, 'REMOTE_ADDR' => '123.222.123.222' } + headers: { 'User-Agent' => user_agent, 'X-Forwarded-For' => '123.222.123.222' } expect(response).to have_gitlab_http_status 201 expect(runner.reload.ip_address).to eq('123.222.123.222')