Add ovn-monitor-all option to ovn-controller

With monitor-all option, all ovn-controllers
do not enable conditional monitoring there
by reducing the load on the Southbound ovsdb-server.

Partial-Bug: #1936781
Signed-off-by: Kamil Sambor <ksambor@redhat.com>
Change-Id: Ia78c0873e7ac6488b3048ae8475cc87ec40022bb
This commit is contained in:
Kamil Sambor 2021-07-20 14:08:49 +02:00 committed by Takashi Kajinami
parent 6b085474cf
commit 7a1bb54519
3 changed files with 17 additions and 0 deletions

View File

@ -81,6 +81,12 @@
# vlan type logical switch. # vlan type logical switch.
# Defaults to empty list # Defaults to empty list
# #
# [*ovn_monitor_all*]
# (optional) A boolean value that tells if ovn-controller should monitor all
# records of tables in ovs-database. If set to false, it will conditionally
# monitor the records that is needed in the current chassis.
# Default to false (keep the original behavior)
#
class ovn::controller( class ovn::controller(
$ovn_remote, $ovn_remote,
$ovn_encap_ip, $ovn_encap_ip,
@ -97,6 +103,7 @@ class ovn::controller(
$ovn_transport_zones = [], $ovn_transport_zones = [],
$enable_ovn_match_northd = false, $enable_ovn_match_northd = false,
$ovn_chassis_mac_map = [], $ovn_chassis_mac_map = [],
$ovn_monitor_all = false,
) { ) {
include ovn::params include ovn::params
@ -139,6 +146,7 @@ class ovn::controller(
'external_ids:ovn-bridge' => { 'value' => $ovn_bridge }, 'external_ids:ovn-bridge' => { 'value' => $ovn_bridge },
'external_ids:ovn-remote-probe-interval' => { 'value' => "${ovn_remote_probe_interval}" }, 'external_ids:ovn-remote-probe-interval' => { 'value' => "${ovn_remote_probe_interval}" },
'external_ids:ovn-openflow-probe-interval' => { 'value' => "${ovn_openflow_probe_interval}" }, 'external_ids:ovn-openflow-probe-interval' => { 'value' => "${ovn_openflow_probe_interval}" },
'external_ids:ovn-monitor-all' => { 'value' => "${ovn_monitor_all}" },
} }
if !empty($ovn_chassis_mac_map) { if !empty($ovn_chassis_mac_map) {

View File

@ -0,0 +1,4 @@
---
features:
- |
The new ``ovn::controller::ovn_monitor_all`` parameter has been added.

View File

@ -13,6 +13,7 @@ describe 'ovn::controller' do
:mac_table_size => 20000, :mac_table_size => 20000,
:ovn_remote_probe_interval => 30000, :ovn_remote_probe_interval => 30000,
:ovn_openflow_probe_interval => 8, :ovn_openflow_probe_interval => 8,
:ovn_monitor_all => true,
:ovn_transport_zones => ['tz1'], :ovn_transport_zones => ['tz1'],
:enable_ovn_match_northd => false, :enable_ovn_match_northd => false,
:ovn_chassis_mac_map => ['physnet1:aa:bb:cc:dd:ee:ff', :ovn_chassis_mac_map => ['physnet1:aa:bb:cc:dd:ee:ff',
@ -76,6 +77,10 @@ describe 'ovn::controller' do
:value => params[:ovn_openflow_probe_interval], :value => params[:ovn_openflow_probe_interval],
) )
is_expected.to contain_vs_config('external_ids:ovn-monitor-all').with(
:value => params[:ovn_monitor_all],
)
is_expected.to contain_vs_config('external_ids:ovn-transport-zones').with( is_expected.to contain_vs_config('external_ids:ovn-transport-zones').with(
:value => params[:ovn_transport_zones], :value => params[:ovn_transport_zones],
) )