Disables ODL clustering for FDIO+ODL scenarios 49/31949/1
authorTim Rozet <trozet@redhat.com>
Mon, 27 Mar 2017 15:54:39 +0000 (11:54 -0400)
committerTim Rozet <trozet@redhat.com>
Mon, 27 Mar 2017 23:12:53 +0000 (23:12 +0000)
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 <trozet@redhat.com>
(cherry picked from commit 5108498adb2870581cc5a4bb99db693a05ff9c3b)

build/overcloud-opendaylight.sh
build/patches/disable_odl_clustering.patch [new file with mode: 0644]
lib/overcloud-deploy-functions.sh

index a668bfe..f8682f6 100755 (executable)
@@ -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 (file)
index 0000000..151481f
--- /dev/null
@@ -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
+     }
+   }
index 8f5b1a2..612f91e 100755 (executable)
@@ -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" <<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