summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild/overcloud-opendaylight.sh1
-rw-r--r--build/patches/disable_odl_clustering.patch46
-rwxr-xr-xlib/overcloud-deploy-functions.sh9
3 files changed, 56 insertions, 0 deletions
diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh
index a668bfed..f8682f6c 100755
--- a/build/overcloud-opendaylight.sh
+++ b/build/overcloud-opendaylight.sh
@@ -109,6 +109,7 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--install zeromq-4.1.4,zeromq-devel-4.1.4 \
--install capnproto-devel,capnproto-libs,capnproto \
--upload ${BUILD_ROOT}/patches/neutron-patch-NSDriver.patch:/usr/lib/python2.7/site-packages/ \
+ --upload ${BUILD_ROOT}/patches/disable_odl_clustering.patch:/etc/puppet/modules/tripleo/ \
-a overcloud-full-opendaylight_build.qcow2
LIBGUESTFS_BACKEND=direct virt-sparsify --compress overcloud-full-opendaylight_build.qcow2 overcloud-full-opendaylight.qcow2
diff --git a/build/patches/disable_odl_clustering.patch b/build/patches/disable_odl_clustering.patch
new file mode 100644
index 00000000..151481fc
--- /dev/null
+++ b/build/patches/disable_odl_clustering.patch
@@ -0,0 +1,46 @@
+diff --git a/manifests/profile/base/neutron/opendaylight.pp b/manifests/profile/base/neutron/opendaylight.pp
+index 3269f3e..556fe63 100644
+--- a/manifests/profile/base/neutron/opendaylight.pp
++++ b/manifests/profile/base/neutron/opendaylight.pp
+@@ -22,34 +22,19 @@
+ # (Optional) The current step of the deployment
+ # Defaults to hiera('step')
+ #
+-# [*odl_api_ips*]
+-# (Optional) List of OpenStack Controller IPs for ODL API
+-# Defaults to hiera('opendaylight_api_node_ips')
+-#
+-# [*node_name*]
+-# (Optional) The short hostname of node
+-# Defaults to hiera('bootstack_nodeid')
++# [*primary_node*]
++# (Optional) The hostname of the first node of this role type
++# Defaults to hiera('bootstrap_nodeid', undef)
+ #
+ class tripleo::profile::base::neutron::opendaylight (
+ $step = hiera('step'),
+- $odl_api_ips = hiera('opendaylight_api_node_ips'),
+- $node_name = hiera('bootstack_nodeid')
++ $primary_node = hiera('bootstrap_nodeid', undef),
+ ) {
+
+ if $step >= 1 {
+- if empty($odl_api_ips) {
+- fail('No IPs assigned to OpenDaylight Api Service')
+- } elsif size($odl_api_ips) == 2 {
+- fail('2 node OpenDaylight deployments are unsupported. Use 1 or greater than 2')
+- } elsif size($odl_api_ips) > 2 {
+- $node_string = split($node_name, '-')
+- $ha_node_index = $node_string[-1] + 1
+- class { '::opendaylight':
+- enable_ha => true,
+- ha_node_ips => $odl_api_ips,
+- ha_node_index => $ha_node_index,
+- }
+- } else {
++ # Configure ODL only on first node of the role where this service is
++ # applied
++ if $primary_node == downcase($::hostname) {
+ include ::opendaylight
+ }
+ }
diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh
index 17e24cca..1dc819d7 100755
--- a/lib/overcloud-deploy-functions.sh
+++ b/lib/overcloud-deploy-functions.sh
@@ -172,6 +172,15 @@ EOI
LIBGUESTFS_BACKEND=direct virt-customize --run-command "cd /usr/lib/python2.7/site-packages/ && patch -p1 < neutron-patch-NSDriver.patch" \
-a overcloud-full.qcow2
EOI
+
+ # Disable clustering for ODL FDIO HA scenarios
+ if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
+ LIBGUESTFS_BACKEND=direct virt-customize --run-command "cd /etc/puppet/modules/tripleo/ && patch -p1 < disable_odl_clustering.patch" \
+ -a overcloud-full.qcow2
+EOI
+ fi
+
# Configure routing node for odl_l3-fdio
if [[ "${deploy_options_array['sdn_l3']}" == 'True' ]]; then
ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI