From e74b2510830dd33e8eec4cc820536dde07191a22 Mon Sep 17 00:00:00 2001 From: Beni Cherniavsky-Paskin Date: Mon, 15 May 2017 12:14:41 +0300 Subject: [PATCH] kubernetes_connect: add timeout settings Relies on kubeclient 2.4 bumped in https://github.com/ManageIQ/manageiq-gems-pending/pull/156. --- .../providers/kubernetes/container_manager_mixin.rb | 6 +++++- config/settings.yml | 2 ++ .../manageiq/providers/kubernetes/container_manager_spec.rb | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/models/manageiq/providers/kubernetes/container_manager_mixin.rb b/app/models/manageiq/providers/kubernetes/container_manager_mixin.rb index 280ee39f06..b28616b02f 100644 --- a/app/models/manageiq/providers/kubernetes/container_manager_mixin.rb +++ b/app/models/manageiq/providers/kubernetes/container_manager_mixin.rb @@ -31,7 +31,11 @@ def kubernetes_connect(hostname, port, options) options[:version] || kubernetes_version, :ssl_options => Kubeclient::Client::DEFAULT_SSL_OPTIONS.merge(options[:ssl_options] || {}), :auth_options => kubernetes_auth_options(options), - :http_proxy_uri => VMDB::Util.http_proxy_uri + :http_proxy_uri => VMDB::Util.http_proxy_uri, + :timeouts => { + :open => Settings.ems.ems_kubernetes.open_timeout.to_f_with_method, + :read => Settings.ems.ems_kubernetes.read_timeout.to_f_with_method + } ) end diff --git a/config/settings.yml b/config/settings.yml index af761db801..3e10743b81 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -36,6 +36,8 @@ :network: :critical: - POD_HOSTPORTCONFLICT + :open_timeout: 60.seconds + :read_timeout: 60.seconds :http_proxy: :kubernetes: :host: diff --git a/spec/models/manageiq/providers/kubernetes/container_manager_spec.rb b/spec/models/manageiq/providers/kubernetes/container_manager_spec.rb index cebdbf95cb..7caeae1610 100644 --- a/spec/models/manageiq/providers/kubernetes/container_manager_spec.rb +++ b/spec/models/manageiq/providers/kubernetes/container_manager_spec.rb @@ -112,7 +112,8 @@ require 'kubeclient' expect(Kubeclient::Client).to receive(:new).with( instance_of(URI::HTTPS), 'v1', - hash_including(:http_proxy_uri => VMDB::Util.http_proxy_uri) + hash_including(:http_proxy_uri => VMDB::Util.http_proxy_uri, + :timeouts => match(:open => be > 0, :read => be > 0)) ) described_class.raw_connect(hostname, port, options) end