From 20355edb2b10edc5b126ea80a5e64043511af169 Mon Sep 17 00:00:00 2001
From: labedz <ktomaszewski@cloudferro.com>
Date: Wed, 21 Dec 2022 14:25:43 +0000
Subject: [PATCH] ovn: add ovn-monitor-all variable

Setting ovn-monitor-all to 'true' will configure
ovn-controller to monitor all OVS database records
unconditionally. That will release some CPU resource
from OVS Southbound DB but will increase number of events
coming to ovn-controller.

Default value is 'false'.

Change-Id: I291e166013d8c88f00e84ceaf308251c352c9a79
---
 ansible/roles/ovn-controller/defaults/main.yml         |  2 ++
 ansible/roles/ovn-controller/tasks/setup-ovs.yml       |  1 +
 .../notes/ovn-monitor-all-782e7cdc04688fc6.yaml        | 10 ++++++++++
 3 files changed, 13 insertions(+)
 create mode 100644 releasenotes/notes/ovn-monitor-all-782e7cdc04688fc6.yaml

diff --git a/ansible/roles/ovn-controller/defaults/main.yml b/ansible/roles/ovn-controller/defaults/main.yml
index b97b4ccba..7fe795bfc 100644
--- a/ansible/roles/ovn-controller/defaults/main.yml
+++ b/ansible/roles/ovn-controller/defaults/main.yml
@@ -36,3 +36,5 @@ ovn_base_mac: "52:54:00"
 ovn_remote_probe_interval: "60000"
 # Configure OVN openflow interval in s
 ovn_openflow_probe_interval: "60"
+# Configure OVN monitor-all in boolean
+ovn_monitor_all: "false"
diff --git a/ansible/roles/ovn-controller/tasks/setup-ovs.yml b/ansible/roles/ovn-controller/tasks/setup-ovs.yml
index 7c2fb0f14..82f782989 100644
--- a/ansible/roles/ovn-controller/tasks/setup-ovs.yml
+++ b/ansible/roles/ovn-controller/tasks/setup-ovs.yml
@@ -33,6 +33,7 @@
     - { name: ovn-remote, value: "{{ ovn_sb_connection }}" }
     - { name: ovn-remote-probe-interval, value: "{{ ovn_remote_probe_interval }}" }
     - { name: ovn-openflow-probe-interval, value: "{{ ovn_openflow_probe_interval }}" }
+    - { name: ovn-monitor-all, value: "{{ ovn_monitor_all | bool }}" }
     - { name: ovn-bridge-mappings, value: "{{ ovn_mappings }}", state: "{{ 'present' if (inventory_hostname in groups['ovn-controller-network'] or computes_need_external_bridge | bool) else 'absent' }}" }
     - { name: ovn-chassis-mac-mappings, value: "{{ ovn_macs }}", state: "{{ 'present' if inventory_hostname in groups['ovn-controller-compute'] else 'absent' }}" }
     - { name: ovn-cms-options, value: "{{ ovn_cms_opts }}", state: "{{ 'present' if ovn_cms_opts != '' else 'absent' }}" }
diff --git a/releasenotes/notes/ovn-monitor-all-782e7cdc04688fc6.yaml b/releasenotes/notes/ovn-monitor-all-782e7cdc04688fc6.yaml
new file mode 100644
index 000000000..76ee3651d
--- /dev/null
+++ b/releasenotes/notes/ovn-monitor-all-782e7cdc04688fc6.yaml
@@ -0,0 +1,10 @@
+---
+features:
+  - |
+    Adds ``ovn-monitor-all`` variable. A boolean value that tells if
+    ovn-controller should unconditionally monitor all records in OVS
+    databases.
+    Setting ``ovn-monitor-all`` variable to 'true' will remove some CPU
+    load from OVN SouthBound DB but will effect with more updates
+    comming to ovn-controller. Might be helpfull in large deployments
+    with many compute hosts.
-- 
GitLab