diff --git a/manifests/profile/base/neutron.pp b/manifests/profile/base/neutron.pp index 64f5f329f..993028f8d 100644 --- a/manifests/profile/base/neutron.pp +++ b/manifests/profile/base/neutron.pp @@ -29,16 +29,44 @@ # [*rabbit_port*] # IP port for rabbitmq service # Defaults to hiera('neutron::rabbit_port', 5672 +# +# [*dhcp_agents_per_network*] +# (Optional) TripleO configured number of DHCP agents +# to use per network. If left to the default value, neutron will be +# configured with the number of DHCP agents being deployed. +# Defaults to undef +# +# [*dhcp_nodes*] +# (Optional) List of nodes running the DHCP agent. Used to +# set neutron's dhcp_agents_per_network value to the number +# of available agents. +# Defaults to hiera('neutron_dhcp_short_node_names') or [] +# class tripleo::profile::base::neutron ( $step = hiera('step'), $rabbit_hosts = hiera('rabbitmq_node_ips', undef), $rabbit_port = hiera('neutron::rabbit_port', 5672), + $dhcp_agents_per_network = undef, + $dhcp_nodes = hiera('neutron_dhcp_short_node_names', []), ) { if $step >= 3 { $rabbit_endpoints = suffix(any2array(normalize_ip_for_uri($rabbit_hosts)), ":${rabbit_port}") + $dhcp_agent_count = size($dhcp_nodes) + if $dhcp_agents_per_network { + $dhcp_agents_per_net = $dhcp_agents_per_network + if ($dhcp_agents_per_net > $dhcp_agent_count) { + warning("dhcp_agents_per_network (${dhcp_agents_per_net}) is greater\ + than the number of deployed dhcp agents (${dhcp_agent_count})") + } + } + elsif $dhcp_agent_count > 0 { + $dhcp_agents_per_net = $dhcp_agent_count + } + class { '::neutron' : - rabbit_hosts => $rabbit_endpoints, + rabbit_hosts => $rabbit_endpoints, + dhcp_agents_per_network => $dhcp_agents_per_net, } include ::neutron::config } diff --git a/releasenotes/notes/calculate-dhcp-agents-per-network-3089c5e7b15f8b7b.yaml b/releasenotes/notes/calculate-dhcp-agents-per-network-3089c5e7b15f8b7b.yaml new file mode 100644 index 000000000..800cedc4c --- /dev/null +++ b/releasenotes/notes/calculate-dhcp-agents-per-network-3089c5e7b15f8b7b.yaml @@ -0,0 +1,5 @@ +--- +features: | + - Unless a non-default value is provided, the dhcp_agents_per_network + neutron configuration variable is set to the number of deployed + neutron dhcp agents.