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
|
# File 'manifests/network/controller.pp', line 19
class cloud::network::controller(
$neutron_db_host = $os_params::neutron_db_host,
$neutron_db_user = $os_params::neutron_db_user,
$neutron_db_password = $os_params::neutron_db_password,
$ks_neutron_password = $os_params::ks_neutron_password,
$ks_keystone_admin_host = $os_params::ks_keystone_admin_host,
$ks_keystone_public_port = $os_params::ks_keystone_public_port,
$ks_neutron_public_port = $os_params::ks_neutron_public_port,
$api_eth = $os_params::api_eth,
$ks_admin_tenant = $os_params::ks_admin_tenant,
$public_cidr = $os_params::public_cidr
) {
include 'cloud::network'
$encoded_user = uriescape($neutron_db_user)
$encoded_password = uriescape($neutron_db_password)
class { 'neutron::server':
auth_password => $ks_neutron_password,
auth_host => $ks_keystone_admin_host,
auth_port => $ks_keystone_public_port,
database_connection => "mysql://${encoded_user}:${encoded_password}@${neutron_db_host}/neutron?charset=utf8",
api_workers => $::processorcount,
agent_down_time => '60',
report_interval => '30',
}
# Note(EmilienM):
# We check if DB tables are created, if not we populate Neutron DB.
# It's a hack to fit with our setup where we run MySQL/Galera
Neutron_config<| |> ->
exec {'neutron_db_sync':
command => 'neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head',
path => '/usr/bin',
user => 'neutron',
unless => "/usr/bin/mysql neutron -h ${neutron_db_host} -u ${encoded_user} -p${encoded_password} -e \"show tables\" | /bin/grep Tables",
require => 'Neutron_config[DEFAULT/service_plugins]',
notify => Service['neutron-server']
}
@@haproxy::balancermember{"${::fqdn}-neutron_api":
listening_service => 'neutron_api_cluster',
server_names => $::hostname,
ipaddresses => $api_eth,
ports => $ks_neutron_public_port,
options => 'check inter 2000 rise 2 fall 5'
}
}
|