blob: f7a8b0a08662de5f1bb9dcd18984723598ddaa3c (
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
|
# This configuration file is used to configure proxysql.
#
# Admin_variables: https://proxysql.com/documentation/global-variables/admin-variables
# Mysql_variables: https://proxysql.com/documentation/global-variables/mysql-variables
# Mysql_servers: https://proxysql.com/documentation/main-runtime/#mysql_servers
# Mysql_galera_hostgroups: https://proxysql.com/documentation/main-runtime/#mysql_galera_hostgroups
datadir: "/var/lib/proxysql"
errorlog: "/var/log/kolla/proxysql/proxysql.log"
admin_variables:
admin_credentials: "{{ proxysql_admin_user }}:{{ proxysql_admin_password }}"
mysql_ifaces: "{{ api_interface_address | put_address_in_context('url') }}:{{ proxysql_admin_port }};{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ proxysql_admin_port }};/var/lib/kolla/proxysql/admin.sock"
stats_credentials: "{{ proxysql_stats_user }}:{{ proxysql_stats_password }}"
restapi_enabled: "{{ enable_prometheus_proxysql_exporter | bool }}"
restapi_port: "{{ proxysql_prometheus_exporter_port }}"
prometheus_memory_metrics_interval: "{{ proxysql_prometheus_exporter_memory_metrics_interval }}"
mysql_variables:
threads: {{ proxysql_workers }}
max_connections: {{ proxysql_max_connections }}
interfaces: "{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ database_port }}"
{% if mariadb_connect_retries_delay | length > 0 %}
connect_retries_delay: {{ mariadb_connect_retries_delay }}
{% endif %}
{% if mariadb_connect_retries_on_failure | length > 0 %}
connect_retries_on_failure: {{ mariadb_connect_retries_on_failure }}
{% endif %}
{% if mariadb_connect_timeout_client | length > 0 %}
connect_timeout_client: {{ mariadb_connect_timeout_client }}
{% endif %}
{% if mariadb_connect_timeout_server | length > 0 %}
connect_timeout_server: {{ mariadb_connect_timeout_server }}
{% endif %}
{% if mariadb_connect_timeout_server_max | length > 0 %}
connect_timeout_server_max: {{ mariadb_connect_timeout_server_max }}
{% endif %}
{% if mariadb_monitor_connect_interval | length > 0 %}
monitor_connect_interval: {{ mariadb_monitor_connect_interval }}
{% endif %}
{% if mariadb_monitor_connect_timeout | length > 0 %}
monitor_connect_timeout: {{ mariadb_monitor_connect_timeout }}
{% endif %}
{% if mariadb_monitor_galera_healthcheck_interval | length > 0 %}
monitor_galera_healthcheck_interval: "{{ mariadb_monitor_galera_healthcheck_interval }}"
{% endif %}
{% if mariadb_monitor_galera_healthcheck_timeout | length > 0 %}
monitor_galera_healthcheck_timeout: "{{ mariadb_monitor_galera_healthcheck_timeout }}"
{% endif %}
{% if mariadb_monitor_galera_healthcheck_max_timeout_count | length > 0 %}
monitor_galera_healthcheck_max_timeout_count: "{{ mariadb_monitor_galera_healthcheck_max_timeout_count }}"
{% endif %}
{% if mariadb_monitor_ping_interval | length > 0 %}
monitor_ping_interval: "{{ mariadb_monitor_ping_interval }}"
{% endif %}
{% if mariadb_monitor_ping_timeout | length > 0 %}
monitor_ping_timeout: "{{ mariadb_monitor_ping_timeout }}"
{% endif %}
{% if mariadb_monitor_ping_max_failures | length > 0 %}
monitor_ping_max_failures: "{{ mariadb_monitor_ping_max_failures }}"
{% endif %}
{% if mariadb_monitor_read_only_interval | length > 0 %}
monitor_read_only_interval: {{ mariadb_monitor_read_only_interval }}
{% endif %}
monitor_username: "{{ mariadb_monitor_user }}"
monitor_password: "{{ mariadb_monitor_password }}"
{% if mariadb_shun_on_failures | length > 0 %}
shun_on_failures: {{ mariadb_shun_on_failures }}
{% endif %}
{% if mariadb_verbose_query_error | bool %}
verbose_query_error: true
{% endif %}
{% if database_enable_tls_backend | bool %}
ssl_p2s_ca: "/etc/proxysql/certs/root.crt"
ssl_p2s_cert: "/etc/proxysql/certs/mariadb-cert.pem"
ssl_p2s_key: "/etc/proxysql/certs/mariadb-key.pem"
have_ssl: true
{% endif %}
mysql_servers:
{% for shard_id, shard in mariadb_shards_info.shards.items() %}
{% set _writer_group = shard_id | int * 10 %}
{% for host in shard.hosts %}
{% if loop.first %}
{% set _weight = 100 %}
{% else %}
{% set _weight = 10 %}
{% endif %}
- address: "{{ 'api' | kolla_address(host) }}"
port : {{ mariadb_port }}
hostgroup : {{ _writer_group }}
max_connections: {{ proxysql_backend_max_connections }}
max_replication_lag: {{ proxysql_backend_max_replication_lag }}
weight : {{ _weight }}
comment : "Writer {{ host }}"
{% if database_enable_tls_backend | bool %}
use_ssl: 1
{% endif %}
{% endfor %}
{% endfor %}
mysql_galera_hostgroups:
{% for shard_id, shard in mariadb_shards_info.shards.items() %}
{% set _writer_group = shard_id | int * 10 %}
{% set _backup_writer_group = _writer_group | int + 1 %}
{% set _reader_group = _backup_writer_group | int + 1 %}
{% set _offline_group = _reader_group | int + 1 %}
- writer_hostgroup: {{ _writer_group }}
backup_writer_hostgroup: {{ _backup_writer_group }}
reader_hostgroup: {{ _reader_group }}
offline_hostgroup: {{ _offline_group }}
max_connections: {{ proxysql_backend_max_connections }}
max_writers: 1
writer_is_also_reader: 0
comment: "Galera cluster for shard {{ shard_id }}"
{% endfor %}
|