summaryrefslogtreecommitdiffstats
path: root/plugins/odl_sfc/roles/sfc-pre-2
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/odl_sfc/roles/sfc-pre-2')
-rw-r--r--plugins/odl_sfc/roles/sfc-pre-2/files/odl_sfc.patch90
-rw-r--r--plugins/odl_sfc/roles/sfc-pre-2/tasks/setup_sfc.yml32
2 files changed, 99 insertions, 23 deletions
diff --git a/plugins/odl_sfc/roles/sfc-pre-2/files/odl_sfc.patch b/plugins/odl_sfc/roles/sfc-pre-2/files/odl_sfc.patch
new file mode 100644
index 00000000..9e25214a
--- /dev/null
+++ b/plugins/odl_sfc/roles/sfc-pre-2/files/odl_sfc.patch
@@ -0,0 +1,90 @@
+diff --git a/defaults/main.yml b/defaults/main.yml
+index fd6fc37..3ae4bce 100644
+--- a/defaults/main.yml
++++ b/defaults/main.yml
+@@ -381,3 +381,9 @@ dragonflow_ex_peer_patch_port: patch-int
+ dragonflow_int_peer_patch_port: patch-ex
+ dragonflow_external_network_bridge: br-ex
+ dragonflow_publisher_bind_address: "*"
++
++# Install Openvswitch without NSH support
++ovs_nsh_support: True
++#
++# # Set higher priority to mardim PPA when ovs_nsh_support is True
++ovs_nsh_apt_pinned_packages: [{ package: "*", release: "LP-PPA-mardim-mardim-ppa"}]
+diff --git a/meta/main.yml b/meta/main.yml
+index 418b4a9..7a6739a 100644
+--- a/meta/main.yml
++++ b/meta/main.yml
+@@ -39,7 +39,10 @@ galaxy_info:
+ - openstack
+ dependencies:
+ - pip_install
+- - apt_package_pinning
++ - role: apt_package_pinning
++ apt_pinned_packages: "{{ ovs_nsh_support | ternary(ovs_nsh_apt_pinned_packages, omit) }}"
++ when:
++ - ansible_pkg_mgr == 'apt'
+ - galera_client
+ - openstack_openrc
+ - role: etcd
+diff --git a/tasks/neutron_pre_install.yml b/tasks/neutron_pre_install.yml
+index 59fd87f..1162a2b 100644
+--- a/tasks/neutron_pre_install.yml
++++ b/tasks/neutron_pre_install.yml
+@@ -79,3 +79,12 @@
+ mode: "0440"
+ owner: "root"
+ group: "root"
++
++- name: add ovs-nsh repo
++ apt_repository:
++ repo: "ppa:mardim/mardim-ppa"
++ update_cache: True
++ state: present
++ when:
++ - ansible_pkg_mgr == 'apt'
++ - ovs_nsh_support | bool
+diff --git a/vars/main.yml b/vars/main.yml
+index dec0e36..afdff3f 100644
+--- a/vars/main.yml
++++ b/vars/main.yml
+@@ -27,8 +27,12 @@ neutron_package_list: |-
+ {% if (neutron_services['neutron-openvswitch-agent']['group'] in group_names and neutron_services['neutron-openvswitch-agent'].service_en | bool)
+ or (neutron_services['dragonflow-controller-agent']['group'] in group_names and neutron_services['dragonflow-controller-agent'].service_en | bool)
+ or (neutron_services['dragonflow-l3-agent']['group'] in group_names and neutron_services['dragonflow-l3-agent'].service_en | bool) %}
++ {% if (ovs_nsh_support and ansible_pkg_mgr in ['apt', 'zypper']) %}
++ {% set _ = packages.extend(neutron_ovs_nsh_required_packages) %}
++ {% else %}
+ {% set _ = packages.extend(neutron_ovs_distro_packages) %}
+ {% endif %}
++ {% endif %}
+ {% if neutron_services['neutron-linuxbridge-agent']['group'] in group_names and neutron_services['neutron-linuxbridge-agent'].service_en | bool %}
+ {% set _ = packages.extend(neutron_lxb_distro_packages) %}
+ {% endif %}
+@@ -50,6 +54,8 @@ calico_felix_bin: /usr/local/bin/calico-felix
+ ### Python code details
+ ###
+
++neutron_ovs_nsh_distro_packages: []
++
+ neutron_requires_pip_packages:
+ - virtualenv
+ - virtualenv-tools
+diff --git a/vars/ubuntu-16.04.yml b/vars/ubuntu-16.04.yml
+index eb52ebf..a2c6275 100644
+--- a/vars/ubuntu-16.04.yml
++++ b/vars/ubuntu-16.04.yml
+@@ -25,6 +25,12 @@ neutron_vpnaas_service_provider: VPN:strongswan:neutron_vpnaas.services.vpn.serv
+ ## APT Cache options
+ cache_timeout: 600
+
++neutron_ovs_nsh_required_packages:
++ - openvswitch-datapath-dkms
++ - openvswitch-common
++ - openvswitch-switch
++ - python-openvswitch
++
+ neutron_distro_packages:
+ - conntrack
+ - dnsmasq-base
diff --git a/plugins/odl_sfc/roles/sfc-pre-2/tasks/setup_sfc.yml b/plugins/odl_sfc/roles/sfc-pre-2/tasks/setup_sfc.yml
index a80a81ef..039d5460 100644
--- a/plugins/odl_sfc/roles/sfc-pre-2/tasks/setup_sfc.yml
+++ b/plugins/odl_sfc/roles/sfc-pre-2/tasks/setup_sfc.yml
@@ -7,28 +7,14 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
-- name: add ovs package in neutron
- lineinfile:
- dest: /etc/ansible/roles/os_neutron/vars/ubuntu-16.04.yml
- insertbefore: 'openvswitch-common'
- line: ' - openvswitch-datapath-dkms'
-- name: add ovs package in neutron
- lineinfile:
- dest: /etc/ansible/roles/os_neutron/vars/ubuntu-16.04.yml
- insertafter: 'openvswitch-switch'
- line: ' - python-openvswitch'
+- name: copy patch file
+ copy:
+ src: odl_sfc.patch
+ dest: /opt/odl_sfc.patch
-- name: modify ovs installation in neutron
- blockinfile:
- dest: /etc/ansible/roles/os_neutron/tasks/neutron_install.yml
- insertafter: '^# limitations'
- block: |
- - name: add ovs-nsh repo
- apt_repository:
- repo: "ppa:mardim/mardim-ppa"
- update_cache: True
- state: present
- when:
- - inventory_hostname in groups['neutron_openvswitch_agent']
- - inventory_hostname not in groups['nova_compute']
+- name: apply odl_sfc patch to os_neutron
+ shell: |
+ cd /etc/ansible/roles/os_neutron;
+ patch -p1 < /opt/odl_sfc.patch;
+ cd -