Devstack support for macvtap agent

Macvtap agent can now be configured via this devstack.
Note that it is only supported in multinode environments
as compute node. The controller node still needs to run
linuxbridge or ovs.

Documentation will be added in devstack via [1]

[1] https://review.openstack.org/292778

Example:

OVS Controller
--------------
Make sure that the controller
- loads the macvtap ml2 driver
- uses vlan or flat networking

Macvtap Compute Node local.conf
-------------------------------
[[local|localrc]]
SERVICE_HOST=1.2.3.4
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
disable_all_services
enable_plugin neutron git://git.openstack.org/openstack/neutron
enable_service n-cpu
enable_service q-agt
Q_AGENT=macvtap
PHYSICAL_NETWORK=default
[[post-config|/$Q_PLUGIN_CONF_FILE]]
[macvtap]
physical_interface_mappings = $PHYSICAL_NETWORK:eth1

Closes-Bug: #1557407
Change-Id: I0dd4c0d34d5f1c35b397e5e392ce107fb984b0ba
This commit is contained in:
Andreas Scheuring 2016-04-08 13:25:52 +02:00
parent 96d1d914ca
commit 8e5623d624
2 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,50 @@
# Neutron Macvtap L2 agent
# ------------------------
# Save trace setting
_XTRACE_NEUTRON_MACVTAP=$(set +o | grep xtrace)
set +o xtrace
function is_neutron_ovs_base_plugin {
# macvtap doesn't use OVS
return 1
}
function neutron_plugin_create_nova_conf {
:
}
function neutron_plugin_install_agent_packages {
:
}
function neutron_plugin_configure_debug_command {
:
}
function neutron_plugin_configure_dhcp_agent {
:
}
function neutron_plugin_configure_l3_agent {
:
}
function neutron_plugin_configure_plugin_agent {
# Only the NooPFirewallDriver is supported. If not set, the agent will
# terminate.
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver noop
AGENT_BINARY="$NEUTRON_BIN_DIR/neutron-macvtap-agent"
}
function neutron_plugin_setup_interface_driver {
:
}
function neutron_plugin_check_adv_test_requirements {
:
}
# Restore xtrace
$_XTRACE_NEUTRON_MACVTAP

View File

@ -9,6 +9,10 @@ source $LIBDIR/ovs
Q_BUILD_OVS_FROM_GIT=$(trueorfalse False Q_BUILD_OVS_FROM_GIT)
if [ -f $LIBDIR/${Q_AGENT}_agent ]; then
source $LIBDIR/${Q_AGENT}_agent
fi
if [[ "$1" == "stack" ]]; then
case "$2" in
install)