Update haproxy backend checks for placement
Starting from Queens OPTIONS (default haproxy check method) is not allowed.
This patch updates placement.yml haproxy meta to expect both 401 - which was
default in Pike and 200 - default responce code in Queens. Also change
check method to GET.
Change-Id: Ieed01011df8c81476dc8d9fbb2cb2a63ef649639
Related-Prod: PROD-27155
diff --git a/haproxy/proxy/listen/openstack/placement.yml b/haproxy/proxy/listen/openstack/placement.yml
index b2e37bb..78776ca 100644
--- a/haproxy/proxy/listen/openstack/placement.yml
+++ b/haproxy/proxy/listen/openstack/placement.yml
@@ -1,5 +1,6 @@
# Starting with Nova (17.0.0) Queens - accessing to / of placement service
# returns 200 with version data instead of 401 as it was before.
+# Also OPTIONS default haproxy check method is no longer allowed starting from Queens.
# This file should be included for nova/placement higher than Queens.
parameters:
_param:
@@ -7,9 +8,19 @@
haproxy:
proxy:
listen:
+ # Nova placement API returns 401 when doing GET to root URL, while
+ # other services normally returns 200 and API versions data.
placement_api:
- type: openstack-service
service_name: placement
+ mode: http
+ options:
+ - httpclose
+ - httplog
+ - httpchk GET /
+ health-check:
+ http:
+ options:
+ - expect rstatus (401|200)
binds:
- address: ${_param:cluster_vip_address}
port: 8778
diff --git a/haproxy/proxy/listen/openstack/placement_large.yml b/haproxy/proxy/listen/openstack/placement_large.yml
index d559572..95711d2 100644
--- a/haproxy/proxy/listen/openstack/placement_large.yml
+++ b/haproxy/proxy/listen/openstack/placement_large.yml
@@ -1,5 +1,6 @@
# Starting with Nova (17.0.0) Queens - accessing to / of placement service
# returns 200 with version data instead of 401 as it was before.
+# Also OPTIONS default haproxy check method is no longer allowed starting from Queens.
# This file should be included for nova/placement higher than Queens.
parameters:
_param:
@@ -7,9 +8,19 @@
haproxy:
proxy:
listen:
+ # Nova placement API returns 401 when doing GET to root URL, while
+ # other services normally returns 200 and API versions data.
placement_api:
- type: openstack-service
service_name: placement
+ mode: http
+ options:
+ - httpclose
+ - httplog
+ - httpchk GET /
+ health-check:
+ http:
+ options:
+ - expect rstatus (401|200)
binds:
- address: ${_param:cluster_vip_address}
port: 8778