OVN: Let ironic manage the OVN startup in it's case.

In order for Ironic perform full testing with devstack, it uses
virtual machines attached to a ovs bridge network to simulate
bare metal machines. This worked great for OVS because often
OVS was already running on the nodes due to the package, and
we could just apply configuration and be done with it when
Ironic's devstack plugin was applying initial configuration and
setting up the test environment.

With OVN, and the requirement of a specific co-installed OVS
version, Ironic has discovered that we cannot perform this same
configuration without having already started OVN during the
initial system setup. Which is fine, but we can't initialize
and start OVN twice. It just doesn't work.

The original form of this patch was proposed by lucasgnomes
in order to validate that we, did, indeed, need to do this
to enable Ironic to successfully test an OVN based
configuration, and is now being revised to handle that case
automatically when Ironic is the selected virt plugin.

Co-Authored-By: Julia Kreger <juliaashleykreger@gmail.com>
Change-Id: Ifbfdaaa97fdbe75ede49dc47235e92a8035d1de6
This commit is contained in:
Lucas Alvares Gomes 2023-07-18 16:31:28 +01:00 committed by Dr. Jens Harbott
parent 427a4e1a9b
commit a389128dba

View File

@ -570,8 +570,15 @@ function configure_rbac_policies {
# Start running OVN processes
function start_ovn_services {
if [[ $Q_AGENT == "ovn" ]]; then
init_ovn
start_ovn
if [ "$VIRT_DRIVER" != 'ironic' ]; then
# NOTE(TheJulia): Ironic's devstack plugin needs to perform
# additional networking configuration to setup a working test
# environment with test virtual machines to emulate baremetal,
# which requires OVN to be up and running earlier to complete
# that base configuration.
init_ovn
start_ovn
fi
if [[ "$OVN_L3_CREATE_PUBLIC_NETWORK" == "True" ]]; then
if [[ "$NEUTRON_CREATE_INITIAL_NETWORKS" != "True" ]]; then
echo "OVN_L3_CREATE_PUBLIC_NETWORK=True is being ignored "