Skip to content
Snippets Groups Projects
haproxy.pp 8.84 KiB
Newer Older
  • Learn to ignore specific revisions
  • Quentin MACHU's avatar
    Quentin MACHU committed
    class iaas::profile::haproxy (
      $stats_enabled = undef,
      $stats_ports = undef,
      $stats_refresh = undef,
      $stats_login = undef,
      $stats_password = undef,
      $stats_uri = undef,
    
      $vip = undef,
      $controller_hosts = undef,
      $controller_ips = undef,
    
    Quentin MACHU's avatar
    Quentin MACHU committed
    ) {
    
      class { '::haproxy':
        defaults_options => {
    
    Riccardo Bucchi's avatar
    Riccardo Bucchi committed
    #     'log' => 'global',
    
    Riccardo Bucchi's avatar
    Riccardo Bucchi committed
    #	'tcplog',
    
    	'dontlognull',
    	'redispatch',
          ],
    
          'retries' => '3',
          'timeout' => [
            'http-request 10s',
    
    	'http-keep-alive 10s',
    
          'maxconn' => '4096',
    
    Quentin MACHU's avatar
    Quentin MACHU committed
      if stats_enabled {
        haproxy::listen { 'stats':
    
          ipaddress => $vip,
    
    Quentin MACHU's avatar
    Quentin MACHU committed
          mode => 'http',
          ports => $stats_ports,
          options => {
            'stats' => [
              'enable',
              'hide-version',
              "refresh ${stats_refresh}",
              'show-node',
              "auth ${stats_login}:${stats_password}",
              "uri ${stats_uri}"
            ],
          }
        }
      }
    
    
      haproxy::listen { 'percona_cluster':
    
        ipaddress => $vip,
    
        mode => 'tcp',
        ports => '3306',
        options => {
    
          'option' => ['httpchk','tcpka'],
          'balance' => 'leastconn',
    
    Riccardo Bucchi's avatar
    Riccardo Bucchi committed
          'timeout' => [
             'client 90m',
             'server 90m',
           ],
    
    
      if $servers != undef { 
         haproxy::balancermember { 'percona_cluster_prior':
           listening_service => 'percona_cluster',
           ports             => '3307',
           server_names      => $servers[priority_hostname],
           ipaddresses       => $servers[priority_ip],
           options           => 'check port 9200',
         }
         haproxy::balancermember { 'percona_cluster_secondaries':
           listening_service => 'percona_cluster',
           ports             => '3307',
           server_names      => $servers[hostnames], 
           ipaddresses       => $servers[ips], 
           options           => 'check port 9200 backup',
         }
    
    
     haproxy::listen { 'keystone_admin_cluster':
        ipaddress => $vip,
        ports => '35357',
    
          'balance' => 'source',
    
      haproxy::balancermember { 'keystone_admin_cluster':
         listening_service => 'keystone_admin_cluster',
         ports             => '35357',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
    
    
    
     haproxy::listen { 'keystone_api_cluster':
        ipaddress => $vip,
        ports => '5000',
    
          'balance' => 'source',
    
      haproxy::balancermember { 'keystone_api_cluster':
         listening_service => 'keystone_api_cluster',
         ports             => '5000',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'glance_api_cluster':
        ipaddress => $vip,
        ports => '9292',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'glance_api_cluster':
         listening_service => 'glance_api_cluster',
         ports             => '9292',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
    
     haproxy::listen { 'glance_registry_cluster':
        ipaddress => $vip,
        ports => '9191',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'glance_registry_cluster':
         listening_service => 'glance_registry_cluster',
         ports             => '9191',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
    
     haproxy::listen { 'cinder_api_cluster':
        ipaddress => $vip,
        ports => '8776',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'cinder_api_cluster':
         listening_service => 'cinder_api_cluster',
         ports             => '8776',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_api_cluster':
        ipaddress => $vip,
        ports => '8774',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_api_cluster':
         listening_service => 'nova_api_cluster',
         ports             => '8774',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_metadata_api_cluster':
        ipaddress => $vip,
        ports => '8775',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_metadata_api_cluster':
         listening_service => 'nova_metadata_api_cluster',
         ports             => '8775',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_novncproxy_cluster':
        ipaddress => $vip,
        ports => '6080',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_novncproxy_cluster':
         listening_service => 'nova_novncproxy_cluster',
         ports             => '6080',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'nova_ec2_api_cluster':
        ipaddress => $vip,
        ports => '8773',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'nova_ec2_api_cluster':
         listening_service => 'nova_ec2_api_cluster',
         ports             => '8773',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'neutron_api_cluster':
        ipaddress => $vip,
        ports => '9696',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'neutron_api_cluster':
         listening_service => 'neutron_api_cluster',
         ports             => '9696',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'heat_api_cluster':
        ipaddress => $vip,
        ports => '8004',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'heat_api_cluster':
         listening_service => 'heat_api_cluster',
         ports             => '8004',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'heat_api_cfn_cluster':
        ipaddress => $vip,
        ports => '8000',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'heat_api_cfn_cluster':
         listening_service => 'heat_api_cfn_cluster',
         ports             => '8000',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'heat_api_watch_cluster':
        ipaddress => $vip,
        ports => '8003',
        options => {
          'option' => ['httpchk','tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'heat_api_watch_cluster':
         listening_service => 'heat_api_watch_cluster',
         ports             => '8003',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'ceilometer_api_cluster':
        ipaddress => $vip,
        ports => '8777',
        options => {
          'option' => ['tcpka'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'ceilometer_api_cluster':
         listening_service => 'ceilometer_api_cluster',
         ports             => '8777',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }
    
     haproxy::listen { 'horizon_cluster':
        ipaddress => $vip,
        mode => 'http',
        ports => '80',
        options => {
          'option' => ['httpchk','httpclose','forwardfor'],
          'balance' => 'source',
        }
      }
    
      haproxy::balancermember { 'horizon_cluster':
         listening_service => 'horizon_cluster',
         ports             => '80',
         server_names      => $controller_hosts,
         ipaddresses       => $controller_ips,
         options           => 'check inter 2000 rise 2 fall 5',
      }