diff options
-rwxr-xr-x | build/overcloud-opendaylight.sh | 1 | ||||
-rw-r--r-- | build/patches/disable_odl_clustering.patch | 46 | ||||
-rwxr-xr-x | lib/overcloud-deploy-functions.sh | 9 |
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 |