Add OvS-NSH support
To be able to perform SFC through NSH protocol special Openvswitch packages are needed. Blueprint: https://review.openstack.org/#/c/476121/ Change-Id: Id0e22067ac5d2a33aa2150dd65ac3fb9ae7c7542 Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com>
This commit is contained in:
parent
64da9c6cc6
commit
db404dc4c8
@ -394,3 +394,9 @@ dragonflow_ex_peer_patch_port: patch-int
|
|||||||
dragonflow_int_peer_patch_port: patch-ex
|
dragonflow_int_peer_patch_port: patch-ex
|
||||||
dragonflow_external_network_bridge: br-ex
|
dragonflow_external_network_bridge: br-ex
|
||||||
dragonflow_publisher_bind_address: "*"
|
dragonflow_publisher_bind_address: "*"
|
||||||
|
|
||||||
|
# Install Openvswitch without NSH support
|
||||||
|
ovs_nsh_support: False
|
||||||
|
|
||||||
|
# Set higher priority to mardim PPA when ovs_nsh_support is True
|
||||||
|
ovs_nsh_apt_pinned_packages: [{ package: "*", release: "LP-PPA-mardim-mardim-ppa"}]
|
||||||
|
@ -39,7 +39,10 @@ galaxy_info:
|
|||||||
- openstack
|
- openstack
|
||||||
dependencies:
|
dependencies:
|
||||||
- pip_install
|
- 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
|
- galera_client
|
||||||
- openstack_openrc
|
- openstack_openrc
|
||||||
- role: etcd
|
- role: etcd
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Open vSwitch dataplane with NSH support has been implemented.
|
||||||
|
This feature may be activated by setting ``ovs_nsh_support: True``
|
||||||
|
in ``/etc/openstack_deploy/user_variables.yml``.
|
36
tests/neutron-overrides-ovs-nsh.yml
Normal file
36
tests/neutron-overrides-ovs-nsh.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2017, Intracom-Telecom
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
### Use OvS with NSH support
|
||||||
|
ovs_nsh_support: True
|
||||||
|
|
||||||
|
### Use OpenDaylight SDN Controller
|
||||||
|
neutron_plugin_type: "ml2.opendaylight"
|
||||||
|
odl_ip: "{{ hostvars[groups['opendaylight'][0]]['ansible_default_ipv4']['address'] }}"
|
||||||
|
neutron_opendaylight_conf_ini_overrides:
|
||||||
|
ml2_odl:
|
||||||
|
url: "http://{{ odl_ip }}:8080/controller/nb/v2/neutron"
|
||||||
|
username: admin
|
||||||
|
password: admin
|
||||||
|
|
||||||
|
tempest_run: yes
|
||||||
|
|
||||||
|
tempest_plugins:
|
||||||
|
- name: neutron
|
||||||
|
repo: https://git.openstack.org/openstack/neutron
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
tempest_test_whitelist:
|
||||||
|
- neutron.tests.tempest.api.test_networks*
|
11
tox.ini
11
tox.ini
@ -159,6 +159,17 @@ commands =
|
|||||||
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||||
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
||||||
|
|
||||||
|
[testenv:ovs-nsh]
|
||||||
|
deps =
|
||||||
|
{[testenv:ansible]deps}
|
||||||
|
setenv =
|
||||||
|
{[testenv]setenv}
|
||||||
|
ANSIBLE_INVENTORY={toxinidir}/tests/opendaylight_inventory
|
||||||
|
ANSIBLE_OVERRIDES={toxinidir}/tests/neutron-overrides-ovs-nsh.yml
|
||||||
|
commands =
|
||||||
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||||
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
||||||
|
|
||||||
[testenv:linters]
|
[testenv:linters]
|
||||||
deps =
|
deps =
|
||||||
{[testenv:ansible]deps}
|
{[testenv:ansible]deps}
|
||||||
|
@ -28,8 +28,12 @@ neutron_package_list: |-
|
|||||||
or (neutron_services['dragonflow-controller-agent']['group'] in group_names and neutron_services['dragonflow-controller-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)
|
or (neutron_services['dragonflow-l3-agent']['group'] in group_names and neutron_services['dragonflow-l3-agent'].service_en | bool)
|
||||||
or ((neutron_services['neutron-server']['group'] not in group_names) and neutron_plugin_type == 'ml2.opendaylight') %}
|
or ((neutron_services['neutron-server']['group'] not in group_names) and neutron_plugin_type == 'ml2.opendaylight') %}
|
||||||
|
{% if (ovs_nsh_support and ansible_distribution == 'Ubuntu') %}
|
||||||
|
{% set _ = packages.extend(neutron_ovs_nsh_required_packages) %}
|
||||||
|
{% else %}
|
||||||
{% set _ = packages.extend(neutron_ovs_distro_packages) %}
|
{% set _ = packages.extend(neutron_ovs_distro_packages) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% if neutron_services['neutron-linuxbridge-agent']['group'] in group_names and neutron_services['neutron-linuxbridge-agent'].service_en | bool %}
|
{% 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) %}
|
{% set _ = packages.extend(neutron_lxb_distro_packages) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -44,6 +48,8 @@ neutron_package_list: |-
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{{ packages }}
|
{{ packages }}
|
||||||
|
|
||||||
|
neutron_ovs_nsh_distro_packages: []
|
||||||
|
|
||||||
# Set the Calico Felix agent executable destination path
|
# Set the Calico Felix agent executable destination path
|
||||||
calico_felix_bin: /usr/local/bin/calico-felix
|
calico_felix_bin: /usr/local/bin/calico-felix
|
||||||
|
|
||||||
|
@ -21,6 +21,11 @@ neutron_ovs_distro_packages:
|
|||||||
|
|
||||||
neutron_ovs_service_name: openvswitch-switch
|
neutron_ovs_service_name: openvswitch-switch
|
||||||
|
|
||||||
|
neutron_ovs_nsh_required_packages:
|
||||||
|
- openvswitch-common
|
||||||
|
- openvswitch-switch
|
||||||
|
- python-openvswitch
|
||||||
|
|
||||||
## APT Cache options
|
## APT Cache options
|
||||||
cache_timeout: 600
|
cache_timeout: 600
|
||||||
|
|
||||||
|
@ -40,3 +40,10 @@
|
|||||||
voting: false
|
voting: false
|
||||||
vars:
|
vars:
|
||||||
tox_env: opendaylight
|
tox_env: opendaylight
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: openstack-ansible-ovs-nsh-ubuntu-xenial
|
||||||
|
parent: openstack-ansible-functional-ubuntu-xenial
|
||||||
|
voting: false
|
||||||
|
vars:
|
||||||
|
tox_env: ovs-nsh
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
- openstack-ansible-calico-ubuntu-xenial-nv
|
- openstack-ansible-calico-ubuntu-xenial-nv
|
||||||
- openstack-ansible-dragonflow-ubuntu-xenial-nv
|
- openstack-ansible-dragonflow-ubuntu-xenial-nv
|
||||||
- openstack-ansible-opendaylight-ubuntu-xenial-nv
|
- openstack-ansible-opendaylight-ubuntu-xenial-nv
|
||||||
|
- openstack-ansible-ovs-nsh-ubuntu-xenial
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- openstack-ansible-linters
|
- openstack-ansible-linters
|
||||||
|
Loading…
Reference in New Issue
Block a user