Puppet Class: neutron::agents::lbaas
- Defined in:
- manifests/agents/lbaas.pp
Overview
Class: neutron::agents:lbaas:
Setups Neutron Load Balancing agent.
Parameters
- package_ensure
-
(optional) Ensure state for package. Defaults to ‘present’.
- enabled
-
(optional) Enable state for service. Defaults to ‘true’.
- manage_service
-
(optional) Whether to start/stop the service Defaults to true
- debug
-
(optional) Show debugging output in log. Defaults to false.
- interface_driver
-
(optional) Defaults to ‘neutron.agent.linux.interface.OVSInterfaceDriver’.
- device_driver
-
(optional) Defaults to ‘neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver’.
- use_namespaces
-
(optional) Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and iproute2 package that supports namespaces). Defaults to true.
- user_group
-
(optional) The user group. Defaults to $::neutron::params::nobody_user_group
- manage_haproxy_package
-
(optional) Whether to manage the haproxy package. Disable this if you are using the puppetlabs-haproxy module Defaults to true
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'manifests/agents/lbaas.pp', line 40
class neutron::agents::lbaas (
$package_ensure = present,
$enabled = true,
$manage_service = true,
$debug = false,
$interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
$device_driver = 'neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver',
$use_namespaces = true,
$user_group = $::neutron::params::nobody_user_group,
$manage_haproxy_package = true,
) {
include neutron::params
Neutron_config<||> ~> Service['neutron-lbaas-service']
Neutron_lbaas_agent_config<||> ~> Service['neutron-lbaas-service']
case $device_driver {
/\.haproxy/: {
Package <| title == $::neutron::params::haproxy_package |> -> Package <| title == 'neutron-lbaas-agent' |>
if $manage_haproxy_package {
ensure_packages([$::neutron::params::haproxy_package])
}
}
default: {
fail("Unsupported device_driver ${device_driver}")
}
}
# The LBaaS agent loads both neutron.ini and its own file.
# This only lists config specific to the agent. neutron.ini supplies
# the rest.
neutron_lbaas_agent_config {
'DEFAULT/debug': value => $debug;
'DEFAULT/interface_driver': value => $interface_driver;
'DEFAULT/device_driver': value => $device_driver;
'DEFAULT/use_namespaces': value => $use_namespaces;
'haproxy/user_group': value => $user_group;
}
if $::neutron::params::lbaas_agent_package {
Package['neutron'] -> Package['neutron-lbaas-agent']
Package['neutron-lbaas-agent'] -> Neutron_config<||>
Package['neutron-lbaas-agent'] -> Neutron_lbaas_agent_config<||>
package { 'neutron-lbaas-agent':
ensure => $package_ensure,
name => $::neutron::params::lbaas_agent_package,
}
} else {
# Some platforms (RedHat) do not provide a neutron LBaaS agent package.
# The neutron LBaaS agent config file is provided by the neutron package.
Package['neutron'] -> Neutron_lbaas_agent_config<||>
}
if $manage_service {
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
}
service { 'neutron-lbaas-service':
ensure => $service_ensure,
name => $::neutron::params::lbaas_agent_service,
enable => $enabled,
require => Class['neutron'],
}
}
|