09f11aa394
This patch introduces drivers to perform deployment specific functions for libnetwork. This patch is based on and complementary to the driver model introduced in kuryr-lib for port binding, by enabling its use in kuryr-libnetwork. Initially the following two drivers will be available and included: * veth: this driver will exclusively make use of the the corresponding kuryr-lib veth driver. * nested: this driver is intended for nested containers and will enable the use of ipvlan/macvlan binding drivers. The driver will be selected by means of a new 'port_driver' option. NOTE: Due to https://bugs.launchpad.net/kuryr-libnetwork/+bug/1651015 When trying nested ports, it is important to use Kuryr to create the networks that will be used by Nova to create the instances, otherwise the nested ports will not be able to be cleaned. DocImpact Co-Authored-By: Luis Tomas Bolivar <ltomasbo@redhat.com> Co-Authored-By: Louise Daly <louise.m.daly@intel.com> Co-Authored-By: Gary Loughnane <gary.loughnane@intel.com> Implements: blueprint driver-binding-ipvlan Change-Id: I380fb017dc97a2cd54a404ec3c8154ecc2df80b8
67 lines
2.3 KiB
Python
67 lines
2.3 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""
|
|
Routines for configuring Kuryr
|
|
"""
|
|
|
|
import os
|
|
|
|
from oslo_config import cfg
|
|
from oslo_log import log
|
|
import pbr.version
|
|
|
|
from kuryr.lib._i18n import _
|
|
from kuryr.lib import config as lib_config
|
|
|
|
core_opts = [
|
|
cfg.StrOpt('pybasedir',
|
|
default=os.path.abspath(os.path.join(os.path.dirname(__file__),
|
|
'../')),
|
|
help=_('Directory where Kuryr python module is installed.')),
|
|
cfg.StrOpt('kuryr_uri',
|
|
default=os.environ.get('OS_KURYR_URI',
|
|
'http://127.0.0.1:23750'),
|
|
help=_('Kuryr URL for accessing Kuryr through json rpc.')),
|
|
cfg.StrOpt('capability_scope',
|
|
default=os.environ.get('CAPABILITY_SCOPE', 'local'),
|
|
choices=['local', 'global'],
|
|
help=_('Kuryr plugin scope reported to libnetwork.')),
|
|
cfg.StrOpt('local_default_address_space',
|
|
default='no_address_space',
|
|
help=_('There is no address-space by default in neutron')),
|
|
cfg.StrOpt('global_default_address_space',
|
|
default='no_address_space',
|
|
help=_('There is no address-space by default in neutron')),
|
|
cfg.StrOpt('port_driver',
|
|
default='kuryr_libnetwork.port_driver.drivers.veth',
|
|
help=_('Driver for the desired deployment model')),
|
|
]
|
|
|
|
CONF = cfg.CONF
|
|
CONF.register_opts(core_opts)
|
|
|
|
CONF.register_opts(lib_config.core_opts)
|
|
CONF.register_opts(lib_config.binding_opts, 'binding')
|
|
lib_config.register_neutron_opts(CONF)
|
|
|
|
# Setting oslo.log options for logging.
|
|
log.register_options(CONF)
|
|
|
|
|
|
def init(args, **kwargs):
|
|
cfg.CONF(
|
|
args=args,
|
|
project='kuryr',
|
|
version=pbr.version.VersionInfo('kuryr-libnetwork').version_string(),
|
|
**kwargs)
|