diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-09 15:08:54 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-09 15:08:54 +0300 |
commit | 1804227b4fb012858930b66419b026a5bf8b8f7d (patch) | |
tree | 60df6784d16c2a05d5c3110d8651cfed86a96034 | |
parent | 204311cdb5049d193070ce04bcc0d4f8bcc0b6f8 (diff) |
Add latest changes from gitlab-org/gitlab@master
-rw-r--r-- | lib/gitlab/kubernetes/kube_client.rb | 11 | ||||
-rw-r--r-- | spec/lib/gitlab/kubernetes/kube_client_spec.rb | 10 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/gitlab/kubernetes/kube_client.rb b/lib/gitlab/kubernetes/kube_client.rb index 7d2abcdb0a3..7c5525b982c 100644 --- a/lib/gitlab/kubernetes/kube_client.rb +++ b/lib/gitlab/kubernetes/kube_client.rb @@ -90,12 +90,21 @@ module Gitlab attr_reader :api_prefix, :kubeclient_options + DEFAULT_KUBECLIENT_OPTIONS = { + timeouts: { + open: 10, + read: 30 + } + }.freeze + # We disable redirects through 'http_max_redirects: 0', # so that KubeClient does not follow redirects and # expose internal services. def initialize(api_prefix, **kubeclient_options) @api_prefix = api_prefix - @kubeclient_options = kubeclient_options.merge(http_max_redirects: 0) + @kubeclient_options = DEFAULT_KUBECLIENT_OPTIONS + .deep_merge(kubeclient_options) + .merge(http_max_redirects: 0) validate_url! end diff --git a/spec/lib/gitlab/kubernetes/kube_client_spec.rb b/spec/lib/gitlab/kubernetes/kube_client_spec.rb index 729c2b04930..1959fbca33b 100644 --- a/spec/lib/gitlab/kubernetes/kube_client_spec.rb +++ b/spec/lib/gitlab/kubernetes/kube_client_spec.rb @@ -92,6 +92,16 @@ describe Gitlab::Kubernetes::KubeClient do it_behaves_like 'local address' end + + it 'falls back to default options, but allows overriding' do + client = Gitlab::Kubernetes::KubeClient.new(api_url, {}) + defaults = Gitlab::Kubernetes::KubeClient::DEFAULT_KUBECLIENT_OPTIONS + expect(client.kubeclient_options[:timeouts]).to eq(defaults[:timeouts]) + + client = Gitlab::Kubernetes::KubeClient.new(api_url, timeouts: { read: 7 }) + expect(client.kubeclient_options[:timeouts][:read]).to eq(7) + expect(client.kubeclient_options[:timeouts][:open]).to eq(defaults[:timeouts][:open]) + end end describe '#core_client' do |