Switch to AZAwareWeightScheduler as of Mitaka
AZAwareWeightScheduler is based on WeightScheduler and provides a way to make DHCP agent scheduling be AZ-aware. This is used in conjunction with dhcp-agents-per-network config option and per-network agents (such as dnsmasq) will be distributed across neutron-dhcp-agents that have availability_zone configuration (based on dhcp-load-type for placement calculation). bp: https://blueprints.launchpad.net/neutron/+spec/add-availability-zone Upgrade impact is mentioned here: specs.openstack.org/openstack/neutron-specs/specs/mitaka/availability-zone.html The spec mentions that by default all agents belong to 'nova' AZ so the scheduler change should be backwards-compatible. Change-Id: I4d948efa157573fdbc0fbfd3b1efb21b69a713ef Closes-Bug: #1796068
This commit is contained in:
parent
e61644060f
commit
1e6430f9c6
@ -726,3 +726,9 @@ options:
|
|||||||
The size in bits of the prefix for the IPv6 reverse lookup (PTR) zones.
|
The size in bits of the prefix for the IPv6 reverse lookup (PTR) zones.
|
||||||
.
|
.
|
||||||
NOTE: Use only when "reverse-dns-lookup" option is set to "True".
|
NOTE: Use only when "reverse-dns-lookup" option is set to "True".
|
||||||
|
dhcp-load-type:
|
||||||
|
type: string
|
||||||
|
default: 'networks'
|
||||||
|
description: |
|
||||||
|
Sets the resource type used in weight calculations during
|
||||||
|
AZ-aware scheduling (networks, subnets or ports).
|
||||||
|
@ -400,6 +400,7 @@ class NeutronCCContext(context.NeutronContext):
|
|||||||
config('allow-automatic-l3agent-failover')
|
config('allow-automatic-l3agent-failover')
|
||||||
ctxt['allow_automatic_dhcp_failover'] = \
|
ctxt['allow_automatic_dhcp_failover'] = \
|
||||||
config('allow-automatic-dhcp-failover')
|
config('allow-automatic-dhcp-failover')
|
||||||
|
|
||||||
ctxt['dhcp_agents_per_network'] = config('dhcp-agents-per-network')
|
ctxt['dhcp_agents_per_network'] = config('dhcp-agents-per-network')
|
||||||
ctxt['tenant_network_types'] = self.neutron_tenant_network_types
|
ctxt['tenant_network_types'] = self.neutron_tenant_network_types
|
||||||
ctxt['overlay_network_type'] = self.neutron_overlay_network_type
|
ctxt['overlay_network_type'] = self.neutron_overlay_network_type
|
||||||
@ -472,6 +473,13 @@ class NeutronCCContext(context.NeutronContext):
|
|||||||
if related_units(rid):
|
if related_units(rid):
|
||||||
enable_dns_extension_driver = True
|
enable_dns_extension_driver = True
|
||||||
|
|
||||||
|
# AZAwareWeightScheduler inherits from WeightScheduler and is
|
||||||
|
# available as of mitaka
|
||||||
|
ctxt['network_scheduler_driver'] = (
|
||||||
|
'neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler'
|
||||||
|
)
|
||||||
|
ctxt['dhcp_load_type'] = config('dhcp-load-type')
|
||||||
|
|
||||||
extension_drivers = []
|
extension_drivers = []
|
||||||
if config('enable-ml2-port-security'):
|
if config('enable-ml2-port-security'):
|
||||||
extension_drivers.append(EXTENSION_DRIVER_PORT_SECURITY)
|
extension_drivers.append(EXTENSION_DRIVER_PORT_SECURITY)
|
||||||
|
@ -28,6 +28,10 @@ min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
|||||||
|
|
||||||
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
||||||
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
||||||
|
{% if network_scheduler_driver -%}
|
||||||
|
network_scheduler_driver = {{ network_scheduler_driver }}
|
||||||
|
dhcp_load_type = {{ dhcp_load_type }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if neutron_bind_port -%}
|
{% if neutron_bind_port -%}
|
||||||
bind_port = {{ neutron_bind_port }}
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
@ -28,6 +28,10 @@ min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
|||||||
|
|
||||||
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
||||||
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
||||||
|
{% if network_scheduler_driver -%}
|
||||||
|
network_scheduler_driver = {{ network_scheduler_driver }}
|
||||||
|
dhcp_load_type = {{ dhcp_load_type }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if neutron_bind_port -%}
|
{% if neutron_bind_port -%}
|
||||||
bind_port = {{ neutron_bind_port }}
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
@ -28,6 +28,10 @@ min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
|||||||
|
|
||||||
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
||||||
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
||||||
|
{% if network_scheduler_driver -%}
|
||||||
|
network_scheduler_driver = {{ network_scheduler_driver }}
|
||||||
|
dhcp_load_type = {{ dhcp_load_type }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if neutron_bind_port -%}
|
{% if neutron_bind_port -%}
|
||||||
bind_port = {{ neutron_bind_port }}
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
@ -28,6 +28,10 @@ min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
|||||||
|
|
||||||
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
||||||
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
||||||
|
{% if network_scheduler_driver -%}
|
||||||
|
network_scheduler_driver = {{ network_scheduler_driver }}
|
||||||
|
dhcp_load_type = {{ dhcp_load_type }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if neutron_bind_port -%}
|
{% if neutron_bind_port -%}
|
||||||
bind_port = {{ neutron_bind_port }}
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
@ -28,6 +28,10 @@ min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
|||||||
|
|
||||||
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
||||||
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
||||||
|
{% if network_scheduler_driver -%}
|
||||||
|
network_scheduler_driver = {{ network_scheduler_driver }}
|
||||||
|
dhcp_load_type = {{ dhcp_load_type }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if neutron_bind_port -%}
|
{% if neutron_bind_port -%}
|
||||||
bind_port = {{ neutron_bind_port }}
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
@ -26,6 +26,13 @@ max_l3_agents_per_router = {{ max_l3_agents_per_router }}
|
|||||||
min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
||||||
{% endif -%}
|
{% endif -%}
|
||||||
|
|
||||||
|
allow_automatic_l3agent_failover = {{ allow_automatic_l3agent_failover }}
|
||||||
|
allow_automatic_dhcp_failover = {{ allow_automatic_dhcp_failover }}
|
||||||
|
{% if network_scheduler_driver -%}
|
||||||
|
network_scheduler_driver = {{ network_scheduler_driver }}
|
||||||
|
dhcp_load_type = {{ dhcp_load_type }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if neutron_bind_port -%}
|
{% if neutron_bind_port -%}
|
||||||
bind_port = {{ neutron_bind_port }}
|
bind_port = {{ neutron_bind_port }}
|
||||||
{% else -%}
|
{% else -%}
|
||||||
|
@ -492,6 +492,10 @@ class NeutronCCContextTest(CharmTestCase):
|
|||||||
'vni_ranges': '1001:2000',
|
'vni_ranges': '1001:2000',
|
||||||
'extension_drivers': 'port_security',
|
'extension_drivers': 'port_security',
|
||||||
'service_plugins': 'router,firewall,lbaas,vpnaas,metering',
|
'service_plugins': 'router,firewall,lbaas,vpnaas,metering',
|
||||||
|
'network_scheduler_driver': (
|
||||||
|
'neutron.scheduler.dhcp_agent_scheduler'
|
||||||
|
'.AZAwareWeightScheduler'),
|
||||||
|
'dhcp_load_type': 'networks',
|
||||||
}
|
}
|
||||||
napi_ctxt = context.NeutronCCContext()
|
napi_ctxt = context.NeutronCCContext()
|
||||||
self.maxDiff = None
|
self.maxDiff = None
|
||||||
|
Loading…
Reference in New Issue
Block a user