DevStack external plugin¶
networking-midonet has its
devstack plugin.
The following local.conf
snippet would enable it:
enable_plugin networking-midonet https://opendev.org/openstack/networking-midonet
local.conf examples¶
ML2 Plugin with MidoNet drivers¶
You can find an example at devstack/ml2/local.conf.sample in the source tree.
[[local|localrc]]
# This configuration file is intended to be used for CI and local develeopment
# where you may only want networking related services to be running.
# Load the devstack plugin for ml2
Q_PLUGIN=ml2
Q_AGENT=none # dummy value to avoid pulling functions from openvswitch_agent
Q_ML2_PLUGIN_MECHANISM_DRIVERS=midonet
Q_ML2_PLUGIN_TYPE_DRIVERS=midonet,uplink
Q_ML2_TENANT_NETWORK_TYPE=midonet
ML2_L3_PLUGIN=midonet_l3
enable_plugin networking-midonet https://opendev.org/openstack/networking-midonet
# Set all the passwords
DATABASE_PASSWORD=midonet
RABBIT_PASSWORD=midonet
SERVICE_TOKEN=midonet
SERVICE_PASSWORD=midonet
ADMIN_PASSWORD=midonet
# Enable keystone, nova, glance and neutron
# Also enable tempest since it's useful for CI and local dev
ENABLED_SERVICES=rabbit,mysql,key
ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,placement-api
ENABLED_SERVICES+=,g-api,g-reg
ENABLED_SERVICES+=,q-svc,neutron
ENABLED_SERVICES+=,tempest
ENABLED_SERVICES+=,horizon
ENABLED_SERVICES+=,n-novnc,n-cauth
NOVA_VNC_ENABLED=True
# If you want to use Gateway Device Management Service,
# uncomment the following lines.
# Q_SERVICE_PLUGIN_CLASSES+=,midonet_gwdevice
# The following section contains environment variable settings that would
# further minimalize the environment. For example, in some cases you may just
# want to run the Neutron API with no agents, or you may want to disable
# authentication.
# If you want to also disable auth for Neutron, uncomment this
#
# Q_AUTH_STRATEGY=noauth
# If you don't want the host to be configured with fake uplink uncomment this
#
# MIDONET_CREATE_FAKE_UPLINK=False
# If you don't want devstack to create default networks, uncomment this
#
# NEUTRON_CREATE_INITIAL_NETWORKS=False
# If you want to disable Neutron agents so that only the API runs, uncomment
# these
#
# disable_service q-dhcp
# disable_service q-meta
# If you want to use the embedded metadata proxy, uncomment these:
#
# MIDONET_USE_METADATA=True
# Q_METADATA_ENABLED=True
# disable_service q-dhcp
# disable_service q-meta
# If you want to use L2 Gateway Management Service,
# uncomment the following lines.
# enable_plugin networking-l2gw https://opendev.org/x/networking-l2gw
# enable_service l2gw-plugin
# L2GW_PLUGIN="midonet_l2gw"
# NETWORKING_L2GW_SERVICE_DRIVER="L2GW:Midonet:midonet.neutron.services.l2gateway.service_drivers.l2gw_midonet.MidonetL2gwDriver:default"
# If you want to use VPNaaS, uncomment the following lines and manually install
# ipsec package "libreswan".
#
# enable_plugin neutron-vpnaas https://opendev.org/openstack/neutron-vpnaas
# enable_service neutron-vpnaas
# NEUTRON_VPNAAS_SERVICE_PROVIDER="VPN:Midonet:midonet.neutron.services.vpn.service_drivers.midonet_ipsec.MidonetIPsecVPNDriver:default"
# If you want to use BGP dynamic routing service,
# uncomment the following lines.
# Q_SERVICE_PLUGIN_CLASSES+=,midonet_bgp
# If you want to use Logging Resource Service, uncomment the following lines.
# Q_SERVICE_PLUGIN_CLASSES+=,midonet_logging_resource
# If you want to use Tap as a Service, uncomment the following lines.
# enable_plugin tap-as-a-service https://opendev.org/x/tap-as-a-service
# enable_service taas
# TAAS_SERVICE_DRIVER="TAAS:Midonet:midonet.neutron.services.taas.service_drivers.taas_midonet.MidonetTaasDriver:default"
MidoNet backend communication¶
MidoNet exposes two ways to communicate to its service:
REST (synchronous)
Tasks DB (asynchronous - experimental)
By default, the plugin is configured to use the REST API service. The REST API client is specified as:
MIDONET_CLIENT=midonet.neutron.client.api.MidonetApiClient
If you want to use the experimental Tasks based API, set the following:
MIDONET_CLIENT=midonet.neutron.client.cluster.MidonetClusterClient
VPNaaS¶
Starting v5.1, MidoNet implements Neutron VPNaaS extension API.
To configure MidoNet as the VPNaaS driver when running devstack, make sure the
following is defined in local.conf
:
enable_plugin neutron-vpnaas https://opendev.org/openstack/neutron-vpnaas
enable_service neutron-vpnaas
NEUTRON_VPNAAS_SERVICE_PROVIDER="VPN:Midonet:midonet.neutron.services.vpn.service_drivers.midonet_ipsec.MidonetIPsecVPNDriver:default"
NOTE: Currently, this devstack plugin doesn’t install ipsec package “libreswan”. Please install it manually.
Gateway Device Management Service¶
Starting v5.1, MidoNet implements
Neutron Gateway Device Management Service extension API.
To configure MidoNet including Gateway Device Management Service
when running devstack, make sure the following is defined in local.conf
:
Q_SERVICE_PLUGIN_CLASSES=midonet_gwdevice
L2 Gateway Management Service¶
Starting v5.1, MidoNet implements
Neutron L2 Gateway Management Service extension API.
To configure MidoNet including L2 Gateway Management Service
when running devstack, make sure the following is defined in local.conf
:
enable_plugin networking-l2gw https://opendev.org/x/networking-l2gw
enable_service l2gw-plugin
Q_PLUGIN_EXTRA_CONF_PATH=/etc/neutron
Q_PLUGIN_EXTRA_CONF_FILES=(l2gw_plugin.ini)
L2GW_PLUGIN="midonet_l2gw"
NETWORKING_L2GW_SERVICE_DRIVER="L2GW:Midonet:midonet.neutron.services.l2gateway.service_drivers.l2gw_midonet.MidonetL2gwDriver:default"
BGP dynamic routing service¶
Starting v5.2, MidoNet implements Neutron BGP dynamic routing service extension API. The implementation differs slightly from upstream. In MidoNet, router treated as bgp-speaker must be specified.
To configure MidoNet including BGP dynamic routing service
when running devstack, make sure the following is defined in local.conf
:
enable_plugin neutron-dynamic-routing https://opendev.org/openstack/neutron-dynamic-routing
DR_MODE=dr_plugin
BGP_PLUGIN=midonet_bgp
enable_service q-dr
QoS¶
The following local.conf
snippet would enable QoS extension with
MidoNet driver:
enable_plugin neutron https://opendev.org/openstack/neutron
enable_service q-qos
Tap as a service¶
The following local.conf
snippet would enable Tap-as-a-service support:
enable_plugin tap-as-a-service https://opendev.org/openstack/tap-as-a-service
enable_service taas
TAAS_SERVICE_DRIVER="TAAS:Midonet:midonet.neutron.services.taas.service_drivers.taas_midonet.MidonetTaasDriver:default"