Add the BGP dynamic routing neutron plugin
Depends-On: I48c1a920c94134663fd162b04db48a88eaa6c80b Change-Id: Ib66f2c59ded9123655e2bf9720148b6d1dcd238f
This commit is contained in:
parent
a0b5c6bfe5
commit
f9975ac7c4
@ -32,6 +32,9 @@ neutron_lbaas_git_install_branch: master
|
|||||||
neutron_vpnaas_git_repo: https://git.openstack.org/openstack/neutron-vpnaas
|
neutron_vpnaas_git_repo: https://git.openstack.org/openstack/neutron-vpnaas
|
||||||
neutron_vpnaas_git_install_branch: master
|
neutron_vpnaas_git_install_branch: master
|
||||||
|
|
||||||
|
neutron_dynamic_routing_git_repo: https://git.openstack.org/openstack/neutron-dynamic-routing
|
||||||
|
neutron_dynamic_routing_git_install_branch: master
|
||||||
|
|
||||||
neutron_requirements_git_repo: https://git.openstack.org/openstack/requirements
|
neutron_requirements_git_repo: https://git.openstack.org/openstack/requirements
|
||||||
neutron_requirements_git_install_branch: master
|
neutron_requirements_git_install_branch: master
|
||||||
|
|
||||||
@ -47,6 +50,7 @@ neutron_developer_constraints:
|
|||||||
- "git+{{ neutron_fwaas_git_repo }}@{{ neutron_fwaas_git_install_branch }}#egg=neutron-fwaas"
|
- "git+{{ neutron_fwaas_git_repo }}@{{ neutron_fwaas_git_install_branch }}#egg=neutron-fwaas"
|
||||||
- "git+{{ neutron_lbaas_git_repo }}@{{ neutron_lbaas_git_install_branch }}#egg=neutron-lbaas"
|
- "git+{{ neutron_lbaas_git_repo }}@{{ neutron_lbaas_git_install_branch }}#egg=neutron-lbaas"
|
||||||
- "git+{{ neutron_vpnaas_git_repo }}@{{ neutron_vpnaas_git_install_branch }}#egg=neutron-vpnaas"
|
- "git+{{ neutron_vpnaas_git_repo }}@{{ neutron_vpnaas_git_install_branch }}#egg=neutron-vpnaas"
|
||||||
|
- "git+{{ neutron_dynamic_routing_git_repo }}@{{ neutron_dynamic_routing_git_install_branch }}#egg=neutron-dynamic-routing"
|
||||||
- "git+{{ calico_git_repo }}@{{ calico_git_install_branch }}#egg=calico"
|
- "git+{{ calico_git_repo }}@{{ calico_git_install_branch }}#egg=calico"
|
||||||
- "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"
|
||||||
|
|
||||||
@ -109,6 +113,7 @@ neutron_plugin_core: "{{ neutron_plugins[neutron_plugin_type].plugin_core }}"
|
|||||||
# - firewall
|
# - firewall
|
||||||
# - lbaas
|
# - lbaas
|
||||||
# - neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
|
# - neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
|
||||||
|
# - neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
|
||||||
# - vpnaas
|
# - vpnaas
|
||||||
# - metering
|
# - metering
|
||||||
# - qos
|
# - qos
|
||||||
@ -236,6 +241,15 @@ neutron_services:
|
|||||||
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/lbaas_agent.ini --log-file=/var/log/neutron/neutron-lbaasv2-agent.log"
|
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/lbaas_agent.ini --log-file=/var/log/neutron/neutron-lbaasv2-agent.log"
|
||||||
config_overrides: "{{ neutron_lbaas_agent_ini_overrides }}"
|
config_overrides: "{{ neutron_lbaas_agent_ini_overrides }}"
|
||||||
config_type: "ini"
|
config_type: "ini"
|
||||||
|
neutron-bgp-dragent:
|
||||||
|
group: neutron_bgp_dragent
|
||||||
|
service_name: neutron-bgp-dragent
|
||||||
|
service_en: "{{ neutron_bgp | bool }}"
|
||||||
|
service_conf_path: "{{ neutron_conf_dir }}"
|
||||||
|
service_conf: bgp_dragent.ini
|
||||||
|
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/bgp_dragent.ini --log-file=/var/log/neutron/neutron-bgp-dragent.log"
|
||||||
|
config_overrides: "{{ neutron_bgp_dragent_ini_overrides }}"
|
||||||
|
config_type: "ini"
|
||||||
neutron-vpnaas-agent:
|
neutron-vpnaas-agent:
|
||||||
group: neutron_l3_agent
|
group: neutron_l3_agent
|
||||||
service_name: neutron-vpn-agent
|
service_name: neutron-vpn-agent
|
||||||
@ -311,6 +325,16 @@ neutron_fwaas: "{% if 'firewall' in neutron_plugin_base %}True{% else %}False{%
|
|||||||
# Please add the 'vpnaas' to the neutron_plugin_base list
|
# Please add the 'vpnaas' to the neutron_plugin_base list
|
||||||
neutron_vpnaas: "{% if 'vpnaas' in neutron_plugin_base %}True{% else %}False{% endif %}"
|
neutron_vpnaas: "{% if 'vpnaas' in neutron_plugin_base %}True{% else %}False{% endif %}"
|
||||||
|
|
||||||
|
## Neutron Dynamic Routing Agent's BGP plugin
|
||||||
|
# To enable the BGP plugin, add the following item to the neutron_plugin_base list:
|
||||||
|
# neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
|
||||||
|
#
|
||||||
|
# NOTE(matias): BgpPlugin doesn't have entry points and the full classpath
|
||||||
|
# is required.
|
||||||
|
neutron_bgp: "{% if 'neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin' in neutron_plugin_base %}True{% else %}False{% endif %}"
|
||||||
|
neutron_bgp_speaker_driver: neutron_dynamic_routing.services.bgp.agent.driver.ryu.driver.RyuBgpDriver
|
||||||
|
neutron_bgp_router_id: "{{ neutron_local_ip }}"
|
||||||
|
|
||||||
## Drivers
|
## Drivers
|
||||||
neutron_driver_network_scheduler: neutron.scheduler.dhcp_agent_scheduler.WeightScheduler
|
neutron_driver_network_scheduler: neutron.scheduler.dhcp_agent_scheduler.WeightScheduler
|
||||||
neutron_driver_router_scheduler: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
|
neutron_driver_router_scheduler: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
|
||||||
@ -476,6 +500,7 @@ neutron_pip_packages:
|
|||||||
- neutron_fwaas
|
- neutron_fwaas
|
||||||
- neutron_lbaas
|
- neutron_lbaas
|
||||||
- neutron_vpnaas
|
- neutron_vpnaas
|
||||||
|
- neutron_dynamic_routing
|
||||||
- pycrypto
|
- pycrypto
|
||||||
- python-glanceclient
|
- python-glanceclient
|
||||||
- python-keystoneclient
|
- python-keystoneclient
|
||||||
@ -518,5 +543,6 @@ neutron_linuxbridge_agent_ini_overrides: {}
|
|||||||
neutron_lbaas_agent_ini_overrides: {}
|
neutron_lbaas_agent_ini_overrides: {}
|
||||||
neutron_vpnaas_agent_ini_overrides: {}
|
neutron_vpnaas_agent_ini_overrides: {}
|
||||||
neutron_openvswitch_agent_ini_overrides: {}
|
neutron_openvswitch_agent_ini_overrides: {}
|
||||||
|
neutron_bgp_dragent_ini_overrides: {}
|
||||||
neutron_calico_dhcp_agent_ini_overrides: {}
|
neutron_calico_dhcp_agent_ini_overrides: {}
|
||||||
neutron_calico_felix_ini_overrides: {}
|
neutron_calico_felix_ini_overrides: {}
|
||||||
|
@ -14,6 +14,10 @@ Load Balancer as a Service (LBaaS)
|
|||||||
VPN as a Service (VPNaaS)
|
VPN as a Service (VPNaaS)
|
||||||
Provides a method for extending a private network across a public network.
|
Provides a method for extending a private network across a public network.
|
||||||
|
|
||||||
|
BGP Dynamic Routing service
|
||||||
|
Provides a means for advertising self-service (private) network prefixes
|
||||||
|
to physical network devices that support BGP.
|
||||||
|
|
||||||
Firewall service (optional)
|
Firewall service (optional)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@ -188,3 +192,39 @@ The VPNaaS default configuration options are changed through the
|
|||||||
dict.
|
dict.
|
||||||
|
|
||||||
.. _conf override: http://docs.openstack.org/developer/openstack-ansible/install-guide/configure-openstack.html
|
.. _conf override: http://docs.openstack.org/developer/openstack-ansible/install-guide/configure-openstack.html
|
||||||
|
|
||||||
|
BGP Dynamic Routing service (optional)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The `BGP Dynamic Routing`_ plugin for neutron provides BGP speakers which can
|
||||||
|
advertise OpenStack project network prefixes to external network devices, such
|
||||||
|
as routers. This is especially useful when coupled with the `subnet pools`_
|
||||||
|
feature, which enables neutron to be configured in such a way as to allow users
|
||||||
|
to create self-service `segmented IPv6 subnets`_.
|
||||||
|
|
||||||
|
.. _BGP Dynamic Routing: http://docs.openstack.org/networking-guide/config-bgp-dynamic-routing.html
|
||||||
|
.. _subnet pools: http://docs.openstack.org/networking-guide/config-subnet-pools.html
|
||||||
|
.. _segmented IPv6 subnets: https://cloudbau.github.io/openstack/neutron/networking/2016/05/17/neutron-ipv6.html
|
||||||
|
|
||||||
|
The following procedure describes how to modify the
|
||||||
|
``/etc/openstack_deploy/user_variables.yml`` file to enable the BGP Dynamic
|
||||||
|
Routing plugin.
|
||||||
|
|
||||||
|
#. Add the BGP plugin to the ``neutron_plugin_base`` variable
|
||||||
|
in ``/etc/openstack_deploy/user_variables.yml``:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
neutron_plugin_base:
|
||||||
|
- ...
|
||||||
|
- neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
|
||||||
|
|
||||||
|
Ensure that ``neutron_plugin_base`` includes all of the plugins that you
|
||||||
|
want to deploy with neutron in addition to the BGP plugin.
|
||||||
|
|
||||||
|
#. Execute the neutron install playbook in order to update the configuration:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# cd /opt/openstack-ansible/playbooks
|
||||||
|
# openstack-ansible os-neutron-install.yml
|
||||||
|
@ -112,6 +112,19 @@ MIGRATIONS = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
'installed': False
|
'installed': False
|
||||||
|
},
|
||||||
|
'neutron-dynamic-routing': {
|
||||||
|
'branches': {
|
||||||
|
'expand': {
|
||||||
|
'revision': None,
|
||||||
|
'head': None
|
||||||
|
},
|
||||||
|
'contract': {
|
||||||
|
'revision': None,
|
||||||
|
'head': None
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'installed': False
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'run_contract': True,
|
'run_contract': True,
|
||||||
@ -228,7 +241,7 @@ def main():
|
|||||||
for line in current.splitlines():
|
for line in current.splitlines():
|
||||||
head = False
|
head = False
|
||||||
project_match = re.search(
|
project_match = re.search(
|
||||||
"^\s*Running current for (neutron(-[a-z]+)?) ...$",
|
"^\s*Running current for (neutron(-[a-z-]+)?) ...$",
|
||||||
line
|
line
|
||||||
)
|
)
|
||||||
migration_match = re.search("^([0-9a-z]{4,12})(\s\(head\))?$", line)
|
migration_match = re.search("^([0-9a-z]{4,12})(\s\(head\))?$", line)
|
||||||
|
9
releasenotes/notes/neutron-bgp-552e6e1f6d37f38d.yaml
Normal file
9
releasenotes/notes/neutron-bgp-552e6e1f6d37f38d.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- "Neutron BGP dynamic routing plugin can now optionally be deployed and
|
||||||
|
configured. Please see `OpenStack Networking Guide: BGP dynamic routing
|
||||||
|
<http://docs.openstack.org/networking-guide/config-bgp-dynamic-routing.html>`_
|
||||||
|
for details about what the service is and what it provides."
|
||||||
|
upgrade:
|
||||||
|
- Database migration tasks have been added for the dynamic routing neutron
|
||||||
|
plugin.
|
@ -109,6 +109,18 @@
|
|||||||
- neutron_services['neutron-lbaasv2-agent']['group'] in group_names
|
- neutron_services['neutron-lbaasv2-agent']['group'] in group_names
|
||||||
- neutron_services['neutron-lbaasv2-agent'].service_en | bool
|
- neutron_services['neutron-lbaasv2-agent'].service_en | bool
|
||||||
|
|
||||||
|
- include: neutron_init_common.yml
|
||||||
|
vars:
|
||||||
|
program_name: "{{ neutron_services['neutron-bgp-dragent'].service_name }}"
|
||||||
|
program_config_options: "{{ neutron_services['neutron-bgp-dragent'].config_options }}"
|
||||||
|
service_name: "{{ neutron_service_name }}"
|
||||||
|
system_user: "{{ neutron_system_user_name }}"
|
||||||
|
system_group: "{{ neutron_system_group_name }}"
|
||||||
|
service_home: "{{ neutron_system_home_folder }}"
|
||||||
|
when:
|
||||||
|
- neutron_services['neutron-bgp-dragent']['group'] in group_names
|
||||||
|
- neutron_services['neutron-bgp-dragent'].service_en | bool
|
||||||
|
|
||||||
- include: neutron_init_common.yml
|
- include: neutron_init_common.yml
|
||||||
vars:
|
vars:
|
||||||
program_name: "{{ neutron_services['neutron-vpnaas-agent'].service_name }}"
|
program_name: "{{ neutron_services['neutron-vpnaas-agent'].service_name }}"
|
||||||
|
9
templates/bgp_dragent.ini.j2
Normal file
9
templates/bgp_dragent.ini.j2
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
[BGP]
|
||||||
|
# BGP speaker driver class to be instantiated. (string value)
|
||||||
|
bgp_speaker_driver = {{ neutron_bgp_speaker_driver }}
|
||||||
|
|
||||||
|
# 32-bit BGP identifier, typically an IPv4 address owned by the system running
|
||||||
|
# the BGP DrAgent. (string value)
|
||||||
|
bgp_router_id = {{ neutron_bgp_router_id }}
|
Loading…
x
Reference in New Issue
Block a user