Skip to content
Snippets Groups Projects
haproxy.pp 4.45 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,
    
    Quentin MACHU's avatar
    Quentin MACHU committed
    ) {
    
      class { '::haproxy':
        defaults_options => {
    
          'mode' => 'http',
          'log' => 'global',
          'option' => [
    	'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 => '0.0.0.0',
          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 => '0.0.0.0',
        mode => 'tcp',
        ports => '3306',
        options => {
    
          'option' => ['httpchk','tcpka'],
          'balance' => 'leastconn',
    
    
      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 { 'rabbitmq':
    
     #   ipaddress => '0.0.0.0',
     #   mode => 'tcp',
     #   ports => '5672',
     #   options => {
     #     'option' => ['tcpka'],
     #     'timeout' => [
     #       'client 7d',
     #       'server 7d',
     #     ]
     #   }
     # }
    
    
      haproxy::listen { 'keystone_admin_cluster':
        ipaddress => '0.0.0.0',
        ports => '35357',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
      haproxy::listen { 'keystone_public_internal_cluster':
        ipaddress => '0.0.0.0',
        ports => '5000',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
      haproxy::listen { 'glance_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '9292',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
      haproxy::listen { 'glance_registry_cluster':
        ipaddress => '0.0.0.0',
        ports => '9191',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
    
        }
      }
    
      haproxy::listen { 'cinder_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '8776',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
      haproxy::listen { 'nova_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '8774',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
    
      haproxy::listen { 'nova_metadata_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '8775',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
    
      haproxy::listen { 'nova_novncproxy':
        ipaddress => '0.0.0.0',
        ports => '6080',
        options => {
          'option' => ['tcpka', 'tcplog'],
        }
      }
    
    
      haproxy::listen { 'neutron_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '9696',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
      haproxy::listen { 'heat_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '8004',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
    
      haproxy::listen { 'heat_api_cfn_cluster':
        ipaddress => '0.0.0.0',
        ports => '8000',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
      haproxy::listen { 'heat_api_cw_cluster':
        ipaddress => '0.0.0.0',
        ports => '8003',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
    
      haproxy::listen { 'horizon_cluster':
        ipaddress => '0.0.0.0',
        ports => '80',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
        }
      }
    
    Quentin MACHU's avatar
    Quentin MACHU committed
    
      haproxy::listen { 'ceilometer_api_cluster':
        ipaddress => '0.0.0.0',
        ports => '8777',
        options => {
          'option' => ['tcpka', 'httpchk', 'tcplog'],
          'http-check' => 'expect status 401',
        }
      }