Merge "PostgreSQL connection tuning for Sysinv"

This commit is contained in:
Zuul 2025-04-18 15:10:59 +00:00 committed by Gerrit Code Review
commit d051aee288

View File

@ -5,7 +5,26 @@ class platform::sysinv::params (
$fm_catalog_info = 'faultmanagement:fm:internalURL',
$server_timeout = '600s',
$sysinv_api_workers = undef,
) { }
) {
# Set default values for database connection for AIO systems (except for
# systemcontroller on DC)
if ($::platform::params::system_type == 'All-in-one' and
$::platform::params::distributed_cloud_role != 'systemcontroller') {
$db_idle_timeout = 60
$db_pool_size = 1
$db_over_size = 5
} else {
$db_idle_timeout = undef
$db_pool_size = undef
$db_over_size = undef
}
}
class platform::sysinv::custom::params (
$db_idle_timeout = undef,
$db_pool_size = undef,
$db_over_size = undef,
) {}
class platform::sysinv
inherits ::platform::sysinv::params {
@ -14,6 +33,7 @@ class platform::sysinv
include ::platform::params
include ::platform::drbd::platform::params
include ::platform::sysinv::custom::params
# sysinv-agent is started on all hosts
include ::sysinv::agent
@ -68,6 +88,38 @@ class platform::sysinv
'app_framework/missing_auto_update': value => true;
'app_framework/skip_k8s_application_audit': value => false;
}
# On AIO systems, restrict the connection pool size
# If database information doesn't exist in yaml file, use default values
if $::platform::sysinv::custom::params::db_idle_timeout {
Sysinv_config <| title == 'database/connection_recycle_time' |> {
value => $::platform::sysinv::custom::params::db_idle_timeout,
}
} else {
Sysinv_config <| title == 'database/connection_recycle_time' |> {
value => $::platform::sysinv::params::db_idle_timeout,
}
}
if $::platform::sysinv::custom::params::db_pool_size {
Sysinv_config <| title == 'database/max_pool_size' |> {
value => $::platform::sysinv::custom::params::db_pool_size,
}
} else {
Sysinv_config <| title == 'database/max_pool_size' |> {
value => $::platform::sysinv::params::db_pool_size,
}
}
if $::platform::sysinv::custom::params::db_over_size {
Sysinv_config <| title == 'database/max_overflow' |> {
value => $::platform::sysinv::custom::params::db_over_size,
}
} else {
Sysinv_config <| title == 'database/max_overflow' |> {
value => $::platform::sysinv::params::db_over_size,
}
}
}