Add filters and arbitrary options

(+ Make config file a bit more readable)
This commit is contained in:
Mathieu Trossevin 2020-06-29 10:04:48 +02:00
parent 129a2b4da7
commit e22703425d
2 changed files with 58 additions and 22 deletions

View file

@ -26,4 +26,23 @@ maxscale_services:
- name: "Splitter"
router: "readwritesplit"
port: 3306
options: []
filters: []
# Full example:
# maxscale_services:
# - name: "ExampleServ"
# router: "readwritesplit"
# port: 3306
# filters:
# - 'ExampleFilter'
# options: []
maxscale_filters: []
# Example:
# maxscale_filters:
# - name: 'ExampleFilter'
# module: 'dbfwfilter'
# options:
# - name: 'rules'
# value: 'examplefilter.txt'

View file

@ -1,43 +1,60 @@
[maxscale]
threads=auto
threads = auto
{% for server in maxscale_mysql_servers %}
[{{ server['name'] }}]
type=server
address={{ server['address'] }}
port={{ server['port']|default(3306) }}
protocol=MariaDBBackend
type = server
address = {{ server['address'] }}
port = {{ server['port']|default(3306) }}
protocol = MariaDBBackend
{% endfor %}
[MariaDB-Monitor]
type=monitor
module=mariadbmon
servers={% for server in maxscale_mysql_servers %}{{ server['name'] }}{% if not loop.last %}, {% endif %}{% endfor %}
type = monitor
module = mariadbmon
servers = {% for server in maxscale_mysql_servers %}{{ server['name'] }}{% if not loop.last %}, {% endif %}{% endfor %}
user={{ maxscale_monitor_user }}
user = {{ maxscale_monitor_user }}
{% if encrypted_maxscale_monitor_password is none %}
password={{ encrypt_maxscale_monitor_password_result['stdout'] }}
password = {{ encrypt_maxscale_monitor_password_result['stdout'] }}
{% else %}
password={{ encrypted_maxscale_monitor_password }}
password = {{ encrypted_maxscale_monitor_password }}
{% endif %}
monitor_interval=2000
monitor_interval = 2000
{% for service in maxscale_services %}
[{{ service['name'] }}-Service]
type=service
router={{ service['router'] }}
cluster=MariaDB-Monitor
user={{ maxscale_mysql_user }}
type = service
router = {{ service['router'] }}
cluster = MariaDB-Monitor
user = {{ maxscale_mysql_user }}
{% if encrypted_maxscale_mysql_password is none %}
password={{ encrypt_maxscale_mysql_password_result['stdout'] }}
password = {{ encrypt_maxscale_mysql_password_result['stdout'] }}
{% else %}
password={{ encrypted_maxscale_mysql_password }}
password = {{ encrypted_maxscale_mysql_password }}
{% endif %}
{% if service['filters'] is defined and service['filters'] %}
filters = {% for _filter in service['filters'] %}{{ _filter }}{% if not loop.last %} | {% endif %}{% endfor %}
{% endif %}
{% if service['options'] is defined %}
{% for option in service['options'] %}
{{ option['name'] }} = {{ option['value'] }}
{% endfor %}
{% endif %}
[{{ service['name'] }}-Listener]
type=listener
service={{ service['name'] }}-Service
protocol=MariaDBClient
port={{ service['port'] }}
type = listener
service = {{ service['name'] }}-Service
protocol = MariaDBClient
port = {{ service['port'] }}
{% endfor %}
{% for _filter in maxscale_filters %}
[{{ _filter['name'] }}]
type = filter
module = {{ _filter['module'] }}
{% for option in _filter['options'] %}
{{ option['name'] }} = {{ option['value'] }}
{% endfor %}
{% endfor %}