Newer
Older
Quentin MACHU
committed
class iaas::profile::neutron::router (
$public_interface = hiera('iaas::public_interface', undef),
Quentin MACHU
committed
$external_device = undef,
$external_network = hiera('iaas::profile::neutron::external_network', undef),
$external_gateway = hiera('iaas::profile::neutron::external_gateway', undef),
Quentin MACHU
committed
$neutron_password = hiera('iaas::profile::neutron::password', undef),
$neutron_secret = hiera('iaas::profile::neutron::secret', undef),
$region = hiera('iaas::region', undef),
$endpoint = hiera('iaas::role::endpoint::main_address', undef),
) {
sysctl { 'net.ipv4.ip_forward': value => '1' }
sysctl { 'net.ipv4.conf.all.rp_filter': value => '0' }
sysctl { 'net.ipv4.conf.default.rp_filter': value => '0' }
Quentin MACHU
committed
Quentin MACHU
committed
sysctl { 'net.ipv4.conf.all.accept_redirects': value => '0' }
sysctl { 'net.ipv4.conf.default.accept_redirects': value => '0' }
sysctl { 'net.ipv4.conf.all.send_redirects': value => '0' }
sysctl { 'net.ipv4.conf.default.send_redirects': value => '0' }
package { 'ifupdown-extra': }
Quentin MACHU
committed
include iaas::profile::neutron::common
Quentin MACHU
committed
class { '::neutron::agents::l3':
external_network_bridge => 'br-ex',
use_namespaces => true,
router_delete_namespaces => true,
ha_enabled => true,
Quentin MACHU
committed
enabled => false,
Quentin MACHU
committed
}
class { '::neutron::agents::dhcp':
dhcp_delete_namespaces => true,
enable_isolated_metadata => true,
enable_metadata_network => true,
Quentin MACHU
committed
}
Quentin MACHU
committed
class { '::neutron::agents::vpnaas':
external_network_bridge => "br-ex",
}
class { '::neutron::agents::lbaas': }
class { '::neutron::agents::metering': }
class { '::neutron::services::fwaas':
vpnaas_agent_package => true
}
Quentin MACHU
committed
class { '::neutron::agents::metadata':
auth_password => $neutron_password,
shared_secret => $neutron_secret,
auth_url => "http://${endpoint}:5000/v2.0",
Quentin MACHU
committed
auth_region => $region,
metadata_ip => $endpoint,
Quentin MACHU
committed
enabled => true,
}
if $ipaddress_br_ex == '' {
$local_ip = $::facts["ipaddress_${public_interface}"]
} else {
$local_ip = $::ipaddress_br_ex
}
class { '::neutron::agents::ml2::ovs':
enable_tunneling => true,
local_ip => $local_ip,
enabled => true,
tunnel_types => ['gre'],
bridge_mappings => ['external:br-ex'],
require => File['etc_default_neutron-server'],
}
Quentin MACHU
committed
$_external_device = device_for_network($external_network)
if $_external_device != 'br_ex' {
# Store initial configuration from the public interface (assigned by DHCP) to restore on br-ex
$public_ipaddress = $::facts["ipaddress_${public_interface}"]
$public_netmask = $::facts["netmask_${public_interface}"]
Quentin MACHU
committed
network_config { $external_device:
ensure => 'present',
family => 'inet',
method => 'manual',
options => {
'up' => "ifconfig ${external_device} promisc up",
'down' => "ifconfig ${external_device} promisc down",
},
} ->
network_config { 'br-ex':
ensure => 'present',
family => 'inet',
method => 'static',
ipaddress => $public_ipaddress,
netmask => $public_netmask,
} ->
vs_port { $external_device:
ensure => present,
bridge => 'br-ex',
require => Class['::neutron::agents::ml2::ovs'],
Quentin MACHU
committed
} ->
network_route { 'route_default':
ensure => 'present',
gateway => $external_gateway,
Quentin MACHU
committed
interface => 'br-ex',
netmask => '0.0.0.0',
network => 'default',
require => Package['ifupdown-extra']