Devstack support for LBaaS is being migrated to an external
plugin in the neutron-lbaas repository. The only LBaaS-
specific code that remains in devstack is a hook to support
existing configs that enable q-lbaas. In that case, load
the external plugin if necessary.
Change-Id: I592f64407ccf1e722b8d9788917879d0236acf0b
Depends-On: I64a94aeeabe6357b5ea7796e34c9306c55c9ae67
... | ... |
@@ -1601,6 +1601,25 @@ function enable_plugin { |
1601 | 1601 |
GITBRANCH[$name]=$branch |
1602 | 1602 |
} |
1603 | 1603 |
|
1604 |
+# is_plugin_enabled |
|
1605 |
+# |
|
1606 |
+# Has a particular plugin been enabled? |
|
1607 |
+function is_plugin_enabled { |
|
1608 |
+ local plugins=$@ |
|
1609 |
+ local plugin |
|
1610 |
+ local enabled=1 |
|
1611 |
+ |
|
1612 |
+ # short circuit if nothing to do |
|
1613 |
+ if [[ -z ${DEVSTACK_PLUGINS} ]]; then |
|
1614 |
+ return $enabled |
|
1615 |
+ fi |
|
1616 |
+ |
|
1617 |
+ for plugin in ${plugins}; do |
|
1618 |
+ [[ ,${DEVSTACK_PLUGINS}, =~ ,${plugin}, ]] && enabled=0 |
|
1619 |
+ done |
|
1620 |
+ return $enabled |
|
1621 |
+} |
|
1622 |
+ |
|
1604 | 1623 |
# fetch_plugins |
1605 | 1624 |
# |
1606 | 1625 |
# clones all plugins |
... | ... |
@@ -100,10 +100,8 @@ IPV6_ROUTER_GW_IP=${IPV6_ROUTER_GW_IP:-fe80:cafe:cafe::1} |
100 | 100 |
# Set up default directories |
101 | 101 |
GITDIR["python-neutronclient"]=$DEST/python-neutronclient |
102 | 102 |
|
103 |
- |
|
104 | 103 |
NEUTRON_DIR=$DEST/neutron |
105 | 104 |
NEUTRON_FWAAS_DIR=$DEST/neutron-fwaas |
106 |
-NEUTRON_LBAAS_DIR=$DEST/neutron-lbaas |
|
107 | 105 |
NEUTRON_VPNAAS_DIR=$DEST/neutron-vpnaas |
108 | 106 |
NEUTRON_AUTH_CACHE_DIR=${NEUTRON_AUTH_CACHE_DIR:-/var/cache/neutron} |
109 | 107 |
|
... | ... |
@@ -116,6 +114,7 @@ fi |
116 | 116 |
|
117 | 117 |
NEUTRON_CONF_DIR=/etc/neutron |
118 | 118 |
NEUTRON_CONF=$NEUTRON_CONF_DIR/neutron.conf |
119 |
+ |
|
119 | 120 |
export NEUTRON_TEST_CONFIG_FILE=${NEUTRON_TEST_CONFIG_FILE:-"$NEUTRON_CONF_DIR/debug.ini"} |
120 | 121 |
|
121 | 122 |
# Agent binaries. Note, binary paths for other agents are set in per-service |
... | ... |
@@ -326,12 +325,6 @@ ENABLE_METADATA_NETWORK=${ENABLE_METADATA_NETWORK:-False} |
326 | 326 |
# Please refer to ``lib/neutron_plugins/README.md`` for details. |
327 | 327 |
source $TOP_DIR/lib/neutron_plugins/$Q_PLUGIN |
328 | 328 |
|
329 |
-# Agent loadbalancer service plugin functions |
|
330 |
-# ------------------------------------------- |
|
331 |
- |
|
332 |
-# Hardcoding for 1 service plugin for now |
|
333 |
-source $TOP_DIR/lib/neutron_plugins/services/loadbalancer |
|
334 |
- |
|
335 | 329 |
# Agent metering service plugin functions |
336 | 330 |
# ------------------------------------------- |
337 | 331 |
|
... | ... |
@@ -358,6 +351,17 @@ fi |
358 | 358 |
TEMPEST_SERVICES+=,neutron |
359 | 359 |
|
360 | 360 |
|
361 |
+# For backward compatibility, if q-lbaas service is enabled, make sure to load the |
|
362 |
+# neutron-lbaas plugin. This hook should be removed in a future release, perhaps |
|
363 |
+# as early as Liberty. |
|
364 |
+ |
|
365 |
+if is_service_enabled q-lbaas; then |
|
366 |
+ if ! is_plugin_enabled neutron-lbaas; then |
|
367 |
+ DEPRECATED_TEXT+="External plugin neutron-lbaas has been automatically activated, please add the appropriate enable_plugin to your local.conf. This will be removed in the Liberty cycle." |
|
368 |
+ enable_plugin "neutron-lbaas" ${NEUTRON_LBAAS_REPO} ${NEUTRON_LBAAS_BRANCH} |
|
369 |
+ fi |
|
370 |
+fi |
|
371 |
+ |
|
361 | 372 |
# Save trace setting |
362 | 373 |
XTRACE=$(set +o | grep xtrace) |
363 | 374 |
set +o xtrace |
... | ... |
@@ -425,9 +429,7 @@ function configure_neutron { |
425 | 425 |
iniset_rpc_backend neutron $NEUTRON_CONF DEFAULT |
426 | 426 |
|
427 | 427 |
# goes before q-svc to init Q_SERVICE_PLUGIN_CLASSES |
428 |
- if is_service_enabled q-lbaas; then |
|
429 |
- _configure_neutron_lbaas |
|
430 |
- fi |
|
428 |
+ |
|
431 | 429 |
if is_service_enabled q-metering; then |
432 | 430 |
_configure_neutron_metering |
433 | 431 |
fi |
... | ... |
@@ -605,7 +607,8 @@ function init_neutron { |
605 | 605 |
recreate_database $Q_DB_NAME |
606 | 606 |
# Run Neutron db migrations |
607 | 607 |
$NEUTRON_BIN_DIR/neutron-db-manage --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head |
608 |
- for svc in fwaas lbaas vpnaas; do |
|
608 |
+ |
|
609 |
+ for svc in fwaas vpnaas; do |
|
609 | 610 |
if [ "$svc" = "vpnaas" ]; then |
610 | 611 |
q_svc="q-vpn" |
611 | 612 |
else |
... | ... |
@@ -625,10 +628,6 @@ function install_neutron { |
625 | 625 |
git_clone $NEUTRON_FWAAS_REPO $NEUTRON_FWAAS_DIR $NEUTRON_FWAAS_BRANCH |
626 | 626 |
setup_develop $NEUTRON_FWAAS_DIR |
627 | 627 |
fi |
628 |
- if is_service_enabled q-lbaas; then |
|
629 |
- git_clone $NEUTRON_LBAAS_REPO $NEUTRON_LBAAS_DIR $NEUTRON_LBAAS_BRANCH |
|
630 |
- setup_develop $NEUTRON_LBAAS_DIR |
|
631 |
- fi |
|
632 | 628 |
if is_service_enabled q-vpn; then |
633 | 629 |
git_clone $NEUTRON_VPNAAS_REPO $NEUTRON_VPNAAS_DIR $NEUTRON_VPNAAS_BRANCH |
634 | 630 |
setup_develop $NEUTRON_VPNAAS_DIR |
... | ... |
@@ -672,10 +671,6 @@ function install_neutron_agent_packages { |
672 | 672 |
if is_service_enabled q-agt q-dhcp q-l3; then |
673 | 673 |
neutron_plugin_install_agent_packages |
674 | 674 |
fi |
675 |
- |
|
676 |
- if is_service_enabled q-lbaas; then |
|
677 |
- neutron_agent_lbaas_install_agent_packages |
|
678 |
- fi |
|
679 | 675 |
} |
680 | 676 |
|
681 | 677 |
# Start running processes, including screen |
... | ... |
@@ -735,10 +730,6 @@ function start_neutron_agents { |
735 | 735 |
run_process q-domua "python $AGENT_BINARY --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE.domU" |
736 | 736 |
fi |
737 | 737 |
|
738 |
- if is_service_enabled q-lbaas; then |
|
739 |
- run_process q-lbaas "python $AGENT_LBAAS_BINARY --config-file $NEUTRON_CONF --config-file=$LBAAS_AGENT_CONF_FILENAME" |
|
740 |
- fi |
|
741 |
- |
|
742 | 738 |
if is_service_enabled q-metering; then |
743 | 739 |
run_process q-metering "python $AGENT_METERING_BINARY --config-file $NEUTRON_CONF --config-file $METERING_AGENT_CONF_FILENAME" |
744 | 740 |
fi |
... | ... |
@@ -762,9 +753,6 @@ function stop_neutron { |
762 | 762 |
|
763 | 763 |
stop_process q-agt |
764 | 764 |
|
765 |
- if is_service_enabled q-lbaas; then |
|
766 |
- neutron_lbaas_stop |
|
767 |
- fi |
|
768 | 765 |
if is_service_enabled q-fwaas; then |
769 | 766 |
neutron_fwaas_stop |
770 | 767 |
fi |
... | ... |
@@ -792,12 +780,11 @@ function cleanup_neutron { |
792 | 792 |
fi |
793 | 793 |
|
794 | 794 |
# delete all namespaces created by neutron |
795 |
- for ns in $(sudo ip netns list | grep -o -E '(qdhcp|qrouter|qlbaas|fip|snat)-[0-9a-f-]*'); do |
|
795 |
+ for ns in $(sudo ip netns list | grep -o -E '(qdhcp|qrouter|fip|snat)-[0-9a-f-]*'); do |
|
796 | 796 |
sudo ip netns delete ${ns} |
797 | 797 |
done |
798 | 798 |
} |
799 | 799 |
|
800 |
- |
|
801 | 800 |
function _create_neutron_conf_dir { |
802 | 801 |
# Put config files in ``NEUTRON_CONF_DIR`` for everyone to find |
803 | 802 |
if [[ ! -d $NEUTRON_CONF_DIR ]]; then |
... | ... |
@@ -967,14 +954,6 @@ function _configure_neutron_ceilometer_notifications { |
967 | 967 |
iniset $NEUTRON_CONF DEFAULT notification_driver messaging |
968 | 968 |
} |
969 | 969 |
|
970 |
-function _configure_neutron_lbaas { |
|
971 |
- if [ -f $NEUTRON_LBAAS_DIR/etc/neutron_lbaas.conf ]; then |
|
972 |
- cp $NEUTRON_LBAAS_DIR/etc/neutron_lbaas.conf $NEUTRON_CONF_DIR |
|
973 |
- fi |
|
974 |
- neutron_agent_lbaas_configure_common |
|
975 |
- neutron_agent_lbaas_configure_agent |
|
976 |
-} |
|
977 |
- |
|
978 | 970 |
function _configure_neutron_metering { |
979 | 971 |
neutron_agent_metering_configure_common |
980 | 972 |
neutron_agent_metering_configure_agent |
981 | 973 |
deleted file mode 100644 |
... | ... |
@@ -1,49 +0,0 @@ |
1 |
-# Neutron loadbalancer plugin |
|
2 |
-# --------------------------- |
|
3 |
- |
|
4 |
-# Save trace setting |
|
5 |
-LB_XTRACE=$(set +o | grep xtrace) |
|
6 |
-set +o xtrace |
|
7 |
- |
|
8 |
- |
|
9 |
-AGENT_LBAAS_BINARY="$NEUTRON_BIN_DIR/neutron-lbaas-agent" |
|
10 |
-LBAAS_PLUGIN=neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPlugin |
|
11 |
- |
|
12 |
-function neutron_agent_lbaas_install_agent_packages { |
|
13 |
- if is_ubuntu || is_fedora || is_suse; then |
|
14 |
- install_package haproxy |
|
15 |
- fi |
|
16 |
-} |
|
17 |
- |
|
18 |
-function neutron_agent_lbaas_configure_common { |
|
19 |
- _neutron_service_plugin_class_add $LBAAS_PLUGIN |
|
20 |
- _neutron_deploy_rootwrap_filters $NEUTRON_LBAAS_DIR |
|
21 |
-} |
|
22 |
- |
|
23 |
-function neutron_agent_lbaas_configure_agent { |
|
24 |
- LBAAS_AGENT_CONF_PATH=/etc/neutron/services/loadbalancer/haproxy |
|
25 |
- mkdir -p $LBAAS_AGENT_CONF_PATH |
|
26 |
- |
|
27 |
- LBAAS_AGENT_CONF_FILENAME="$LBAAS_AGENT_CONF_PATH/lbaas_agent.ini" |
|
28 |
- |
|
29 |
- cp $NEUTRON_LBAAS_DIR/etc/lbaas_agent.ini $LBAAS_AGENT_CONF_FILENAME |
|
30 |
- |
|
31 |
- # ovs_use_veth needs to be set before the plugin configuration |
|
32 |
- # occurs to allow plugins to override the setting. |
|
33 |
- iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT ovs_use_veth $Q_OVS_USE_VETH |
|
34 |
- |
|
35 |
- neutron_plugin_setup_interface_driver $LBAAS_AGENT_CONF_FILENAME |
|
36 |
- |
|
37 |
- if is_fedora; then |
|
38 |
- iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT user_group "nobody" |
|
39 |
- iniset $LBAAS_AGENT_CONF_FILENAME haproxy user_group "nobody" |
|
40 |
- fi |
|
41 |
-} |
|
42 |
- |
|
43 |
-function neutron_lbaas_stop { |
|
44 |
- pids=$(ps aux | awk '/haproxy/ { print $2 }') |
|
45 |
- [ ! -z "$pids" ] && sudo kill $pids |
|
46 |
-} |
|
47 |
- |
|
48 |
-# Restore xtrace |
|
49 |
-$LB_XTRACE |
... | ... |
@@ -198,6 +198,9 @@ NEUTRON_FWAAS_REPO=${NEUTRON_FWAAS_REPO:-${GIT_BASE}/openstack/neutron-fwaas.git |
198 | 198 |
NEUTRON_FWAAS_BRANCH=${NEUTRON_FWAAS_BRANCH:-master} |
199 | 199 |
|
200 | 200 |
# neutron lbaas service |
201 |
+# The neutron-lbaas specific entries are deprecated and replaced by the neutron-lbaas |
|
202 |
+# devstack plugin and should be removed in a future release, possibly as soon as Liberty. |
|
203 |
+ |
|
201 | 204 |
NEUTRON_LBAAS_REPO=${NEUTRON_LBAAS_REPO:-${GIT_BASE}/openstack/neutron-lbaas.git} |
202 | 205 |
NEUTRON_LBAAS_BRANCH=${NEUTRON_LBAAS_BRANCH:-master} |
203 | 206 |
|