diff --git a/manifests/controller.pp b/manifests/controller.pp index 21afeb4..bda63ec 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -51,6 +51,10 @@ # (optional) Enable or not DPDK with OVS # Defaults to false. # +# [*ovn_remote_probe_interval*] +# (optional) Set probe interval, based on user configuration, value is in ms +# Defaults to 60000 +# class ovn::controller( $ovn_remote, $ovn_encap_ip, @@ -63,6 +67,7 @@ class ovn::controller( $mac_table_size = 50000, $datapath_type = $::os_service_default, $enable_dpdk = false, + $ovn_remote_probe_interval = 60000, ) { include ::ovn::params @@ -98,11 +103,12 @@ class ovn::controller( } $config_items = { - 'external_ids:ovn-remote' => { 'value' => $ovn_remote }, - 'external_ids:ovn-encap-type' => { 'value' => $ovn_encap_type }, - 'external_ids:ovn-encap-ip' => { 'value' => $ovn_encap_ip }, - 'external_ids:hostname' => { 'value' => $hostname }, - 'external_ids:ovn-bridge' => { 'value' => $ovn_bridge }, + 'external_ids:ovn-remote' => { 'value' => $ovn_remote }, + 'external_ids:ovn-encap-type' => { 'value' => $ovn_encap_type }, + 'external_ids:ovn-encap-ip' => { 'value' => $ovn_encap_ip }, + 'external_ids:hostname' => { 'value' => $hostname }, + 'external_ids:ovn-bridge' => { 'value' => $ovn_bridge }, + 'external_ids:ovn-remote-probe-interval' => { 'value' => "${ovn_remote_probe_interval}" }, } if !empty($ovn_bridge_mappings) { diff --git a/releasenotes/notes/ovn_remote_probe_interval-b0603007d844984d.yaml b/releasenotes/notes/ovn_remote_probe_interval-b0603007d844984d.yaml new file mode 100644 index 0000000..12bd2e9 --- /dev/null +++ b/releasenotes/notes/ovn_remote_probe_interval-b0603007d844984d.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + This parameter sets inactive probe interval of the JSON session + from ovn-controller to the OVN SB database. By default this it + is 5s which not be sufficient in loaded systems or during high + control-plane activity spikes, leading to unnecessary reconnections + to OVSDB server. Now it is extended by default to 1 min and it is configurable. diff --git a/spec/classes/ovn_controller_spec.rb b/spec/classes/ovn_controller_spec.rb index 1057546..3e7930e 100644 --- a/spec/classes/ovn_controller_spec.rb +++ b/spec/classes/ovn_controller_spec.rb @@ -11,7 +11,8 @@ describe 'ovn::controller' do :bridge_interface_mappings => ['br-1:eth1'], :hostname => 'server1.example.com', :enable_hw_offload => false, - :mac_table_size => 20000 + :mac_table_size => 20000, + :ovn_remote_probe_interval => 30000, } end @@ -62,6 +63,10 @@ describe 'ovn::controller' do is_expected.to contain_vs_config('external_ids:ovn-bridge').with( :value => params[:ovn_bridge], ) + + is_expected.to contain_vs_config('external_ids:ovn-remote-probe-interval').with( + :value => params[:ovn_remote_probe_interval], + ) end it 'configures bridge mappings' do