Merge pull request #92 from thouveng/add-sensu-clustering

Add sensu clustering
diff --git a/ceilometer/server/cluster.yml b/ceilometer/server/cluster.yml
index 63111fd..005379d 100644
--- a/ceilometer/server/cluster.yml
+++ b/ceilometer/server/cluster.yml
@@ -1,7 +1,7 @@
 classes:
 - service.ceilometer.server.cluster
 - system.haproxy.proxy.listen.openstack.ceilometer
-- service.keepalived.cluster.single
+- system.keepalived.cluster.instance.openstack_telemetry_vip
 - service.haproxy.proxy.single
 parameters:
   ceilometer:
diff --git a/keepalived/cluster/instance/openstack_telemetry_vip.yml b/keepalived/cluster/instance/openstack_telemetry_vip.yml
new file mode 100644
index 0000000..91155e7
--- /dev/null
+++ b/keepalived/cluster/instance/openstack_telemetry_vip.yml
@@ -0,0 +1,19 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  _param:
+    keepalived_openstack_telemetry_vip_address: ${_param:cluster_vip_address}
+    keepalived_openstack_telemetry_vip_password: password
+    keepalived_openstack_telemetry_vip_interface: eth1
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        openstack_telemetry_vip:
+          address: ${_param:keepalived_openstack_telemetry_vip_address}
+          password: ${_param:keepalived_openstack_telemetry_vip_password}
+          interface: ${_param:keepalived_openstack_telemetry_vip_interface}
+          virtual_router_id: 230
+          priority: 101
diff --git a/keepalived/cluster/instance/openstack_web_public_vip.yml b/keepalived/cluster/instance/openstack_web_public_vip.yml
new file mode 100644
index 0000000..8279b65
--- /dev/null
+++ b/keepalived/cluster/instance/openstack_web_public_vip.yml
@@ -0,0 +1,19 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  _param:
+    keepalived_openstack_web_public_vip_address: ${_param:cluster_vip_address}
+    keepalived_openstack_web_public_vip_password: password
+    keepalived_openstack_web_public_vip_interface: eth1
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        openstack_web_public_vip:
+          address: ${_param:keepalived_openstack_web_public_vip_address}
+          password: ${_param:keepalived_openstack_web_public_vip_password}
+          interface: ${_param:keepalived_openstack_web_public_vip_interface}
+          virtual_router_id: 132
+          priority: ${_param:keepalived_vip_priority}
diff --git a/keepalived/cluster/instance/stacklight_log_vip.yml b/keepalived/cluster/instance/stacklight_log_vip.yml
new file mode 100644
index 0000000..caa6754
--- /dev/null
+++ b/keepalived/cluster/instance/stacklight_log_vip.yml
@@ -0,0 +1,15 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        stacklight_log_vip:
+          address: ${_param:keepalived_stacklight_log_vip_address}
+          password: ${_param:keepalived_stacklight_log_vip_password}
+          interface: ${_param:keepalived_stacklight_log_vip_interface}
+          virtual_router_id: 110
+          priority: 101
diff --git a/keepalived/cluster/instance/stacklight_telemetry_vip.yml b/keepalived/cluster/instance/stacklight_telemetry_vip.yml
new file mode 100644
index 0000000..e7d31a5
--- /dev/null
+++ b/keepalived/cluster/instance/stacklight_telemetry_vip.yml
@@ -0,0 +1,15 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        stacklight_telemetry_vip:
+          address: ${_param:keepalived_stacklight_telemetry_vip_address}
+          password: ${_param:keepalived_stacklight_telemetry_vip_password}
+          interface: ${_param:keepalived_stacklight_telemetry_vip_interface}
+          virtual_router_id: 120
+          priority: 101
diff --git a/nginx/server/proxy/openstack_api.yml b/nginx/server/proxy/openstack_api.yml
index a3182e5..5c4a1fa 100644
--- a/nginx/server/proxy/openstack_api.yml
+++ b/nginx/server/proxy/openstack_api.yml
@@ -9,86 +9,82 @@
           enabled: true
           type: nginx_proxy
           name: openstack_api_keystone
+          check: false
           proxy:
             host: ${_param:keystone_service_host}
             port: 5000
             protocol: http
-            filter:
-              search: ${_param:keystone_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 5000
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_keystone_private:
           enabled: true
           type: nginx_proxy
           name: openstack_api_keystone_private
+          check: false
           proxy:
             host: ${_param:keystone_service_host}
             port: 35357
             protocol: http
-            filter:
-              search: ${_param:keystone_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 35357
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_nova:
           enabled: true
           type: nginx_proxy
           name: openstack_api_nova
+          check: false
           proxy:
             host: ${_param:nova_service_host}
             port: 8774
             protocol: http
-            filter:
-              search: ${_param:nova_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8774
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_cinder:
           enabled: true
           type: nginx_proxy
           name: openstack_api_cinder
+          check: false
           proxy:
             host: ${_param:cinder_service_host}
             port: 8776
             protocol: http
-            filter:
-              search: ${_param:cinder_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8776
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_glance:
           enabled: true
           type: nginx_proxy
           name: openstack_api_glance
+          check: false
+          underscores_in_headers: true
           proxy:
             host: ${_param:glance_service_host}
             port: 9292
             protocol: http
-            filter:
-              search: ${_param:glance_service_host}
-              replace: '$server_addr'
+            size: 30000m
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 9292
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_neutron:
           enabled: true
           type: nginx_proxy
           name: openstack_api_neutron
+          check: false
           proxy:
             host: ${_param:neutron_service_host}
             port: 9696
             protocol: http
-            filter:
-              search: ${_param:neutron_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 9696
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_heat_cfn:
           enabled: true
           type: nginx_proxy
@@ -97,37 +93,33 @@
             host: ${_param:heat_service_host}
             port: 8000
             protocol: http
-            filter:
-              search: ${_param:neutron_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8000
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_heat:
           enabled: true
           type: nginx_proxy
           name: openstack_api_heat
+          check: false
           proxy:
             host: ${_param:heat_service_host}
             port: 8004
             protocol: http
-            filter:
-              search: ${_param:heat_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8004
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_nova_ec2:
           enabled: true
           type: nginx_proxy
           name: openstack_api_nova_ec2
+          check: false
           proxy:
             host: ${_param:nova_service_host}
             port: 8773
             protocol: http
-            filter:
-              search: ${_param:nova_service_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8773
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack_vnc.yml b/nginx/server/proxy/openstack_vnc.yml
index f53e40e..526f0db 100644
--- a/nginx/server/proxy/openstack_vnc.yml
+++ b/nginx/server/proxy/openstack_vnc.yml
@@ -7,6 +7,7 @@
           enabled: true
           type: nginx_proxy
           name: novnc
+          check: false
           proxy:
             host: ${_param:openstack_control_address}
             port: 6080
@@ -15,3 +16,4 @@
           host:
             name: ${_param:cluster_public_host}
             port: 6080
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack_web.yml b/nginx/server/proxy/openstack_web.yml
index 0165ff2..ad5ffea 100644
--- a/nginx/server/proxy/openstack_web.yml
+++ b/nginx/server/proxy/openstack_web.yml
@@ -2,7 +2,9 @@
   _param:
     nginx_proxy_openstack_web_host: ${_param:cluster_public_host}
     nginx_proxy_openstack_web_proxy_host: ${_param:cluster_vip_address}
-    nginx_proxy_openstack_web_buffer_size: 
+    nginx_proxy_openstack_web_buffer_size:
+      number: 4
+      size: 256
   nginx:
     server:
       enabled: true
@@ -12,11 +14,16 @@
           type: nginx_proxy
           name: openstack_web
           proxy:
-            size: 5000m
-            host: prx
+            host: localhost
+            # TODO: port must be configurable, as some deployments might have HAproxy over prx nodes
             port: 8078
+            size: 10000m
+            timeout: 43200
             protocol: http
             websocket: true
+            request_buffer: false
+            buffer:
+              ${_param:nginx_proxy_openstack_web_buffer_size}
           host:
             name: ${_param:nginx_proxy_openstack_web_host}
             port: 443