From f268b126b735a915201d552f9bd5902ecc1be3fd Mon Sep 17 00:00:00 2001 From: Eduardo Olivares Date: Thu, 17 Oct 2024 19:09:27 +0200 Subject: [PATCH] [octavia] Choose right external network when there is more than one In some cases there may be more than one external network in Openstack. When creating a LB, the proper external network needs to be chosen. Change-Id: Iae5c9a803bdec8a1b5a8973f1747f72d90c20279 --- tobiko/openstack/neutron/config.py | 3 ++- tobiko/openstack/octavia/_deployers.py | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tobiko/openstack/neutron/config.py b/tobiko/openstack/neutron/config.py index 3c602be3f..239d5e5a6 100644 --- a/tobiko/openstack/neutron/config.py +++ b/tobiko/openstack/neutron/config.py @@ -20,7 +20,8 @@ from oslo_config import cfg GROUP_NAME = 'neutron' OPTIONS = [ cfg.StrOpt('external_network', - help="Network for creating ports on an external network"), + help="Network for creating ports on an external network", + default="public"), cfg.StrOpt('floating_network', help="Network for creating floating IPs"), cfg.StrOpt('ipv4_cidr', diff --git a/tobiko/openstack/octavia/_deployers.py b/tobiko/openstack/octavia/_deployers.py index 7b405c668..18331b4d9 100644 --- a/tobiko/openstack/octavia/_deployers.py +++ b/tobiko/openstack/octavia/_deployers.py @@ -17,17 +17,22 @@ from __future__ import absolute_import from oslo_log import log import tobiko +from tobiko import config from tobiko.openstack import octavia from tobiko.openstack import neutron from tobiko.openstack.octavia import _constants +CONF = config.CONF LOG = log.getLogger(__name__) def get_external_subnet(ip_version=4): + kw = {'router:external': True} + if len(neutron.list_networks(**{'router:external': True})) > 1: + kw['name'] = CONF.neutron.external_network + try: - ext_subnet_list = neutron.find_network( - **{'router:external': True})['subnets'] + ext_subnet_list = neutron.find_network(**kw)['subnets'] except tobiko.ObjectNotFound: LOG.warning('External network not found') return None