Merge "Provide support for SFC deployments"
This commit is contained in:
commit
e8bdb9ae40
@ -52,6 +52,8 @@ dragonflow_git_repo: https://git.openstack.org/openstack/dragonflow
|
|||||||
dragonflow_git_install_branch: master
|
dragonflow_git_install_branch: master
|
||||||
networking_odl_git_repo: https://git.openstack.org/openstack/networking-odl
|
networking_odl_git_repo: https://git.openstack.org/openstack/networking-odl
|
||||||
networking_odl_git_install_branch: master
|
networking_odl_git_install_branch: master
|
||||||
|
networking_sfc_git_repo: https://git.openstack.org/openstack/networking-sfc
|
||||||
|
networking_sfc_git_install_branch: master
|
||||||
|
|
||||||
# Developer mode
|
# Developer mode
|
||||||
neutron_developer_mode: false
|
neutron_developer_mode: false
|
||||||
|
@ -103,6 +103,24 @@ Neutron network and set a gateway. Note that the br-vlan interface of the nodes
|
|||||||
could be a perfect interface for that gateway, although it depends on your
|
could be a perfect interface for that gateway, although it depends on your
|
||||||
network topology.
|
network topology.
|
||||||
|
|
||||||
|
SFC configuration
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
It is possible to have an openstack-ansible deployment with SFC capabilities.
|
||||||
|
The following config needs to be added to the above described
|
||||||
|
``/etc/openstack_deploy/user_variables.yml`` :
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
neutron_plugin_base:
|
||||||
|
- router
|
||||||
|
- metering
|
||||||
|
- networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin
|
||||||
|
- networking_sfc.services.sfc.plugin.SfcPlugin
|
||||||
|
|
||||||
|
When using this configuration, networking-sfc will be deployed and SFC features
|
||||||
|
will be activated in ODL. A SFC topology could be then set up through the
|
||||||
|
networking-sfc API or through an orchestrator like tacker (if deployed).
|
||||||
|
|
||||||
Security information
|
Security information
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -13,9 +13,18 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: Set the packages to install
|
||||||
|
set_fact:
|
||||||
|
neutron_optional_combined_pip_packages: |-
|
||||||
|
{% set packages = neutron_optional_opendaylight_pip_packages %}
|
||||||
|
{% if 'networking_sfc.services.sfc.plugin.SfcPlugin' in neutron_plugin_base %}
|
||||||
|
{% set _ = packages.extend(neutron_optional_opendaylight_sfc_pip_packages) %}
|
||||||
|
{% endif %}
|
||||||
|
{{ packages }}
|
||||||
|
|
||||||
- name: Install OpenDaylight pip packages
|
- name: Install OpenDaylight pip packages
|
||||||
pip:
|
pip:
|
||||||
name: "{{ neutron_optional_opendaylight_pip_packages }}"
|
name: "{{ neutron_optional_combined_pip_packages }}"
|
||||||
state: "{{ neutron_pip_package_state }}"
|
state: "{{ neutron_pip_package_state }}"
|
||||||
virtualenv: "{{ neutron_bin | dirname }}"
|
virtualenv: "{{ neutron_bin | dirname }}"
|
||||||
virtualenv_site_packages: "no"
|
virtualenv_site_packages: "no"
|
||||||
|
@ -271,3 +271,12 @@ transport_url = rabbit://{% for host in neutron_rabbitmq_telemetry_servers.split
|
|||||||
# Concurrency (locking mechanisms)
|
# Concurrency (locking mechanisms)
|
||||||
[oslo_concurrency]
|
[oslo_concurrency]
|
||||||
lock_path = {{ neutron_lock_path }}
|
lock_path = {{ neutron_lock_path }}
|
||||||
|
|
||||||
|
{% if neutron_services['neutron-server']['group'] in group_names and 'networking_sfc.services.sfc.plugin.SfcPlugin' in neutron_plugin_base %}
|
||||||
|
# ODL-SFC
|
||||||
|
[sfc]
|
||||||
|
drivers = odl
|
||||||
|
|
||||||
|
[flowclassifier]
|
||||||
|
drivers = odl
|
||||||
|
{% endif %}
|
||||||
|
45
tests/neutron-overrides-odl-sfc.yml
Normal file
45
tests/neutron-overrides-odl-sfc.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
# 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 }}:8180/controller/nb/v2/neutron"
|
||||||
|
username: admin
|
||||||
|
password: admin
|
||||||
|
|
||||||
|
neutron_plugin_base:
|
||||||
|
- router
|
||||||
|
- metering
|
||||||
|
- networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin
|
||||||
|
- networking_sfc.services.sfc.plugin.SfcPlugin
|
||||||
|
|
||||||
|
tempest_run: yes
|
||||||
|
|
||||||
|
tempest_plugins:
|
||||||
|
- name: neutron
|
||||||
|
repo: https://git.openstack.org/openstack/neutron
|
||||||
|
branch: master
|
||||||
|
- name: neutron-plugins
|
||||||
|
repo: https://git.openstack.org/openstack/neutron-tempest-plugin
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
tempest_test_whitelist:
|
||||||
|
- "neutron_tempest_plugin.api.test_networks*"
|
12
tox.ini
12
tox.ini
@ -171,6 +171,18 @@ commands =
|
|||||||
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
||||||
|
|
||||||
|
|
||||||
|
[testenv:odl-sfc]
|
||||||
|
deps =
|
||||||
|
{[testenv:ansible]deps}
|
||||||
|
setenv =
|
||||||
|
{[testenv]setenv}
|
||||||
|
ANSIBLE_INVENTORY={toxinidir}/tests/opendaylight_inventory
|
||||||
|
ANSIBLE_OVERRIDES={toxinidir}/tests/neutron-overrides-odl-sfc.yml
|
||||||
|
commands =
|
||||||
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||||
|
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
||||||
|
|
||||||
|
|
||||||
[testenv:ssl]
|
[testenv:ssl]
|
||||||
deps =
|
deps =
|
||||||
{[testenv:ansible]deps}
|
{[testenv:ansible]deps}
|
||||||
|
@ -100,6 +100,9 @@ neutron_optional_dragonflow_pip_packages:
|
|||||||
neutron_optional_opendaylight_pip_packages:
|
neutron_optional_opendaylight_pip_packages:
|
||||||
- networking-odl
|
- networking-odl
|
||||||
|
|
||||||
|
neutron_optional_opendaylight_sfc_pip_packages:
|
||||||
|
- networking-sfc
|
||||||
|
|
||||||
neutron_proprietary_nuage_pip_packages:
|
neutron_proprietary_nuage_pip_packages:
|
||||||
- nuage-openstack-neutron
|
- nuage-openstack-neutron
|
||||||
- nuage-openstack-neutronclient
|
- nuage-openstack-neutronclient
|
||||||
@ -114,6 +117,7 @@ neutron_developer_constraints:
|
|||||||
- "git+{{ networking_calico_git_repo }}@{{ networking_calico_git_install_branch }}#egg=networking-calico"
|
- "git+{{ networking_calico_git_repo }}@{{ networking_calico_git_install_branch }}#egg=networking-calico"
|
||||||
- "git+{{ dragonflow_git_repo }}@{{ dragonflow_git_install_branch }}#egg=dragonflow"
|
- "git+{{ dragonflow_git_repo }}@{{ dragonflow_git_install_branch }}#egg=dragonflow"
|
||||||
- "git+{{ networking_odl_git_repo }}@{{ networking_odl_git_install_branch }}#egg=networking-odl"
|
- "git+{{ networking_odl_git_repo }}@{{ networking_odl_git_install_branch }}#egg=networking-odl"
|
||||||
|
- "git+{{ networking_sfc_git_repo }}@{{ networking_sfc_git_install_branch }}#egg=networking-sfc"
|
||||||
|
|
||||||
neutron_bin: "/openstack/venvs/neutron-{{ neutron_venv_tag }}/bin"
|
neutron_bin: "/openstack/venvs/neutron-{{ neutron_venv_tag }}/bin"
|
||||||
|
|
||||||
@ -242,7 +246,13 @@ _neutron_non_tunnel_types:
|
|||||||
neutron_tunnel_types: "{{ neutron_ml2_drivers_type.split(',') | difference(_neutron_non_tunnel_types) | join(',') }}"
|
neutron_tunnel_types: "{{ neutron_ml2_drivers_type.split(',') | difference(_neutron_non_tunnel_types) | join(',') }}"
|
||||||
|
|
||||||
# OpenDaylight
|
# OpenDaylight
|
||||||
opendaylight_extra_features: ['odl-netvirt-openstack']
|
opendaylight_extra_features: |-
|
||||||
|
{%- set features = ['odl-netvirt-openstack'] -%}
|
||||||
|
{%- if 'networking_sfc.services.sfc.plugin.SfcPlugin' in neutron_plugin_base -%}
|
||||||
|
{%- set features = ['odl-netvirt-sfc'] -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{{ features }}
|
||||||
|
|
||||||
opendaylight_install_method: "{{ (ansible_os_family=='Debian') | ternary('deb_repo', 'rpm_repo') }}"
|
opendaylight_install_method: "{{ (ansible_os_family=='Debian') | ternary('deb_repo', 'rpm_repo') }}"
|
||||||
|
|
||||||
ovs_manager_list: |-
|
ovs_manager_list: |-
|
||||||
|
@ -54,3 +54,11 @@
|
|||||||
voting: false
|
voting: false
|
||||||
vars:
|
vars:
|
||||||
tox_env: ssl
|
tox_env: ssl
|
||||||
|
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: openstack-ansible-odl-sfc-ubuntu-xenial
|
||||||
|
parent: openstack-ansible-functional-ubuntu-xenial
|
||||||
|
voting: false
|
||||||
|
vars:
|
||||||
|
tox_env: odl-sfc
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
- openstack-ansible-opendaylight-ubuntu-xenial-nv
|
- openstack-ansible-opendaylight-ubuntu-xenial-nv
|
||||||
- openstack-ansible-ovs-nsh-ubuntu-xenial
|
- openstack-ansible-ovs-nsh-ubuntu-xenial
|
||||||
- openstack-ansible-neutron-ssl-nv
|
- openstack-ansible-neutron-ssl-nv
|
||||||
|
- openstack-ansible-odl-sfc-ubuntu-xenial
|
||||||
experimental:
|
experimental:
|
||||||
jobs:
|
jobs:
|
||||||
- openstack-ansible-integrated-deploy-aio
|
- openstack-ansible-integrated-deploy-aio
|
||||||
|
Loading…
Reference in New Issue
Block a user