Add support for setting extra networking configuration options.

Add support for generically setting arguments for OpenStack Networking
for both the server and agent. This is done using Q_SRV_EXTRA_OPTS for the
server, which let you place settings in the "OVS" or "LINUX_BRIDGE"
sections of the plugin configuration file. For the agent, two variables
are defined: Q_AGENT_EXTRA_AGENT_OPTS lets you set items in the "AGENT"
section of the plugin configuration file, and Q_AGENT_EXTRA_SRV_OPTS
lets you set things in the "OVS" or "LINUX_BRIDGE" sections of the
plugin configuration file.

Implements blueprint devstack-quantum-config.

Change-Id: I9ba44b21231f88cda1bcc5e3389c7875f03d8145
This commit is contained in:
Kyle Mestery 2013-05-17 15:20:56 -05:00
parent c9b0f1abaa
commit ebfac64d2a
6 changed files with 61 additions and 0 deletions

View File

@ -122,6 +122,19 @@ In order to enable Quantum a single node setup, you'll need the following settin
Then run `stack.sh` as normal. Then run `stack.sh` as normal.
devstack supports adding specific Quantum configuration flags to both the Open vSwitch and LinuxBridge plugin configuration files. To make use of this feature, the following variables are defined and can be configured in your `localrc` file:
Variable Name Plugin Config File Section Modified
-------------------------------------------------------------------------------------
Q_SRV_EXTRA_OPTS `OVS` (for Open Vswitch) or `LINUX_BRIDGE` (for LinuxBridge)
Q_AGENT_EXTRA_AGENT_OPTS AGENT
Q_AGENT_EXTRA_SRV_OPTS `OVS` (for Open Vswitch) or `LINUX_BRIDGE` (for LinuxBridge)
An example of using the variables in your `localrc` is below:
Q_AGENT_EXTRA_AGENT_OPTS=(tunnel_type=vxlan vxlan_udp_port=8472)
Q_SRV_EXTRA_OPTS=(tenant_network_type=vxlan)
# Tempest # Tempest
If tempest has been successfully configured, a basic set of smoke tests can be run as follows: If tempest has been successfully configured, a basic set of smoke tests can be run as follows:

View File

@ -52,6 +52,10 @@
# Quantum. # Quantum.
# #
# With Quantum networking the NETWORK_MANAGER variable is ignored. # With Quantum networking the NETWORK_MANAGER variable is ignored.
#
# To enable specific configuration options for either the Open vSwitch or
# LinuxBridge plugin, please see the top level README file under the
# Quantum section.
# Save trace setting # Save trace setting
XTRACE=$(set +o | grep xtrace) XTRACE=$(set +o | grep xtrace)

View File

@ -35,6 +35,14 @@ function quantum_plugin_configure_service() {
else else
iniset /$Q_PLUGIN_CONF_FILE SECURITYGROUP firewall_driver quantum.agent.firewall.NoopFirewallDriver iniset /$Q_PLUGIN_CONF_FILE SECURITYGROUP firewall_driver quantum.agent.firewall.NoopFirewallDriver
fi fi
# Define extra "LINUX_BRIDGE" configuration options when q-svc is configured by defining
# the array ``Q_SRV_EXTRA_OPTS``.
# For Example: ``Q_SRV_EXTRA_OPTS=(foo=true bar=2)``
for I in "${Q_SRV_EXTRA_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE LINUX_BRIDGE ${I/=/ }
done
} }
function has_quantum_plugin_security_group() { function has_quantum_plugin_security_group() {

View File

@ -47,6 +47,20 @@ function quantum_plugin_configure_plugin_agent() {
iniset /$Q_PLUGIN_CONF_FILE SECURITYGROUP firewall_driver quantum.agent.firewall.NoopFirewallDriver iniset /$Q_PLUGIN_CONF_FILE SECURITYGROUP firewall_driver quantum.agent.firewall.NoopFirewallDriver
fi fi
AGENT_BINARY="$QUANTUM_DIR/bin/quantum-linuxbridge-agent" AGENT_BINARY="$QUANTUM_DIR/bin/quantum-linuxbridge-agent"
# Define extra "AGENT" configuration options when q-agt is configured by defining
# the array ``Q_AGENT_EXTRA_AGENT_OPTS``.
# For Example: ``Q_AGENT_EXTRA_AGENT_OPTS=(foo=true bar=2)``
for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE AGENT ${I/=/ }
done
# Define extra "LINUX_BRIDGE" configuration options when q-agt is configured by defining
# the array ``Q_AGENT_EXTRA_SRV_OPTS``.
# For Example: ``Q_AGENT_EXTRA_SRV_OPTS=(foo=true bar=2)``
for I in "${Q_AGENT_EXTRA_SRV_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE LINUX_BRIDGE ${I/=/ }
done
} }
function quantum_plugin_setup_interface_driver() { function quantum_plugin_setup_interface_driver() {

View File

@ -42,6 +42,14 @@ function quantum_plugin_configure_service() {
fi fi
_quantum_ovs_base_configure_firewall_driver _quantum_ovs_base_configure_firewall_driver
# Define extra "OVS" configuration options when q-svc is configured by defining
# the array ``Q_SRV_EXTRA_OPTS``.
# For Example: ``Q_SRV_EXTRA_OPTS=(foo=true bar=2)``
for I in "${Q_SRV_EXTRA_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE OVS ${I/=/ }
done
} }
function has_quantum_plugin_security_group() { function has_quantum_plugin_security_group() {

View File

@ -102,6 +102,20 @@ function quantum_plugin_configure_plugin_agent() {
# Set root wrap # Set root wrap
iniset "/$Q_PLUGIN_CONF_FILE.domU" AGENT root_helper "$Q_RR_COMMAND" iniset "/$Q_PLUGIN_CONF_FILE.domU" AGENT root_helper "$Q_RR_COMMAND"
fi fi
# Define extra "AGENT" configuration options when q-agt is configured by defining
# defining the array ``Q_AGENT_EXTRA_AGENT_OPTS``.
# For Example: ``Q_AGENT_EXTRA_AGENT_OPTS=(foo=true bar=2)``
for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE AGENT ${I/=/ }
done
# Define extra "OVS" configuration options when q-agt is configured by defining
# defining the array ``Q_AGENT_EXTRA_SRV_OPTS``.
# For Example: ``Q_AGENT_EXTRA_SRV_OPTS=(foo=true bar=2)``
for I in "${Q_AGENT_EXTRA_SRV_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE OVS ${I/=/ }
done
} }
function quantum_plugin_setup_interface_driver() { function quantum_plugin_setup_interface_driver() {