From b94ca9c7d72d7abbc3c011818eec125067c008b9 Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Mon, 27 Mar 2017 11:54:39 -0400 Subject: Disables ODL clustering for FDIO+ODL scenarios ODL clustering has issues with VPP mounting, so we are disabling clustering for now and should have the bug in ODL fixed by Danube 2.0. Change-Id: I19b9c9167596105a3197de8c5a537bed1280f241 Signed-off-by: Tim Rozet (cherry picked from commit 5108498adb2870581cc5a4bb99db693a05ff9c3b) --- build/overcloud-opendaylight.sh | 1 + build/patches/disable_odl_clustering.patch | 46 ++++++++++++++++++++++++++++++ lib/overcloud-deploy-functions.sh | 9 ++++++ 3 files changed, 56 insertions(+) create mode 100644 build/patches/disable_odl_clustering.patch 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 8f5b1a21..612f91e1 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -169,6 +169,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" <