Introduce variable to allow different DVR modes
This feature replaces splitting of compute hosts into inner and external with a new variable 'neutron_compute_dvr_mode' that controls whether computes will have full-blown DVR or internal only (tenant) networking. Change-Id: I6720ccfcfcec89f9996d4cb5ae60f31eb3113667 Implements: blueprint dvr-mode-property
This commit is contained in:
parent
6ebbf4fdf1
commit
1c1d6e20c1
@ -631,7 +631,9 @@ neutron_type_drivers: "flat,vlan,vxlan"
|
||||
# NOTE: for ironic this list should also contain 'flat'
|
||||
neutron_tenant_network_types: "vxlan"
|
||||
|
||||
computes_need_external_bridge: "{{ enable_neutron_dvr | bool or enable_neutron_provider_networks | bool or enable_opendaylight | bool and neutron_plugin_agent != 'vmware_dvs' }}"
|
||||
# valid values: ["dvr", "dvr_no_external"]
|
||||
neutron_compute_dvr_mode: "dvr"
|
||||
computes_need_external_bridge: "{{ enable_neutron_dvr | bool and (neutron_compute_dvr_mode == 'dvr' or inventory_hostname in groups['external-compute']) or enable_neutron_provider_networks | bool or enable_opendaylight | bool and neutron_plugin_agent != 'vmware_dvs' }}"
|
||||
|
||||
#######################
|
||||
# Nova options
|
||||
|
@ -7,11 +7,15 @@ localhost ansible_connection=local
|
||||
localhost ansible_connection=local
|
||||
|
||||
# inner-compute is the groups of compute nodes which do not have
|
||||
# external reachability
|
||||
# external reachability.
|
||||
# DEPRECATED, the group will be removed in S release of OpenStack,
|
||||
# use variable neutron_compute_dvr_mode instead.
|
||||
[inner-compute]
|
||||
|
||||
# external-compute is the groups of compute nodes which can reach
|
||||
# outside
|
||||
# outside.
|
||||
# DEPRECATED, the group will be removed in S release of OpenStack,
|
||||
# use variable neutron_compute_dvr_mode instead.
|
||||
[external-compute]
|
||||
localhost ansible_connection=local
|
||||
|
||||
|
@ -16,11 +16,15 @@ network01
|
||||
network02
|
||||
|
||||
# inner-compute is the groups of compute nodes which do not have
|
||||
# external reachability
|
||||
# external reachability.
|
||||
# DEPRECATED, the group will be removed in S release of OpenStack,
|
||||
# use variable neutron_compute_dvr_mode instead.
|
||||
[inner-compute]
|
||||
|
||||
# external-compute is the groups of compute nodes which can reach
|
||||
# outside
|
||||
# outside.
|
||||
# DEPRECATED, the group will be removed in S release of OpenStack,
|
||||
# use variable neutron_compute_dvr_mode instead.
|
||||
[external-compute]
|
||||
compute01
|
||||
|
||||
|
@ -47,3 +47,13 @@
|
||||
when: item not in type_drivers
|
||||
run_once: true
|
||||
with_items: "{{ tenant_network_types }}"
|
||||
|
||||
- name: Checking for deprecated inner- and external-compute groups
|
||||
local_action:
|
||||
module: debug
|
||||
msg: "WARNING: inner- and external-compute groups are DEPRECATED"
|
||||
changed_when: false
|
||||
run_once: True
|
||||
when:
|
||||
- (groups['inner-compute'] | default([]) | length > 0
|
||||
or groups['external-compute'] | default([]) | length > 0)
|
||||
|
@ -7,6 +7,8 @@ agent_mode = dvr_snat
|
||||
agent_mode = dvr
|
||||
{% elif inventory_hostname in groups['inner-compute'] %}
|
||||
agent_mode = dvr_no_external
|
||||
{% elif inventory_hostname in groups['compute'] %}
|
||||
agent_mode = {{ neutron_compute_dvr_mode }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
agent_mode = legacy
|
||||
|
23
releasenotes/notes/dvr-mode-property-13b3699f9a9c4359.yaml
Normal file
23
releasenotes/notes/dvr-mode-property-13b3699f9a9c4359.yaml
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
[`blueprint Replace inner-/external computes with a dvr mode variable <https://blueprints.launchpad.net/kolla-ansible/+spec/dvr_mode_property>`_]
|
||||
A new variable "neutron_compute_dvr_mode" is introduced. This variable
|
||||
controls whether a compute host has external connection and is
|
||||
allowed to do full-blown DVR or distributed routing is only used for
|
||||
tenant networking. Corresponding values are "dvr" and "dvr_no_external"
|
||||
The variable has to be set either globally or per group (per host)
|
||||
to get desired behavior.
|
||||
upgrade:
|
||||
- |
|
||||
All hosts from "[inner-compute]" and "[external-compute]" can be moved to
|
||||
"[compute]" to avoid problems in OpenStack S release, though the groups
|
||||
still will function well in this release.
|
||||
deprecations:
|
||||
- |
|
||||
Splitting of compute group into inner and external compute hosts is
|
||||
deprecated and will be removed in OpenStack S release.
|
||||
fixes:
|
||||
- |
|
||||
External bridge setup on compute hosts that depends on whether DVR mode
|
||||
is enabled is also accompanied by a check for the new variable.
|
@ -10,21 +10,11 @@
|
||||
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_become=true ansible_user={{ hostvars[host]['ansible_user'] }}
|
||||
{% endfor %}
|
||||
|
||||
# inner-compute is the groups of compute nodes which do not have
|
||||
# external reachability
|
||||
[inner-compute]
|
||||
|
||||
# external-compute is the groups of compute nodes which can reach
|
||||
# outside
|
||||
[external-compute]
|
||||
[compute]
|
||||
{% for host in hostvars %}
|
||||
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_become=true ansible_user={{ hostvars[host]['ansible_user'] }}
|
||||
{% endfor %}
|
||||
|
||||
[compute:children]
|
||||
inner-compute
|
||||
external-compute
|
||||
|
||||
[storage]
|
||||
{% for host in hostvars %}
|
||||
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_become=true ansible_user={{ hostvars[host]['ansible_user'] }}
|
||||
|
Loading…
Reference in New Issue
Block a user