summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/opnfv-environment.yaml1
-rwxr-xr-xbuild/overcloud-full.sh14
-rwxr-xr-xbuild/overcloud-opendaylight.sh1
-rw-r--r--build/patches/disable_odl_clustering.patch46
-rw-r--r--build/rpm_specs/opnfv-apex-common.spec3
-rw-r--r--ci/PR_revision.log1
-rw-r--r--config/deploy/os-ovn-nofeature-noha.yaml10
-rwxr-xr-xlib/overcloud-deploy-functions.sh29
8 files changed, 104 insertions, 1 deletions
diff --git a/build/opnfv-environment.yaml b/build/opnfv-environment.yaml
index b42779ba..0018aa96 100644
--- a/build/opnfv-environment.yaml
+++ b/build/opnfv-environment.yaml
@@ -114,6 +114,7 @@ parameter_defaults:
- OS::TripleO::Services::NeutronHoneycombAgent
- OS::TripleO::Services::Congress
- OS::TripleO::Services::NeutronVppAgent
+ - OS::TripleO::Services::OVNDBs
ComputeServices:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephClient
diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh
index cfda0398..dbf297fd 100755
--- a/build/overcloud-full.sh
+++ b/build/overcloud-full.sh
@@ -68,6 +68,13 @@ pushd puppet-tacker > /dev/null
git archive --format=tar.gz --prefix=tacker/ origin/stable/ocata > ${BUILD_DIR}/puppet-tacker.tar.gz
popd > /dev/null
+# tar up the ovn puppet module
+rm -rf puppet-ovn
+git clone https://github.com/openstack/puppet-ovn
+pushd puppet-ovn > /dev/null
+git archive --format=tar.gz --prefix=ovn/ origin/stable/ocata > ${BUILD_DIR}/puppet-ovn.tar.gz
+popd > /dev/null
+
# Master FD.IO Repo
cat > ${BUILD_DIR}/fdio.repo << EOF
[fdio-master]
@@ -104,11 +111,11 @@ qemu-img resize overcloud-full_build.qcow2 +900MB
LIBGUESTFS_BACKEND=direct virt-customize \
--run-command "xfs_growfs /dev/sda" \
--upload ${BUILD_DIR}/opnfv-puppet-tripleo.tar.gz:/etc/puppet/modules \
+ --run-command "cd /etc/puppet/modules && rm -rf tripleo && tar xzf opnfv-puppet-tripleo.tar.gz" \
--run-command "yum update -y python-ipaddress rabbitmq-server erlang*" \
--run-command "if ! rpm -qa | grep python-redis; then yum install -y python-redis; fi" \
--run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \
--run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \
- --run-command "cd /etc/puppet/modules && rm -rf tripleo && tar xzf opnfv-puppet-tripleo.tar.gz" \
--run-command "mkdir /root/dpdk_rpms" \
--upload ${BUILD_DIR}/fdio.repo:/etc/yum.repos.d/fdio.repo \
$dpdk_pkg_str \
@@ -142,6 +149,11 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--install /root/$tacker_pkg \
--upload ${BUILD_DIR}/noarch/$tackerclient_pkg:/root/ \
--install /root/$tackerclient_pkg \
+ --upload ${BUILD_DIR}/puppet-ovn.tar.gz:/etc/puppet/modules/ \
+ --run-command "cd /etc/puppet/modules/ && rm -fr ovn && tar xzf puppet-ovn.tar.gz" \
+ --run-command "curl -f https://copr.fedorainfracloud.org/coprs/leifmadsen/ovs-master/repo/epel-7/leifmadsen-ovs-master-epel-7.repo > /etc/yum.repos.d/leifmadsen-ovs-master-epel-7.repo" \
+ --run-command "mkdir /root/ovs27" \
+ --run-command "yumdownloader --destdir=/root/ovs27 openvswitch*2.7* python-openvswitch-2.7*" \
--run-command "pip install python-senlinclient" \
--run-command "sed -i -E 's/timeout=[0-9]+/timeout=60/g' /usr/share/openstack-puppet/modules/rabbitmq/lib/puppet/provider/rabbitmqctl.rb" \
--upload ${BUILD_ROOT}/patches/puppet-neutron-add-odl-settings.patch:/usr/share/openstack-puppet/modules/neutron/ \
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/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec
index 4266897c..c1bf2968 100644
--- a/build/rpm_specs/opnfv-apex-common.spec
+++ b/build/rpm_specs/opnfv-apex-common.spec
@@ -59,6 +59,7 @@ install config/deploy/os-odl_l3-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/o
install config/deploy/os-odl_l3-ovs-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l3-ovs-ha.yaml
install config/deploy/os-odl_l3-ovs-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l3-ovs-noha.yaml
install config/deploy/os-odl-gluon-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-gluon-noha.yaml
+install config/deploy/os-ovn-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-ovn-nofeature-noha.yaml
#install config/deploy/os-onos-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml
#install config/deploy/os-onos-sfc-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml
install config/deploy/os-ocl-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-ocl-nofeature-ha.yaml
@@ -144,6 +145,7 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
%{_sysconfdir}/opnfv-apex/os-odl_l3-nofeature-ha.yaml
%{_sysconfdir}/opnfv-apex/os-odl_l3-nofeature-noha.yaml
%{_sysconfdir}/opnfv-apex/os-odl-gluon-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-ovn-nofeature-noha.yaml
#%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml
#%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml
%{_sysconfdir}/opnfv-apex/os-ocl-nofeature-ha.yaml
@@ -170,6 +172,7 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
* Wed Mar 08 2017 Dan Radez <dradez@redhat.com> - 4.0-5
- Commenting out ONOS, unsupported in Danube
- Adding kvm4nfv files
+- Adding OVN files
* Tue Feb 14 2017 Feng Pan <fpan@redhat.com> - 4.0-4
- Add network_settings_vpp.yaml
* Fri Feb 3 2017 Nikolas Hermanns <nikolas.hermanns@ericsson.com> - 4.0-3
diff --git a/ci/PR_revision.log b/ci/PR_revision.log
index 067aa8b2..58f3edad 100644
--- a/ci/PR_revision.log
+++ b/ci/PR_revision.log
@@ -15,3 +15,4 @@
120,Add old openflow port (6633) and karaf ssh port (8101)
123,Disable L3 HA for ODL/FDIO scenarios
124,setting keystone region for tacker and congress
+111,Backporting OVN fixes
diff --git a/config/deploy/os-ovn-nofeature-noha.yaml b/config/deploy/os-ovn-nofeature-noha.yaml
new file mode 100644
index 00000000..e03ac0ab
--- /dev/null
+++ b/config/deploy/os-ovn-nofeature-noha.yaml
@@ -0,0 +1,10 @@
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ sdn_controller: ovn
+ sdn_l3: false
+ tacker: false
+ congress: true
+ sfc: false
+ vpn: false
diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh
index 17e24cca..37e8229b 100755
--- a/lib/overcloud-deploy-functions.sh
+++ b/lib/overcloud-deploy-functions.sh
@@ -55,6 +55,15 @@ function overcloud_deploy {
# DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/onos.yaml"
#fi
#SDN_IMAGE=onos
+ elif [ "${deploy_options_array['sdn_controller']}" == 'ovn' ]; then
+ if [[ "$ha_enabled" == "True" ]]; then
+ DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ovn-ha.yaml"
+ echo "${red}OVN HA support is not not supported... exiting.${reset}"
+ exit 1
+ else
+ DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ovn.yaml"
+ fi
+ SDN_IMAGE=opendaylight
elif [ "${deploy_options_array['sdn_controller']}" == 'opencontrail' ]; then
echo -e "${red}ERROR: OpenContrail is currently unsupported...exiting${reset}"
exit 1
@@ -172,6 +181,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
@@ -259,6 +277,17 @@ EOI
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml"
fi
+ if [ "${deploy_options_array['sdn_controller']}" == 'ovn' ]; then
+ # The epoch in deloran's ovs is 1: and in leif's is 0:
+ # so we have to execute a downgrade instead of an update
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
+ LIBGUESTFS_BACKEND=direct virt-customize \
+ --run-command "cd /root/ovs27 && yum update -y *openvswitch*" \
+ --run-command "cd /root/ovs27 && yum downgrade -y *openvswitch*" \
+ -a overcloud-full.qcow2
+EOI
+ fi
+
# get number of nodes available in inventory
num_control_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "grep -c profile:control /home/stack/instackenv.json")
num_compute_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "grep -c profile:compute /home/stack/instackenv.json")