63d72ea7e8
This change enables the use of Docker healthchecks for mariadb-server service. Depends-On: https://review.opendev.org/c/openstack/kolla/+/805613 Change-Id: I893687a0501ea0f281b879df3141a354bff9eca6
143 lines
6.5 KiB
YAML
143 lines
6.5 KiB
YAML
---
|
|
mariadb_services:
|
|
mariadb:
|
|
container_name: mariadb
|
|
group: "{{ mariadb_shard_group }}"
|
|
enabled: true
|
|
image: "{{ mariadb_image_full }}"
|
|
volumes: "{{ mariadb_default_volumes + mariadb_extra_volumes }}"
|
|
dimensions: "{{ mariadb_dimensions }}"
|
|
healthcheck: "{{ mariadb_healthcheck }}"
|
|
environment:
|
|
MYSQL_USERNAME: "{{ mariadb_monitor_user }}"
|
|
MYSQL_PASSWORD: "{% if enable_proxysql | bool %}{{ mariadb_monitor_password }}{% endif %}"
|
|
MYSQL_HOST: "{{ api_interface_address }}"
|
|
AVAILABLE_WHEN_DONOR: "1"
|
|
haproxy:
|
|
mariadb:
|
|
enabled: "{{ enable_mariadb | bool and not enable_external_mariadb_load_balancer | bool }}"
|
|
mode: "tcp"
|
|
port: "{{ database_port }}"
|
|
listen_port: "{{ mariadb_port }}"
|
|
frontend_tcp_extra:
|
|
- "option clitcpka"
|
|
- "timeout client 3600s"
|
|
backend_tcp_extra:
|
|
- "option srvtcpka"
|
|
- "timeout server 3600s"
|
|
- "{% if enable_mariadb_clustercheck | bool %}option httpchk{% endif %}"
|
|
custom_member_list: "{{ internal_haproxy_members.split(';') }}"
|
|
mariadb_external_lb:
|
|
enabled: "{{ enable_external_mariadb_load_balancer | bool }}"
|
|
mode: "tcp"
|
|
port: "{{ database_port }}"
|
|
listen_port: "{{ mariadb_port }}"
|
|
frontend_tcp_extra:
|
|
- "option clitcpka"
|
|
- "timeout client 3600s"
|
|
backend_tcp_extra:
|
|
- "option srvtcpka"
|
|
- "timeout server 3600s"
|
|
custom_member_list: "{{ external_haproxy_members.split(';') }}"
|
|
mariadb-clustercheck:
|
|
container_name: mariadb_clustercheck
|
|
group: "{{ mariadb_shard_group }}"
|
|
enabled: "{{ enable_mariadb_clustercheck | bool }}"
|
|
image: "{{ mariadb_clustercheck_image_full }}"
|
|
volumes: "{{ mariadb_clustercheck_default_volumes + mariadb_clustercheck_extra_volumes }}"
|
|
dimensions: "{{ mariadb_clustercheck_dimensions }}"
|
|
environment:
|
|
MYSQL_USERNAME: "{{ mariadb_monitor_user }}"
|
|
MYSQL_PASSWORD: "{% if enable_proxysql | bool %}{{ mariadb_monitor_password }}{% endif %}"
|
|
MYSQL_HOST: "{{ api_interface_address }}"
|
|
AVAILABLE_WHEN_DONOR: "1"
|
|
|
|
####################
|
|
# Database
|
|
####################
|
|
database_cluster_name: "openstack"
|
|
database_max_timeout: 120
|
|
|
|
####################
|
|
# HAProxy
|
|
####################
|
|
internal_haproxy_members: "{% for host in mariadb_default_database_shard_hosts %} server {{ hostvars[host].ansible_facts.hostname }} {{ 'api' | kolla_address(host) }}:{{ mariadb_port }} check port {% if enable_mariadb_clustercheck | bool %}{{ mariadb_clustercheck_port }}{% else %}{{ mariadb_port }}{% endif %} inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
|
external_haproxy_members: "{% for host in mariadb_default_database_shard_hosts %} server {{ host }} {{ host }}:{{ mariadb_port }} check port {% if enable_mariadb_clustercheck | bool %}{{ mariadb_clustercheck_port }}{% else %}{{ mariadb_port }}{% endif %} inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
|
|
|
####################
|
|
# Docker
|
|
####################
|
|
mariadb_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/mariadb-server"
|
|
mariadb_tag: "{{ openstack_tag }}"
|
|
mariadb_image_full: "{{ mariadb_image }}:{{ mariadb_tag }}"
|
|
|
|
mariadb_clustercheck_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/mariadb-clustercheck"
|
|
mariadb_clustercheck_tag: "{{ mariadb_tag }}"
|
|
mariadb_clustercheck_image_full: "{{ mariadb_clustercheck_image }}:{{ mariadb_clustercheck_tag }}"
|
|
|
|
mariadb_dimensions: "{{ default_container_dimensions }}"
|
|
mariadb_clustercheck_dimensions: "{{ default_container_dimensions }}"
|
|
|
|
mariadb_default_volumes:
|
|
- "{{ node_config_directory }}/mariadb/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
|
- "mariadb:/var/lib/mysql"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
mariadb_clustercheck_default_volumes:
|
|
- "{{ node_config_directory }}/mariadb-clustercheck/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
|
|
mariadb_extra_volumes: "{{ default_extra_volumes }}"
|
|
mariadb_clustercheck_extra_volumes: "{{ default_extra_volumes }}"
|
|
|
|
mariadb_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
mariadb_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
mariadb_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
mariadb_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
mariadb_healthcheck_test: ["CMD-SHELL", "/usr/bin/clustercheck"]
|
|
mariadb_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
mariadb_healthcheck:
|
|
interval: "{{ mariadb_healthcheck_interval }}"
|
|
retries: "{{ mariadb_healthcheck_retries }}"
|
|
start_period: "{{ mariadb_healthcheck_start_period }}"
|
|
test: "{% if mariadb_enable_healthchecks | bool %}{{ mariadb_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ mariadb_healthcheck_timeout }}"
|
|
|
|
########################################
|
|
# Vars used within recover_cluster.yml
|
|
########################################
|
|
mariadb_service: "{{ mariadb_services['mariadb'] }}"
|
|
mariadb_recover_tmp_file_path: "/tmp/kolla_mariadb_recover_inventory_name_{{ mariadb_shard_name }}"
|
|
|
|
###############
|
|
# WSREP options
|
|
###############
|
|
mariadb_wsrep_extra_provider_options: []
|
|
|
|
####################
|
|
# Backups
|
|
####################
|
|
mariabackup_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/mariadb-server"
|
|
mariabackup_tag: "{{ mariadb_tag }}"
|
|
mariabackup_image_full: "{{ mariabackup_image }}:{{ mariabackup_tag }}"
|
|
|
|
mariadb_backup_host: "{{ groups[mariadb_shard_group][0] }}"
|
|
mariadb_backup_database_schema: "PERCONA_SCHEMA"
|
|
mariadb_backup_database_user: "{% if mariadb_loadbalancer == 'haproxy' %}backup{% else %}{{ mariadb_shard_backup_user_prefix }}{{ mariadb_shard_id | string }}{% endif %}"
|
|
mariadb_backup_type: "full"
|
|
mariadb_backup_possible: "{{ mariadb_loadbalancer != 'haproxy' or inventory_hostname in mariadb_default_database_shard_hosts }}"
|
|
|
|
####################
|
|
# Clustercheck
|
|
####################
|
|
enable_mariadb_clustercheck: "{{ enable_haproxy }}"
|
|
|
|
####################
|
|
# Sharding
|
|
####################
|
|
mariadb_shard_database_user: "{% if mariadb_loadbalancer == 'haproxy' %}{{ database_user }}{% else %}{{ mariadb_shard_root_user_prefix }}{{ mariadb_shard_id | string }}{% endif %}"
|
|
mariadb_database_shard: "{{ mariadb_shards_info }}"
|