Wire-in max_client_requests for libvirt

Libvirt setting for (admin_/)max_client_requests is an important
configuration to be tweaked when serving long running requests.

Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
Change-Id: I2d0ab2472f940ef6edac662e167033881ab09086
This commit is contained in:
Bogdan Dobrelya 2022-08-29 15:00:32 +02:00
parent 3b6a8ccf9d
commit de886cd1dd
11 changed files with 196 additions and 96 deletions

View File

@ -28,6 +28,15 @@
# on administrative socket.
# Defaults to $::os_service_default
#
# [*max_client_requests*]
# Limit on concurrent requests from a single client connection.
# Defaults to $::os_service_default
#
# [*admin_max_client_requests*]
# Limit on concurrent requests from a single client connection
# for the admin interface.
# Defaults to $::os_service_default
#
# [*tls_priority*]
# (optional) Override the compile time default TLS priority string. The
# default is usually "NORMAL" unless overridden at build time.
@ -45,6 +54,8 @@ class nova::compute::libvirt::libvirtd (
$log_outputs = $::os_service_default,
$max_clients = $::os_service_default,
$admin_max_clients = $::os_service_default,
$max_client_requests = $::os_service_default,
$admin_max_client_requests = $::os_service_default,
$tls_priority = $::os_service_default,
$ovs_timeout = $::os_service_default,
) {
@ -62,6 +73,8 @@ class nova::compute::libvirt::libvirtd (
'log_outputs': value => $log_outputs_real, quote => true;
'max_clients': value => $max_clients;
'admin_max_clients': value => $admin_max_clients;
'max_client_requests': value => $max_client_requests;
'admin_max_client_requests': value => $admin_max_client_requests;
'tls_priority': value => $tls_priority_real, quote => true;
'ovs_timeout': value => $ovs_timeout_real;
}

View File

@ -28,6 +28,15 @@
# on administrative socket.
# Defaults to $::os_service_default
#
# [*max_client_requests*]
# Limit on concurrent requests from a single client connection.
# Defaults to $::os_service_default
#
# [*admin_max_client_requests*]
# Limit on concurrent requests from a single client connection
# for the admin interface.
# Defaults to $::os_service_default
#
# [*ovs_timeout*]
# (optional) A timeout for openvswitch calls made by libvirt
# Defaults to $::os_service_default
@ -38,6 +47,8 @@ class nova::compute::libvirt::virtnodedevd (
$log_outputs = $::os_service_default,
$max_clients = $::os_service_default,
$admin_max_clients = $::os_service_default,
$max_client_requests = $::os_service_default,
$admin_max_client_requests = $::os_service_default,
$ovs_timeout = $::os_service_default,
) {
@ -49,6 +60,8 @@ class nova::compute::libvirt::virtnodedevd (
'log_outputs': value => $log_outputs, quote => true;
'max_clients': value => $max_clients;
'admin_max_clients': value => $admin_max_clients;
'max_client_requests': value => $max_client_requests;
'admin_max_client_requests': value => $admin_max_client_requests;
'ovs_timeout': value => $ovs_timeout;
}
}

View File

@ -28,6 +28,15 @@
# on administrative socket.
# Defaults to $::os_service_default
#
# [*max_client_requests*]
# Limit on concurrent requests from a single client connection.
# Defaults to $::os_service_default
#
# [*admin_max_client_requests*]
# Limit on concurrent requests from a single client connection
# for the admin interface.
# Defaults to $::os_service_default
#
# [*ovs_timeout*]
# (optional) A timeout for openvswitch calls made by libvirt
# Defaults to $::os_service_default
@ -45,6 +54,8 @@ class nova::compute::libvirt::virtproxyd (
$log_outputs = $::os_service_default,
$max_clients = $::os_service_default,
$admin_max_clients = $::os_service_default,
$max_client_requests = $::os_service_default,
$admin_max_client_requests = $::os_service_default,
$ovs_timeout = $::os_service_default,
$tls_priority = $::os_service_default,
) {
@ -57,6 +68,8 @@ class nova::compute::libvirt::virtproxyd (
'log_outputs': value => $log_outputs, quote => true;
'max_clients': value => $max_clients;
'admin_max_clients': value => $admin_max_clients;
'max_client_requests': value => $max_client_requests;
'admin_max_client_requests': value => $admin_max_client_requests;
'ovs_timeout': value => $ovs_timeout;
'tls_priority': value => $tls_priority, quote => true;
}

View File

@ -28,6 +28,15 @@
# on administrative socket.
# Defaults to $::os_service_default
#
# [*max_client_requests*]
# Limit on concurrent requests from a single client connection.
# Defaults to $::os_service_default
#
# [*admin_max_client_requests*]
# Limit on concurrent requests from a single client connection
# for the admin interface.
# Defaults to $::os_service_default
#
# [*ovs_timeout*]
# (optional) A timeout for openvswitch calls made by libvirt
# Defaults to $::os_service_default
@ -39,6 +48,8 @@ class nova::compute::libvirt::virtqemud (
$log_outputs = $::os_service_default,
$max_clients = $::os_service_default,
$admin_max_clients = $::os_service_default,
$max_client_requests = $::os_service_default,
$admin_max_client_requests = $::os_service_default,
$ovs_timeout = $::os_service_default,
) {
@ -50,6 +61,8 @@ class nova::compute::libvirt::virtqemud (
'log_outputs': value => $log_outputs, quote => true;
'max_clients': value => $max_clients;
'admin_max_clients': value => $admin_max_clients;
'max_client_requests': value => $max_client_requests;
'admin_max_client_requests': value => $admin_max_client_requests;
'ovs_timeout': value => $ovs_timeout;
}
}

View File

@ -28,6 +28,15 @@
# on administrative socket.
# Defaults to $::os_service_default
#
# [*max_client_requests*]
# Limit on concurrent requests from a single client connection.
# Defaults to $::os_service_default
#
# [*admin_max_client_requests*]
# Limit on concurrent requests from a single client connection
# for the admin interface.
# Defaults to $::os_service_default
#
# [*ovs_timeout*]
# (optional) A timeout for openvswitch calls made by libvirt
# Defaults to $::os_service_default
@ -38,6 +47,8 @@ class nova::compute::libvirt::virtsecretd (
$log_outputs = $::os_service_default,
$max_clients = $::os_service_default,
$admin_max_clients = $::os_service_default,
$max_client_requests = $::os_service_default,
$admin_max_client_requests = $::os_service_default,
$ovs_timeout = $::os_service_default,
) {
@ -49,6 +60,8 @@ class nova::compute::libvirt::virtsecretd (
'log_outputs': value => $log_outputs, quote => true;
'max_clients': value => $max_clients;
'admin_max_clients': value => $admin_max_clients;
'max_client_requests': value => $max_client_requests;
'admin_max_client_requests': value => $admin_max_client_requests;
'ovs_timeout': value => $ovs_timeout;
}
}

View File

@ -0,0 +1,5 @@
---
features:
- |
New parameters ``max_client_requests`` and ``admin_max_client_requests``
allow to configure corresponding settings for libvirt.

View File

@ -27,6 +27,8 @@ eos
it { is_expected.to contain_libvirtd_config('log_filters').with_value('<SERVICE DEFAULT>').with_quote(true)}
it { is_expected.to contain_libvirtd_config('max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_libvirtd_config('admin_max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_libvirtd_config('max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_libvirtd_config('admin_max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_libvirtd_config('tls_priority').with_value('<SERVICE DEFAULT>').with_quote(true)}
it { is_expected.to contain_libvirtd_config('ovs_timeout').with_value('<SERVICE DEFAULT>')}
end
@ -38,6 +40,8 @@ eos
:log_filters => '1:logging 4:object 4:json 4:event 1:util',
:max_clients => 1024,
:admin_max_clients => 5,
:max_client_requests => 42,
:admin_max_client_requests => 55,
:tls_priority => 'NORMAL',
:ovs_timeout => 20,
}
@ -51,6 +55,8 @@ eos
it { is_expected.to contain_libvirtd_config('log_filters').with_value(params[:log_filters]).with_quote(true)}
it { is_expected.to contain_libvirtd_config('max_clients').with_value(params[:max_clients])}
it { is_expected.to contain_libvirtd_config('admin_max_clients').with_value(params[:admin_max_clients])}
it { is_expected.to contain_libvirtd_config('max_client_requests').with_value(params[:max_client_requests])}
it { is_expected.to contain_libvirtd_config('admin_max_client_requests').with_value(params[:admin_max_client_requests])}
it { is_expected.to contain_libvirtd_config('tls_priority').with_value(params[:tls_priority]).with_quote(true)}
it { is_expected.to contain_libvirtd_config('ovs_timeout').with_value(params[:ovs_timeout])}
end

View File

@ -18,6 +18,8 @@ describe 'nova::compute::libvirt::virtnodedevd' do
it { is_expected.to contain_virtnodedevd_config('log_filters').with_value('<SERVICE DEFAULT>').with_quote(true)}
it { is_expected.to contain_virtnodedevd_config('max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtnodedevd_config('admin_max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtnodedevd_config('max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtnodedevd_config('admin_max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtnodedevd_config('ovs_timeout').with_value('<SERVICE DEFAULT>')}
end
@ -28,6 +30,8 @@ describe 'nova::compute::libvirt::virtnodedevd' do
:log_filters => '1:logging 4:object 4:json 4:event 1:util',
:max_clients => 1024,
:admin_max_clients => 5,
:max_client_requests => 42,
:admin_max_client_requests => 55,
:ovs_timeout => 10,
}
end
@ -39,6 +43,8 @@ describe 'nova::compute::libvirt::virtnodedevd' do
it { is_expected.to contain_virtnodedevd_config('log_filters').with_value(params[:log_filters]).with_quote(true)}
it { is_expected.to contain_virtnodedevd_config('max_clients').with_value(params[:max_clients])}
it { is_expected.to contain_virtnodedevd_config('admin_max_clients').with_value(params[:admin_max_clients])}
it { is_expected.to contain_virtnodedevd_config('max_client_requests').with_value(params[:max_client_requests])}
it { is_expected.to contain_virtnodedevd_config('admin_max_client_requests').with_value(params[:admin_max_client_requests])}
it { is_expected.to contain_virtnodedevd_config('ovs_timeout').with_value(params[:ovs_timeout])}
end
end

View File

@ -18,6 +18,8 @@ describe 'nova::compute::libvirt::virtproxyd' do
it { is_expected.to contain_virtproxyd_config('log_filters').with_value('<SERVICE DEFAULT>').with_quote(true)}
it { is_expected.to contain_virtproxyd_config('max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtproxyd_config('admin_max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtproxyd_config('max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtproxyd_config('admin_max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtproxyd_config('ovs_timeout').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtproxyd_config('tls_priority').with_value('<SERVICE DEFAULT>').with_quote(true)}
end
@ -29,6 +31,8 @@ describe 'nova::compute::libvirt::virtproxyd' do
:log_filters => '1:logging 4:object 4:json 4:event 1:util',
:max_clients => 1024,
:admin_max_clients => 5,
:max_client_requests => 42,
:admin_max_client_requests => 55,
:ovs_timeout => 10,
:tls_priority => 'NORMAL:-VERS-SSL3.0',
}
@ -41,6 +45,8 @@ describe 'nova::compute::libvirt::virtproxyd' do
it { is_expected.to contain_virtproxyd_config('log_filters').with_value(params[:log_filters]).with_quote(true)}
it { is_expected.to contain_virtproxyd_config('max_clients').with_value(params[:max_clients])}
it { is_expected.to contain_virtproxyd_config('admin_max_clients').with_value(params[:admin_max_clients])}
it { is_expected.to contain_virtproxyd_config('max_client_requests').with_value(params[:max_client_requests])}
it { is_expected.to contain_virtproxyd_config('admin_max_client_requests').with_value(params[:admin_max_client_requests])}
it { is_expected.to contain_virtproxyd_config('ovs_timeout').with_value(params[:ovs_timeout])}
it { is_expected.to contain_virtproxyd_config('tls_priority').with_value(params[:tls_priority]).with_quote(true)}
end

View File

@ -18,6 +18,8 @@ describe 'nova::compute::libvirt::virtqemud' do
it { is_expected.to contain_virtqemud_config('log_filters').with_value('<SERVICE DEFAULT>').with_quote(true)}
it { is_expected.to contain_virtqemud_config('max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtqemud_config('admin_max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtqemud_config('max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtqemud_config('admin_max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtqemud_config('ovs_timeout').with_value('<SERVICE DEFAULT>')}
end
@ -28,6 +30,8 @@ describe 'nova::compute::libvirt::virtqemud' do
:log_filters => '1:logging 4:object 4:json 4:event 1:util',
:max_clients => 1024,
:admin_max_clients => 5,
:max_client_requests => 42,
:admin_max_client_requests => 55,
:ovs_timeout => 10,
}
end
@ -39,6 +43,8 @@ describe 'nova::compute::libvirt::virtqemud' do
it { is_expected.to contain_virtqemud_config('log_filters').with_value(params[:log_filters]).with_quote(true)}
it { is_expected.to contain_virtqemud_config('max_clients').with_value(params[:max_clients])}
it { is_expected.to contain_virtqemud_config('admin_max_clients').with_value(params[:admin_max_clients])}
it { is_expected.to contain_virtqemud_config('max_client_requests').with_value(params[:max_client_requests])}
it { is_expected.to contain_virtqemud_config('admin_max_client_requests').with_value(params[:admin_max_client_requests])}
it { is_expected.to contain_virtqemud_config('ovs_timeout').with_value(params[:ovs_timeout])}
end
end

View File

@ -18,6 +18,8 @@ describe 'nova::compute::libvirt::virtsecretd' do
it { is_expected.to contain_virtsecretd_config('log_filters').with_value('<SERVICE DEFAULT>').with_quote(true)}
it { is_expected.to contain_virtsecretd_config('max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtsecretd_config('admin_max_clients').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtsecretd_config('max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtsecretd_config('admin_max_client_requests').with_value('<SERVICE DEFAULT>')}
it { is_expected.to contain_virtsecretd_config('ovs_timeout').with_value('<SERVICE DEFAULT>')}
end
@ -28,6 +30,8 @@ describe 'nova::compute::libvirt::virtsecretd' do
:log_filters => '1:logging 4:object 4:json 4:event 1:util',
:max_clients => 1024,
:admin_max_clients => 5,
:max_client_requests => 42,
:admin_max_client_requests => 55,
:ovs_timeout => 10,
}
end
@ -39,6 +43,8 @@ describe 'nova::compute::libvirt::virtsecretd' do
it { is_expected.to contain_virtsecretd_config('log_filters').with_value(params[:log_filters]).with_quote(true)}
it { is_expected.to contain_virtsecretd_config('max_clients').with_value(params[:max_clients])}
it { is_expected.to contain_virtsecretd_config('admin_max_clients').with_value(params[:admin_max_clients])}
it { is_expected.to contain_virtsecretd_config('max_client_requests').with_value(params[:max_client_requests])}
it { is_expected.to contain_virtsecretd_config('admin_max_client_requests').with_value(params[:admin_max_client_requests])}
it { is_expected.to contain_virtsecretd_config('ovs_timeout').with_value(params[:ovs_timeout])}
end
end