Commit 09a7a7aa authored by Magdalena Frankiewicz's avatar Magdalena Frankiewicz

Set default timeouts for KubeClient

To overwrite default timeout summing up to max 2 mins
parent 7de00bf4
......@@ -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
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment