Add multi-node devstack support to VPNaaS
Modify devstack plugin to support multi-node confgurations (i.e. where the network node is split from the controller node). DocImpact: Migrate HowTo wiki page to additional devref text Change-Id: Iac5756ffe75b2125faace54b74b296036905a9b0 Signed-off-by: Ryan Moats <rmoats@us.ibm.com>
This commit is contained in:
parent
e91661a2d0
commit
e544a4f669
@ -1,26 +1,3 @@
|
|||||||
This directory contains the neutron-vpnaas devstack plugin. To
|
This directory contains the neutron-vpnaas devstack plugin. Please
|
||||||
configure VPNaaS, in the [[local|localrc]] section, you will need
|
see the devref for how to set up VPNaaS with devstack.
|
||||||
to enable the neutron-vpnaas devstack plugin.
|
|
||||||
|
|
||||||
Add a line of the form:
|
|
||||||
|
|
||||||
enable_plugin neutron-vpnaas <GITURL> [GITREF]
|
|
||||||
|
|
||||||
where
|
|
||||||
|
|
||||||
<GITURL> is the URL of a neutron-vpnaas repository
|
|
||||||
[GITREF] is an optional git ref (branch/ref/tag). The default is
|
|
||||||
master.
|
|
||||||
|
|
||||||
For example
|
|
||||||
|
|
||||||
enable_plugin neutron-vpnaas https://git.openstack.org/openstack/neutron-vpnaas stable/kilo
|
|
||||||
|
|
||||||
Note: Since the VPN agent process, is a subclass of the L3 agent,
|
|
||||||
which is a subclass of the FW agent, the DevStack plugin will
|
|
||||||
check for the FW service being enabled, and if so, will include
|
|
||||||
the config file specified in Q_FWAAS_CONF_FILE (default is
|
|
||||||
fwaas_driver.ini).
|
|
||||||
|
|
||||||
For more information, see the "Externally Hosted Plugins" section of
|
|
||||||
http://docs.openstack.org/developer/devstack/plugins.html.
|
|
||||||
|
@ -5,7 +5,9 @@ set -o xtrace
|
|||||||
|
|
||||||
function neutron_vpnaas_install {
|
function neutron_vpnaas_install {
|
||||||
setup_develop $NEUTRON_VPNAAS_DIR
|
setup_develop $NEUTRON_VPNAAS_DIR
|
||||||
neutron_agent_vpnaas_install_agent_packages
|
if is_service_enabled q-l3; then
|
||||||
|
neutron_agent_vpnaas_install_agent_packages
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function neutron_agent_vpnaas_install_agent_packages {
|
function neutron_agent_vpnaas_install_agent_packages {
|
||||||
@ -26,7 +28,10 @@ function neutron_vpnaas_configure_common {
|
|||||||
inicomment $NEUTRON_VPNAAS_CONF service_providers service_provider
|
inicomment $NEUTRON_VPNAAS_CONF service_providers service_provider
|
||||||
iniadd $NEUTRON_VPNAAS_CONF service_providers service_provider $NEUTRON_VPNAAS_SERVICE_PROVIDER
|
iniadd $NEUTRON_VPNAAS_CONF service_providers service_provider $NEUTRON_VPNAAS_SERVICE_PROVIDER
|
||||||
iniset $NEUTRON_CONF DEFAULT service_plugins $Q_SERVICE_PLUGIN_CLASSES
|
iniset $NEUTRON_CONF DEFAULT service_plugins $Q_SERVICE_PLUGIN_CLASSES
|
||||||
$NEUTRON_BIN_DIR/neutron-db-manage --service vpnaas --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head
|
}
|
||||||
|
|
||||||
|
function neutron_vpnaas_configure_db {
|
||||||
|
$NEUTRON_BIN_DIR/neutron-db-manage --subproject neutron-vpnaas --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head
|
||||||
}
|
}
|
||||||
|
|
||||||
function neutron_vpnaas_configure_agent {
|
function neutron_vpnaas_configure_agent {
|
||||||
@ -83,17 +88,27 @@ if [[ "$1" == "stack" && "$2" == "install" ]]; then
|
|||||||
neutron_vpnaas_install
|
neutron_vpnaas_install
|
||||||
|
|
||||||
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
||||||
echo_summary "Configuring neutron-vpnaas"
|
|
||||||
neutron_vpnaas_generate_config_files
|
neutron_vpnaas_generate_config_files
|
||||||
neutron_vpnaas_configure_common
|
neutron_vpnaas_configure_common
|
||||||
neutron_vpnaas_configure_agent
|
if is_service_enabled q-svc; then
|
||||||
|
echo_summary "Configuring neutron-vpnaas on controller"
|
||||||
|
neutron_vpnaas_configure_db
|
||||||
|
fi
|
||||||
|
if is_service_enabled q-l3; then
|
||||||
|
echo_summary "Configuring neutron-vpnaas agent"
|
||||||
|
neutron_vpnaas_configure_agent
|
||||||
|
fi
|
||||||
|
|
||||||
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
||||||
echo_summary "Initializing neutron-vpnaas"
|
if is_service_enabled q-l3; then
|
||||||
neutron_vpnaas_start
|
echo_summary "Initializing neutron-vpnaas"
|
||||||
|
neutron_vpnaas_start
|
||||||
|
fi
|
||||||
|
|
||||||
elif [[ "$1" == "unstack" ]]; then
|
elif [[ "$1" == "unstack" ]]; then
|
||||||
neutron_vpnaas_stop
|
if is_service_enabled q-l3; then
|
||||||
|
neutron_vpnaas_stop
|
||||||
|
fi
|
||||||
|
|
||||||
# NOP for clean step
|
# NOP for clean step
|
||||||
|
|
||||||
|
46
doc/source/devref/devstack.rst
Normal file
46
doc/source/devref/devstack.rst
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
===============================
|
||||||
|
Configuring VPNaaS for DevStack
|
||||||
|
===============================
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
Multinode vs All-In-One
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Devstack typically runs in single or "All-In-One" (AIO) mode. However, it
|
||||||
|
can also be deployed to run on multiple nodes. For VPNaaS, running on an
|
||||||
|
AIO setup is simple, as everything happens on the same node. However, to
|
||||||
|
deploy to a multinode setup requires the following things to happen:
|
||||||
|
|
||||||
|
#. Each controller node requires database migrations in support of running
|
||||||
|
VPNaaS.
|
||||||
|
#. Each network node that would run the L3 agent needs to run the Neutron
|
||||||
|
VPNaaS agent in its place.
|
||||||
|
|
||||||
|
Therefore, the devstack plugin script needs some extra logic.
|
||||||
|
|
||||||
|
----------------
|
||||||
|
How to Configure
|
||||||
|
----------------
|
||||||
|
|
||||||
|
To configure VPNaaS, it is only necessary to enable the neutron-vpnaas
|
||||||
|
devstack plugin by adding the following line to the [[local|localrc]]
|
||||||
|
section of devstack's local.conf file::
|
||||||
|
|
||||||
|
enable_plugin neutron-vpnaas <GITURL> [BRANCH]
|
||||||
|
|
||||||
|
<GITURL> is the URL of a neutron-vpnaas repository
|
||||||
|
[BRANCH] is an optional git ref (branch/ref/tag). The default is master.
|
||||||
|
|
||||||
|
For example::
|
||||||
|
|
||||||
|
enable_plugin neutron-vpnaas https://git.openstack.org/openstack/neutron-vpnaas stable/kilo
|
||||||
|
|
||||||
|
This VPNaaS devstack plugin code will then
|
||||||
|
|
||||||
|
#. Install the common VPNaaS configuration and code,
|
||||||
|
|
||||||
|
#. Apply database migrations on nodes that are running the controller (as
|
||||||
|
determined by enabling the q-svc service),
|
||||||
|
|
||||||
|
#. Run the VPNaaS agent on nodes that would normally be running the L3 agent
|
||||||
|
(as determined by enabling the q-l3 service).
|
@ -42,12 +42,13 @@ VPNaaS Internals
|
|||||||
|
|
||||||
multiple-local-subnets
|
multiple-local-subnets
|
||||||
|
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
-------
|
-------
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
|
|
||||||
|
devstack
|
||||||
|
|
||||||
.. todo::
|
.. todo::
|
||||||
|
|
||||||
Add notes about functional testing, with info on how
|
Add notes about functional testing, with info on how
|
||||||
|
Loading…
x
Reference in New Issue
Block a user