Update OVS in overcloud 17/60217/3
authorTim Rozet <trozet@redhat.com>
Thu, 26 Jul 2018 18:46:24 +0000 (14:46 -0400)
committerTim Rozet <trozet@redhat.com>
Thu, 26 Jul 2018 22:06:08 +0000 (22:06 +0000)
This bug fix is not present in the RDO versions of OVS:
https://bugzilla.redhat.com/show_bug.cgi?id=1544892

The impact of this is that traffic sent through a patch port (like from
br-int to br-ex) will not be sent correctly with OF groups (which ODL
uses). This would cause tenant vlan traffic not to work in our case.

Change-Id: Ia477b174118dcd2d7fb24189c2d093218eb97053
Signed-off-by: Tim Rozet <trozet@redhat.com>
apex/common/constants.py
apex/overcloud/deploy.py

index 9c6b2a2..d855222 100644 (file)
@@ -68,3 +68,5 @@ VALID_DOCKER_SERVICES = {
 DOCKERHUB_OOO = 'https://registry.hub.docker.com/v2/repositories' \
                 '/tripleomaster/'
 KUBESPRAY_URL = 'https://github.com/kubernetes-incubator/kubespray.git'
+CUSTOM_OVS = 'http://artifacts.opnfv.org/apex/random/openvswitch-2.9.0-9' \
+             '.el7fdn.x86_64.rpm'
index 439848f..2f58e8a 100644 (file)
@@ -344,15 +344,30 @@ def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
     if root_pw:
         pw_op = "password:{}".format(root_pw)
         virt_cmds.append({con.VIRT_PW: pw_op})
-    if ds_opts['sfc'] and dataplane == 'ovs':
-        virt_cmds.extend([
-            {con.VIRT_RUN_CMD: "yum -y install "
-                               "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
-                               "{}".format(OVS_NSH_KMOD_RPM)},
-            {con.VIRT_RUN_CMD: "yum downgrade -y "
-                               "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
-                               "{}".format(OVS_NSH_RPM)}
-        ])
+
+    if dataplane == 'ovs':
+        if ds_opts['sfc']:
+            virt_cmds.extend([
+                {con.VIRT_RUN_CMD: "yum -y install "
+                                   "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
+                                   "{}".format(OVS_NSH_KMOD_RPM)},
+                {con.VIRT_RUN_CMD: "yum downgrade -y "
+                                   "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
+                                   "{}".format(OVS_NSH_RPM)}
+            ])
+        elif sdn == 'opendaylight':
+            # FIXME(trozet) remove this after RDO is updated with fix for
+            # https://bugzilla.redhat.com/show_bug.cgi?id=1544892
+            ovs_file = os.path.basename(con.CUSTOM_OVS)
+            ovs_url = con.CUSTOM_OVS.replace(ovs_file, '')
+            utils.fetch_upstream_and_unpack(dest=tmp_dir, url=ovs_url,
+                                            targets=[ovs_file])
+            virt_cmds.extend([
+                {con.VIRT_UPLOAD: "{}:/root/".format(os.path.join(tmp_dir,
+                                                                  ovs_file))},
+                {con.VIRT_RUN_CMD: "yum downgrade -y /root/{}".format(
+                    ovs_file)}
+            ])
     if dataplane == 'fdio':
         # Patch neutron with using OVS external interface for router
         # and add generic linux NS interface driver