This series adds support to run multiple ovn-controller instances using
the same vswitchd instance. This may be used to reuse a single host
level vswitchd installation to run multiple CMS (e.g. k8s and
openstack), each having its own OVN stack running on a separate
integration bridge.
This setup may, in some instances, simplify administration of the
system, since the admin no longer needs to maintain separate vswitchd
installations (e.g. in separate containers). This is also helpful when
running different datapath types for the mixed setup.
v1: initial series
v2: change tunnel port naming scheme: include "chassis index" instead of
its name for source chassis.
v2: formatting adjustments.
v3: fixed build due to ovs_abort missing arguments.
v3: added documentation to CLI and system-id-override file.
v3: added documentation for chassis specific db config options.
v3: documented the ability to run multiple controllers on the same host,
while mentioning that this support is highly experimental.
v3: updated NEWS file to include the note about the new experimental
issue.
v3: rebased.
v4: fixed a memory leak in get_chassis_idx.
v5: actually fix the leak...
v6: fix race condition in new test cases where ssl db configuration was
removed before ovn-controller has a chance to read it from db,
making it fail to start and process ports
v7: addresses Mark's comments from v6, specifically:
- 1/7: Clean up allocated index on exit
- 1/7: Remove hardcoded 16 with sizeof(CHASSIS_IDX_PREFIX) - 1
- 1/7: Explain in comments why the first chassis uses an empty
string index and not “0”
- 2/7: Document that requested-chassis should use unique chassis
names, not hostnames
- 2/7: Document that unique own-bridges should be used for multiple
co-hosted controllers
- 2/7: Reworked logic for get_chassis_external_value functions to
avoid duplication with smap_get_<type> functions
- 2/7: Use wait_column in tests
- 3/7: Add information about the directory where system-id-override
file is located
- 3/7: Use FILE * functions from stdio.h instead of Unix lower level
equivalents
- 3/7: Use wait_column in tests
- 4/7: Also validate that CLI takes precedence over override file,
not only db
- 4/7: Use wait_column in tests
- 5/7: - (no changes)
- 6/7: Move start_virtual_controller to ovn-macros.at to avoid code
duplication
- 6/7: Added comments explaining why test cases running two
controllers use the same sandbox name for both
- 7/7: - (no changes)
Ihar Hrachyshka (7):
Include "chassis index" into tunnel port name
Support ovn-...-<chassis> specific global ovsdb options
Allow to override system-id via file
Support passing chassis name via CLI
Don't touch tunnel ports from a different br-int
Add connectivity test for 2 controllers on the same host
Document experimental support for co-hosted controllers
NEWS | 2 +
controller/chassis.c | 254 +++++++++++++++++++++------
controller/chassis.h | 12 +-
controller/encaps.c | 76 ++++----
controller/encaps.h | 1 -
controller/ovn-controller.8.xml | 35 +++-
controller/ovn-controller.c | 182 +++++++++++++------
controller/patch.c | 6 +-
controller/physical.c | 2 +-
lib/ovn-util.c | 79 +++++++++
lib/ovn-util.h | 26 +++
ovn-nb.xml | 8 +
tests/automake.mk | 1 +
tests/ovn-macros.at | 36 +++-
tests/ovn.at | 298 ++++++++++++++++++++++++++++++++
tests/ovs-macros.at | 2 +
16 files changed, 865 insertions(+), 155 deletions(-)
--
2.38.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev