diff --git a/manifests/cache.pp b/manifests/cache.pp index b34ca273b..0ec83fdf1 100644 --- a/manifests/cache.pp +++ b/manifests/cache.pp @@ -64,6 +64,28 @@ # (floating point value) # Defaults to $::os_service_default # +# [*enable_socket_keepalive*] +# (Optional) Global toggle for the socket keepalive of dogpile's +# pymemcache backend +# Defaults to $::os_service_default +# +# [*socket_keepalive_idle*] +# (Optional) The time (in seconds) the connection needs to remain idle +# before TCP starts sending keepalive probes. Should be a positive integer +# most greater than zero. +# Defaults to $::os_service_default +# +# [*socket_keepalive_interval*] +# (Optional) The time (in seconds) between individual keepalive probes. +# Should be a positive integer most greater than zero. +# Defaults to $::os_service_default +# +# [*socket_keepalive_count*] +# (Optional) The maximum number of keepalive probes TCP should send before +# dropping the connection. Should be a positive integer most greater than +# zero. +# Defaults to $::os_service_default +# # [*memcache_pool_maxsize*] # (Optional) Max total number of open connections to every memcached server. # (oslo_cache.memcache_pool backend only). (integer value) @@ -133,6 +155,10 @@ class keystone::cache( $memcache_servers = $::os_service_default, $memcache_dead_retry = $::os_service_default, $memcache_socket_timeout = $::os_service_default, + $enable_socket_keepalive = $::os_service_default, + $socket_keepalive_idle = $::os_service_default, + $socket_keepalive_interval = $::os_service_default, + $socket_keepalive_count = $::os_service_default, $memcache_pool_maxsize = $::os_service_default, $memcache_pool_unused_timeout = $::os_service_default, $memcache_pool_connection_get_timeout = $::os_service_default, @@ -166,6 +192,10 @@ class keystone::cache( memcache_servers => $memcache_servers, memcache_dead_retry => $memcache_dead_retry, memcache_socket_timeout => $memcache_socket_timeout, + enable_socket_keepalive => $enable_socket_keepalive, + socket_keepalive_idle => $socket_keepalive_idle, + socket_keepalive_interval => $socket_keepalive_interval, + socket_keepalive_count => $socket_keepalive_count, memcache_pool_maxsize => $memcache_pool_maxsize, memcache_pool_unused_timeout => $memcache_pool_unused_timeout, memcache_pool_connection_get_timeout => $memcache_pool_connection_get_timeout, diff --git a/releasenotes/notes/add_keepalive_options-3802510b6d4461e1.yaml b/releasenotes/notes/add_keepalive_options-3802510b6d4461e1.yaml new file mode 100644 index 000000000..e03e57a91 --- /dev/null +++ b/releasenotes/notes/add_keepalive_options-3802510b6d4461e1.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Add socket keepalive options for the pymemcache (dogpile.cache) backend. diff --git a/spec/classes/keystone_cache_spec.rb b/spec/classes/keystone_cache_spec.rb index c28abf7bd..182ebf33c 100644 --- a/spec/classes/keystone_cache_spec.rb +++ b/spec/classes/keystone_cache_spec.rb @@ -23,6 +23,10 @@ describe 'keystone::cache' do :memcache_servers => '', :memcache_dead_retry => '', :memcache_socket_timeout => '', + :enable_socket_keepalive => '', + :socket_keepalive_idle => '', + :socket_keepalive_interval => '', + :socket_keepalive_count => '', :memcache_pool_maxsize => '', :memcache_pool_unused_timeout => '', :memcache_pool_connection_get_timeout => '', @@ -48,6 +52,10 @@ describe 'keystone::cache' do :memcache_servers => ['memcached01:11211', 'memcached02:11211'], :memcache_dead_retry => '60', :memcache_socket_timeout => '300.0', + :enable_socket_keepalive => false, + :socket_keepalive_idle => 1, + :socket_keepalive_interval => 1, + :socket_keepalive_count => 1, :memcache_pool_maxsize => '10', :memcache_pool_unused_timeout => '120', :memcache_pool_connection_get_timeout => '360', @@ -71,6 +79,10 @@ describe 'keystone::cache' do :memcache_servers => ['memcached01:11211', 'memcached02:11211'], :memcache_dead_retry => '60', :memcache_socket_timeout => '300.0', + :enable_socket_keepalive => false, + :socket_keepalive_idle => 1, + :socket_keepalive_interval => 1, + :socket_keepalive_count => 1, :memcache_pool_maxsize => '10', :memcache_pool_unused_timeout => '120', :memcache_pool_connection_get_timeout => '360',