Puppet Class: cloud::network::controller

Defined in:
manifests/network/controller.pp

Overview

Parameters:

  • neutron_db_host (Any) (defaults to: $os_params::neutron_db_host)
  • neutron_db_user (Any) (defaults to: $os_params::neutron_db_user)
  • neutron_db_password (Any) (defaults to: $os_params::neutron_db_password)
  • ks_neutron_password (Any) (defaults to: $os_params::ks_neutron_password)
  • ks_keystone_admin_host (Any) (defaults to: $os_params::ks_keystone_admin_host)
  • ks_keystone_public_port (Any) (defaults to: $os_params::ks_keystone_public_port)
  • ks_neutron_public_port (Any) (defaults to: $os_params::ks_neutron_public_port)
  • api_eth (Any) (defaults to: $os_params::api_eth)
  • ks_admin_tenant (Any) (defaults to: $os_params::ks_admin_tenant)
  • public_cidr (Any) (defaults to: $os_params::public_cidr)


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'
  }

}