Allow Neutron to be run in DVR mode
Introduces a new property "enable_neutron_dvr", along with the appropriate service and template changes to allow DVR. Closes-Bug: #1623463 DocImpact: dvr changes network data paths and adds requirements for NICs Co-Authored-By: Vladislav Belogrudov <vladislav.belogrudov@oracle.com> Change-Id: I87a26e9258228ae2ccb76be1e5f0bb44fac128df
This commit is contained in:
parent
afe4209bb2
commit
95c916aa5e
@ -254,6 +254,7 @@ enable_mistral: "no"
|
||||
enable_mongodb: "no"
|
||||
enable_multipathd: "no"
|
||||
enable_murano: "no"
|
||||
enable_neutron_dvr: "no"
|
||||
enable_neutron_lbaas: "no"
|
||||
enable_neutron_qos: "no"
|
||||
enable_neutron_agent_ha: "no"
|
||||
|
@ -12,8 +12,10 @@
|
||||
- { name: neutron_server, group: neutron-server }
|
||||
- { name: neutron_dhcp_agent, group: neutron-dhcp-agent }
|
||||
- { name: neutron_l3_agent, group: neutron-l3-agent }
|
||||
- { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }
|
||||
- { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" }
|
||||
- { name: neutron_metadata_agent, group: neutron-metadata-agent }
|
||||
- { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }
|
||||
|
||||
- name: Ensuring the neutron_openvswitch_agent container is up
|
||||
kolla_docker:
|
||||
@ -69,8 +71,10 @@
|
||||
- { name: neutron_server, group: neutron-server }
|
||||
- { name: neutron_dhcp_agent, group: neutron-dhcp-agent }
|
||||
- { name: neutron_l3_agent, group: neutron-l3-agent }
|
||||
- { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }
|
||||
- { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" }
|
||||
- { name: neutron_metadata_agent, group: neutron-metadata-agent }
|
||||
- { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }
|
||||
|
||||
- name: Check the configs in the neutron_openvswitch_agent container
|
||||
command: docker exec neutron_openvswitch_agent /usr/local/bin/kolla_set_configs --check
|
||||
@ -125,8 +129,10 @@
|
||||
- { name: neutron_server, group: neutron-server }
|
||||
- { name: neutron_dhcp_agent, group: neutron-dhcp-agent }
|
||||
- { name: neutron_l3_agent, group: neutron-l3-agent }
|
||||
- { name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }
|
||||
- { name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" }
|
||||
- { name: neutron_metadata_agent, group: neutron-metadata-agent }
|
||||
- { name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }
|
||||
|
||||
- name: Container config strategy for the neutron_openvswitch_agent container
|
||||
kolla_docker:
|
||||
@ -180,8 +186,10 @@
|
||||
- [{ name: neutron_server, group: neutron-server },
|
||||
{ name: neutron_dhcp_agent, group: neutron-dhcp-agent },
|
||||
{ name: neutron_l3_agent, group: neutron-l3-agent },
|
||||
{ name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" },
|
||||
{ name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" },
|
||||
{ name: neutron_metadata_agent, group: neutron-metadata-agent }]
|
||||
{ name: neutron_metadata_agent, group: neutron-metadata-agent },
|
||||
{ name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }]
|
||||
- "{{ neutron_container_envs.results }}"
|
||||
- "{{ neutron_check_results.results }}"
|
||||
|
||||
@ -246,8 +254,10 @@
|
||||
- [{ name: neutron_server, group: neutron-server },
|
||||
{ name: neutron_dhcp_agent, group: neutron-dhcp-agent },
|
||||
{ name: neutron_l3_agent, group: neutron-l3-agent },
|
||||
{ name: neutron_l3_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" },
|
||||
{ name: neutron_lbaas_agent, group: neutron-lbaas-agent, enabled: "{{ enable_neutron_lbaas | bool }}" },
|
||||
{ name: neutron_metadata_agent, group: neutron-metadata-agent }]
|
||||
{ name: neutron_metadata_agent, group: neutron-metadata-agent },
|
||||
{ name: neutron_metadata_agent, group: compute, enabled: "{{ enable_neutron_dvr | bool }}" }]
|
||||
- "{{ neutron_container_envs.results }}"
|
||||
- "{{ neutron_check_results.results }}"
|
||||
|
||||
|
@ -185,7 +185,8 @@
|
||||
- "neutron_metadata_socket:/var/lib/neutron/kolla/"
|
||||
- "kolla_logs:/var/log/kolla/"
|
||||
when:
|
||||
- inventory_hostname in groups['neutron-l3-agent']
|
||||
- (inventory_hostname in groups['neutron-l3-agent']
|
||||
or (inventory_hostname in groups['compute'] and enable_neutron_dvr | bool))
|
||||
|
||||
- name: Starting neutron-lbaas-agent container
|
||||
kolla_docker:
|
||||
@ -219,4 +220,5 @@
|
||||
- "neutron_metadata_socket:/var/lib/neutron/kolla/"
|
||||
- "kolla_logs:/var/log/kolla/"
|
||||
when:
|
||||
- inventory_hostname in groups['neutron-metadata-agent']
|
||||
- (inventory_hostname in groups['neutron-metadata-agent']
|
||||
or (inventory_hostname in groups['compute'] and enable_neutron_dvr | bool))
|
||||
|
@ -1,4 +1,12 @@
|
||||
# l3_agent.ini
|
||||
[DEFAULT]
|
||||
{% if enable_neutron_dvr | bool %}
|
||||
{% if inventory_hostname in groups['network'] %}
|
||||
agent_mode = dvr_snat
|
||||
{% elif inventory_hostname in groups['compute'] %}
|
||||
agent_mode = dvr
|
||||
{% endif %}
|
||||
{% else %}
|
||||
agent_mode = legacy
|
||||
{% endif %}
|
||||
external_network_bridge =
|
||||
|
@ -50,6 +50,10 @@ tunnel_types = vxlan
|
||||
l2_population = true
|
||||
arp_responder = true
|
||||
|
||||
{% if enable_neutron_dvr | bool %}
|
||||
enable_distributed_routing = True
|
||||
{% endif %}
|
||||
|
||||
[ovs]
|
||||
bridge_mappings = physnet1:{{ neutron_bridge_name }}
|
||||
ovsdb_connection = tcp:{{ api_interface_address }}:6640
|
||||
|
@ -46,13 +46,15 @@ min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
||||
|
||||
transport_url = rabbit://{% for host in groups['rabbitmq'] %}{{ rabbitmq_user }}:{{ rabbitmq_password }}@{% if orchestration_engine == 'KUBERNETES' %}rabbitmq{% else %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}{% endif %}:{{ rabbitmq_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
{% if enable_neutron_dvr | bool %}
|
||||
router_distributed = True
|
||||
{% endif %}
|
||||
|
||||
{% if enable_neutron_lbaas | bool %}
|
||||
[service_providers]
|
||||
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
|
||||
{% endif %}
|
||||
|
||||
transport_url = rabbit://{% for host in groups['rabbitmq'] %}{{ rabbitmq_user }}:{{ rabbitmq_password }}@{% if orchestration_engine == 'KUBERNETES' %}rabbitmq{% else %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}{% endif %}:{{ rabbitmq_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[nova]
|
||||
auth_url = {{ keystone_admin_url }}
|
||||
auth_type = password
|
||||
|
@ -131,6 +131,7 @@ kolla_internal_vip_address: "10.10.10.254"
|
||||
#enable_mongodb: "no"
|
||||
#enable_murano: "no"
|
||||
#enable_multipathd: "no"
|
||||
#enable_neutron_dvr: "no"
|
||||
#enable_neutron_lbaas: "no"
|
||||
#enable_neutron_qos: "no"
|
||||
#enable_neutron_agent_ha: "no"
|
||||
|
4
releasenotes/notes/add-neutron-dvr-f1b3541e22c0fbc3.yaml
Normal file
4
releasenotes/notes/add-neutron-dvr-f1b3541e22c0fbc3.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- Introduce a new property "enable_neutron_dvr".
|
||||
Set to "yes" to deploy Neutron with DVR.
|
Loading…
Reference in New Issue
Block a user