When VIRT_DRIVER=ironic and Q_AGENT=ovn, Neutron's devstack plugin
skips starting OVN services, assuming Ironic will handle it. However,
the Ironic plugin only initialized OVN when IRONIC_IS_HARDWARE=False
(for virtual machine testing), leaving hardware deployments without
OVN services running.
This caused a failure where:
- Neutron says: "Ironic will handle OVN"
- Ironic says: "This is real hardware, I don't need VMs, so I won't
start OVN"
- Result: Nobody starts OVN
This change decouples OVN initialization from VM setup:
- OVN is now initialized whenever Q_AGENT=ovn, regardless of whether
using virtual machines or real hardware
- OVS package installation happens when needed for either OVN or VM
bridge creation
- VM bridge creation remains conditional on IRONIC_IS_HARDWARE=False
This ensures OVN is available for network provisioning in all Ironic
deployment scenarios.
Change-Id: Ibaf0f42b4d7bcbb0b206d5b6eca59906a0f2ea5e
Signed-off-by: Harald Jensås <hjensas@redhat.com>