Puppet Class: openstack::profile::neutron::router
- Defined in:
- manifests/profile/neutron/router.pp
Overview
The profile to set up a neutron ovs network router
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 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 |
# File 'manifests/profile/neutron/router.pp', line 2
class openstack::profile::neutron::router {
Exec {
path => '/usr/bin:/usr/sbin:/bin:/sbin',
require => Class['openstack::profile::neutron::common'],
}
::sysctl::value { 'net.ipv4.ip_forward':
value => '1',
}
$controller_management_address = hiera('openstack::controller::address::management')
include ::openstack::common::neutron
include ::openstack::common::ovs
### Router service installation
class { '::neutron::agents::l3':
debug => hiera('openstack::debug'),
external_network_bridge => 'brex',
enabled => true,
}
class { '::neutron::agents::dhcp':
debug => hiera('openstack::debug'),
enabled => true,
}
class { '::neutron::agents::metadata':
auth_password => hiera('openstack::neutron::password'),
shared_secret => hiera('openstack::neutron::shared_secret'),
auth_url => "http://${controller_management_address}:35357/v2.0",
debug => hiera('openstack::debug'),
auth_region => hiera('openstack::region'),
metadata_ip => $controller_management_address,
enabled => true,
}
class { '::neutron::agents::lbaas':
debug => hiera('openstack::debug'),
enabled => true,
}
class { '::neutron::agents::vpnaas':
enabled => true,
}
class { '::neutron::agents::metering':
enabled => true,
}
class { '::neutron::services::fwaas':
enabled => true,
}
# Temporarily fix a bug on RHEL packaging
if $::osfamily == 'RedHat' {
file { '/usr/lib/python2.6/site-packages/neutronclient/client.py':
ensure => present,
source => 'puppet:///modules/openstack/client.py',
mode => '0644',
notify => Service['neutron-metadata-agent'],
require => Package['openstack-neutron'],
}
}
$external_bridge = 'brex'
$external_network = hiera('openstack::network::external')
$external_device = device_for_network($external_network)
vs_bridge { $external_bridge:
ensure => present,
}
if $external_device != $external_bridge {
vs_port { $external_device:
ensure => present,
bridge => $external_bridge,
keep_ip => true,
}
} else {
# External bridge already has the external device's IP, thus the external
# device has already been linked
}
}
|