summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/ha/templates/haproxy.cfg
blob: edbd998df91c4ec291b6033a3042e50e8e0881b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
global
    #chroot /var/run/haproxy
    daemon
    user haproxy
    group haproxy
    maxconn 4000
    pidfile /var/run/haproxy/haproxy.pid
    #log 127.0.0.1 local0
    tune.bufsize 1000000
    stats socket /var/run/haproxy.sock
    stats timeout 2m

defaults
    log global
    maxconn 8000
    option redispatch
    option dontlognull
    option splice-auto
    timeout http-request 10s
    timeout queue 1m
    timeout connect 10s
    timeout client 50s
    timeout server 50s
    timeout check 10s
    retries 3

listen  proxy-mysql
    bind {{ internal_vip.ip }}:3306
    option tcpka
    option tcplog
    balance source
{% for host, ip in haproxy_hosts.items() %}
{% if loop.index == 1 %}
    server {{ host }} {{ ip }}:3306 weight 1 check inter 2000 rise 2 fall 5
{% else %}
    server {{ host }} {{ ip }}:3306 weight 1 check inter 2000 rise 2 fall 5
{% endif %}
{% endfor %}

listen  proxy-rabbit
    bind {{ internal_vip.ip }}:5672
    bind {{ public_vip.ip }}:5672

    option tcpka
    option tcplog
    timeout client 3h
    timeout server 3h
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:5672 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-glance_registry_cluster
    bind {{ internal_vip.ip }}:9191
    bind {{ public_vip.ip }}:9191
    option tcpka
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:9191 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-glance_api_cluster
    bind {{ internal_vip.ip }}:9292
    bind {{ public_vip.ip }}:9292
    option tcpka
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:9292 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-nova-novncproxy
    bind {{ internal_vip.ip }}:6080
    bind {{ public_vip.ip }}:6080
    option tcpka
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:6080 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-network
    bind {{ internal_vip.ip }}:9696
    bind {{ public_vip.ip }}:9696
    option tcpka
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:9696 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-volume
    bind {{ internal_vip.ip }}:8776
    bind {{ public_vip.ip }}:8776
    option tcpka
    option httpchk
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:8776 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-keystone_admin_cluster
    bind {{ internal_vip.ip }}:35357
    bind {{ public_vip.ip }}:35357
    option tcpka
    option httpchk
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:35357 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-keystone_public_internal_cluster
    bind {{ internal_vip.ip }}:5000
    bind {{ public_vip.ip }}:5000
    option tcpka
    option httpchk
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:5000 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-nova_compute_api_cluster
    bind {{ internal_vip.ip }}:8774
    bind {{ public_vip.ip }}:8774
    mode tcp
    option httpchk
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:8774 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-nova_metadata_api_cluster
    bind {{ internal_vip.ip }}:8775
    bind {{ public_vip.ip }}:8775
    option tcpka
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:8775 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-cinder_api_cluster
    bind {{ internal_vip.ip }}:8776
    bind {{ public_vip.ip }}:8776
    mode tcp
    option httpchk
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:8776 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-ceilometer_api_cluster
    bind {{ internal_vip.ip }}:8777
    bind {{ public_vip.ip }}:8777
    mode tcp
    option tcp-check
    option tcplog
    balance source
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:8777 weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen  proxy-dashboarad
    bind {{ public_vip.ip }}:80
    mode  http
    balance  source
    capture  cookie vgnvisitor= len 32
    cookie  SERVERID insert indirect nocache
    option  forwardfor
    option  httpchk
    option  httpclose
    rspidel  ^Set-cookie:\ IP=
{% for host,ip in haproxy_hosts.items() %}
    server {{ host }} {{ ip }}:80 cookie {{ host }} weight 1 check inter 2000 rise 2 fall 5
{% endfor %}

listen stats
    mode http
    bind 0.0.0.0:8888
    stats enable
    stats refresh 30s
    stats uri /
    stats realm Global\ statistics
    stats auth admin:admin
an> 1 fi fi } remove_storperf() { # remove Storper from huawei-pod1 if [ "$NODE_NAME" == "huawei-pod1" ]; then echo echo "========== Removing storperf ==========" if ! yardstick -d plugin remove plugin/CI/storperf.yaml; then echo "Remove storperf plugin FAILED"; exit 1 fi fi } report(){ echo echo "========== Reporting Status ==========" curl -i -H 'content-type: application/json' -X POST -d \ "{\"project_name\": \"yardstick\", \"case_name\": \"scenario_status\", \"pod_name\":\"${NODE_NAME}\", \"installer\":\"${INSTALLER_TYPE}\", \"version\":\"$(basename ${YARDSTICK_BRANCH})\", \"scenario\":\"${DEPLOY_SCENARIO}\", \"description\": \"yardstick ci scenario status\", \"criteria\":\"$1\", \"start_date\":\"$2\", \"stop_date\":\"$3\", \"details\":\"\"}" \ ${DISPATCHER_HTTP_TARGET} } run_test() { echo echo "========== Running yardstick test suites ==========" mkdir -p /etc/yardstick cat << EOF >> /etc/yardstick/yardstick.conf [DEFAULT] debug = True dispatcher = ${DISPATCHER_TYPE} [dispatcher_file] file_name = ${DISPATCHER_FILE_NAME} [dispatcher_http] timeout = 5 target = ${DISPATCHER_HTTP_TARGET} [dispatcher_influxdb] timeout = 5 target = ${DISPATCHER_INFLUXDB_TARGET} db_name = yardstick username = opnfv password = 0pnfv2015 EOF local failed=0 local start_date local stop_date if [ ${#SUITE_FILES[@]} -gt 0 ]; then start_date=$(date '+%Y-%m-%d %H:%M:%S') for suite in ${SUITE_FILES[*]}; do echo "---------------------------" echo "Running test suite: $suite" echo "---------------------------" if ! yardstick task start --suite $suite; then echo "test suite $suite FAILED"; # Mark the test suite failed but continue # running the remaining test suites. (( ++failed )) fi if [ ${DISPATCHER_TYPE} = file ]; then echo "---------------------------" echo "Dump test suite $suite result" echo "---------------------------" if [ -f ${DISPATCHER_FILE_NAME} ]; then cat ${DISPATCHER_FILE_NAME} else echo "Test result file ${DISPATCHER_FILE_NAME} is not exist" fi fi done stop_date=$(date '+%Y-%m-%d %H:%M:%S') local scenario_status="SUCCESS" if [ $failed -gt 0 ]; then scenario_status="FAILED" fi report $scenario_status $start_date $stop_date if [ $failed -gt 0 ]; then echo "---------------------------" echo "$failed out of ${SUITE_FILES[*]} test suites FAILED" echo "---------------------------" exit 1 fi else echo "---------------------------" echo "Running samples/ping.yaml " echo "---------------------------" if ! yardstick task start samples/ping.yaml; then echo "Yardstick test FAILED" exit 1 fi if [ ${DISPATCHER_TYPE} = file ]; then echo "---------------------------" echo "Dump samples/ping.yaml test result" echo "---------------------------" if [ -f ${DISPATCHER_FILE_NAME} ]; then cat ${DISPATCHER_FILE_NAME} else echo "Test result file ${DISPATCHER_FILE_NAME} is not exist" fi fi fi } main() { GITROOT=$(cd $(dirname $0) && git rev-parse --show-toplevel) cd $GITROOT export YARDSTICK_VERSION=$(git rev-parse HEAD) SUITE_FILES=() # find the test suite files for suite in $TEST_SUITES; do if [ -f $suite ]; then SUITE_FILES+=($suite) else tsdir=$GITROOT/tests/opnfv/test_suites if [ ! -f $tsdir/$suite ]; then echo "Test suite \"$suite\" does not exist" exit 1 fi SUITE_FILES+=($tsdir/$suite) fi done echo echo "========== Running Yardstick CI with following parameters ==========" echo "Script options: ${SCRIPT} $SCRIPT_ARGS" echo "Dispatcher: ${DISPATCHER_TYPE} ${DISPATCHER_FILE_NAME}" echo "YARDSTICK_VERSION: ${YARDSTICK_VERSION}" echo "Number of test suites: ${#SUITE_FILES[@]}" for suite in ${SUITE_FILES[*]}; do echo " $suite" done echo # check if some necessary variables is set if [ -z "$OS_AUTH_URL" ]; then echo "OS_AUTH_URL is unset or empty" exit 1 fi echo "OS_AUTH_URL is $OS_AUTH_URL" echo # check OpenStack services echo "Checking OpenStack services:" for cmd in "glance image-list" "nova list" "heat stack-list"; do echo " checking ${cmd/%\ */} ..." if ! $cmd >/dev/null; then echo "error: command \"$cmd\" failed" exit 1 fi done echo echo "Checking for External network:" for net in $(neutron net-list --router:external True -c name -f value); do echo " external network: $net" done # install yardstick install_yardstick source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh cleanup trap "error_exit" EXIT SIGTERM source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh install_storperf run_test remove_storperf } main