diff options
33 files changed, 157 insertions, 22 deletions
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 038cfcee6..f80f9463e 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -1212,6 +1212,17 @@ nova_console: "novnc" # Nova Database ####################### nova_database_shard_id: "{{ mariadb_default_database_shard_id | int }}" +nova_cell0_database_shard_id: "{{ nova_database_shard_id | int }}" + +# These are kept for backwards compatibility, as cell0 references them. +nova_database_name: "nova" +nova_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}nova{% endif %}" +nova_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}" + +nova_cell0_database_name: "{{ nova_database_name }}_cell0" +nova_cell0_database_user: "{{ nova_database_user }}" +nova_cell0_database_address: "{{ nova_database_address }}" +nova_cell0_database_password: "{{ nova_database_password }}" ####################### # Horizon options diff --git a/ansible/roles/aodh/defaults/main.yml b/ansible/roles/aodh/defaults/main.yml index c6836f94d..1ea63f5ce 100644 --- a/ansible/roles/aodh/defaults/main.yml +++ b/ansible/roles/aodh/defaults/main.yml @@ -83,9 +83,12 @@ aodh_database_shard: users: - user: "{{ aodh_database_user }}" password: "{{ aodh_database_password }}" + shard_id: "{{ aodh_database_shard_id }}" rules: - schema: "{{ aodh_database_name }}" shard_id: "{{ aodh_database_shard_id }}" + - user: "{{ aodh_database_user }}" + shard_id: "{{ aodh_database_shard_id }}" #################### diff --git a/ansible/roles/barbican/defaults/main.yml b/ansible/roles/barbican/defaults/main.yml index 4c2ab6604..34887bc81 100644 --- a/ansible/roles/barbican/defaults/main.yml +++ b/ansible/roles/barbican/defaults/main.yml @@ -68,9 +68,12 @@ barbican_database_shard: users: - user: "{{ barbican_database_user }}" password: "{{ barbican_database_password }}" + shard_id: "{{ barbican_database_shard_id }}" rules: - schema: "{{ barbican_database_name }}" shard_id: "{{ barbican_database_shard_id }}" + - user: "{{ barbican_database_user }}" + shard_id: "{{ barbican_database_shard_id }}" #################### diff --git a/ansible/roles/blazar/defaults/main.yml b/ansible/roles/blazar/defaults/main.yml index 1b2ebc750..654e89dec 100644 --- a/ansible/roles/blazar/defaults/main.yml +++ b/ansible/roles/blazar/defaults/main.yml @@ -70,9 +70,12 @@ blazar_database_shard: users: - user: "{{ blazar_database_user }}" password: "{{ blazar_database_password }}" + shard_id: "{{ blazar_database_shard_id }}" rules: - schema: "{{ blazar_database_name }}" shard_id: "{{ blazar_database_shard_id }}" + - user: "{{ blazar_database_user }}" + shard_id: "{{ blazar_database_shard_id }}" #################### diff --git a/ansible/roles/cinder/defaults/main.yml b/ansible/roles/cinder/defaults/main.yml index a1b0f321f..db5215628 100644 --- a/ansible/roles/cinder/defaults/main.yml +++ b/ansible/roles/cinder/defaults/main.yml @@ -81,9 +81,12 @@ cinder_database_shard: users: - user: "{{ cinder_database_user }}" password: "{{ cinder_database_password }}" + shard_id: "{{ cinder_database_shard_id }}" rules: - schema: "{{ cinder_database_name }}" shard_id: "{{ cinder_database_shard_id }}" + - user: "{{ cinder_database_user }}" + shard_id: "{{ cinder_database_shard_id }}" #################### diff --git a/ansible/roles/cloudkitty/defaults/main.yml b/ansible/roles/cloudkitty/defaults/main.yml index 98ffe3fbd..b5e6549f6 100644 --- a/ansible/roles/cloudkitty/defaults/main.yml +++ b/ansible/roles/cloudkitty/defaults/main.yml @@ -58,9 +58,12 @@ cloudkitty_database_shard: users: - user: "{{ cloudkitty_database_user }}" password: "{{ cloudkitty_database_password }}" + shard_id: "{{ cloudkitty_database_shard_id }}" rules: - schema: "{{ cloudkitty_database_name }}" shard_id: "{{ cloudkitty_database_shard_id }}" + - user: "{{ cloudkitty_database_user }}" + shard_id: "{{ cloudkitty_database_shard_id }}" #################### diff --git a/ansible/roles/cyborg/defaults/main.yml b/ansible/roles/cyborg/defaults/main.yml index 17ac35877..3b67d0c28 100644 --- a/ansible/roles/cyborg/defaults/main.yml +++ b/ansible/roles/cyborg/defaults/main.yml @@ -63,9 +63,12 @@ cyborg_database_shard: users: - user: "{{ cyborg_database_user }}" password: "{{ cyborg_database_password }}" + shard_id: "{{ cyborg_database_shard_id }}" rules: - schema: "{{ cyborg_database_name }}" shard_id: "{{ cyborg_database_shard_id }}" + - user: "{{ cyborg_database_user }}" + shard_id: "{{ cyborg_database_shard_id }}" #################### diff --git a/ansible/roles/designate/defaults/main.yml b/ansible/roles/designate/defaults/main.yml index b7d85bca2..7072d0d9a 100644 --- a/ansible/roles/designate/defaults/main.yml +++ b/ansible/roles/designate/defaults/main.yml @@ -98,9 +98,12 @@ designate_database_shard: users: - user: "{{ designate_database_user }}" password: "{{ designate_database_password }}" + shard_id: "{{ designate_database_shard_id }}" rules: - schema: "{{ designate_database_name }}" shard_id: "{{ designate_database_shard_id }}" + - user: "{{ designate_database_user }}" + shard_id: "{{ designate_database_shard_id }}" #################### diff --git a/ansible/roles/glance/defaults/main.yml b/ansible/roles/glance/defaults/main.yml index 9f3e41068..86eca172f 100644 --- a/ansible/roles/glance/defaults/main.yml +++ b/ansible/roles/glance/defaults/main.yml @@ -132,9 +132,12 @@ glance_database_shard: users: - user: "{{ glance_database_user }}" password: "{{ glance_database_password }}" + shard_id: "{{ glance_database_shard_id }}" rules: - schema: "{{ glance_database_name }}" shard_id: "{{ glance_database_shard_id }}" + - user: "{{ glance_database_user }}" + shard_id: "{{ glance_database_shard_id }}" #################### diff --git a/ansible/roles/gnocchi/defaults/main.yml b/ansible/roles/gnocchi/defaults/main.yml index af469e803..31a355db5 100644 --- a/ansible/roles/gnocchi/defaults/main.yml +++ b/ansible/roles/gnocchi/defaults/main.yml @@ -66,9 +66,12 @@ gnocchi_database_shard: users: - user: "{{ gnocchi_database_user }}" password: "{{ gnocchi_database_password }}" + shard_id: "{{ gnocchi_database_shard_id }}" rules: - schema: "{{ gnocchi_database_name }}" shard_id: "{{ gnocchi_database_shard_id }}" + - user: "{{ gnocchi_database_user }}" + shard_id: "{{ gnocchi_database_shard_id }}" #################### diff --git a/ansible/roles/grafana/defaults/main.yml b/ansible/roles/grafana/defaults/main.yml index 1b0fee3f1..f0094f2db 100644 --- a/ansible/roles/grafana/defaults/main.yml +++ b/ansible/roles/grafana/defaults/main.yml @@ -42,9 +42,12 @@ grafana_database_shard: users: - user: "{{ grafana_database_user }}" password: "{{ grafana_database_password }}" + shard_id: "{{ grafana_database_shard_id }}" rules: - schema: "{{ grafana_database_name }}" shard_id: "{{ grafana_database_shard_id }}" + - user: "{{ grafana_database_user }}" + shard_id: "{{ grafana_database_shard_id }}" #################### diff --git a/ansible/roles/heat/defaults/main.yml b/ansible/roles/heat/defaults/main.yml index a4e2eb717..355fb090d 100644 --- a/ansible/roles/heat/defaults/main.yml +++ b/ansible/roles/heat/defaults/main.yml @@ -88,9 +88,12 @@ heat_database_shard: users: - user: "{{ heat_database_user }}" password: "{{ heat_database_password }}" + shard_id: "{{ heat_database_shard_id }}" rules: - schema: "{{ heat_database_name }}" shard_id: "{{ heat_database_shard_id }}" + - user: "{{ heat_database_user }}" + shard_id: "{{ heat_database_shard_id }}" #################### diff --git a/ansible/roles/horizon/defaults/main.yml b/ansible/roles/horizon/defaults/main.yml index ada512ddf..52d931ec0 100644 --- a/ansible/roles/horizon/defaults/main.yml +++ b/ansible/roles/horizon/defaults/main.yml @@ -96,9 +96,12 @@ horizon_database_shard: users: - user: "{{ horizon_database_user }}" password: "{{ horizon_database_password }}" + shard_id: "{{ horizon_database_shard_id }}" rules: - schema: "{{ horizon_database_name }}" shard_id: "{{ horizon_database_shard_id }}" + - user: "{{ horizon_database_user }}" + shard_id: "{{ horizon_database_shard_id }}" #################### diff --git a/ansible/roles/ironic/defaults/main.yml b/ansible/roles/ironic/defaults/main.yml index 62e52cea5..cf746a787 100644 --- a/ansible/roles/ironic/defaults/main.yml +++ b/ansible/roles/ironic/defaults/main.yml @@ -125,17 +125,24 @@ ironic_inspector_database_address: "{{ database_address | put_address_in_context #################### ironic_database_shard_root_user: "{% if enable_proxysql | bool %}root_shard_{{ ironic_database_shard_id }}{% else %}{{ database_user }}{% endif %}" ironic_database_shard_id: "{{ mariadb_default_database_shard_id | int }}" +ironic_inspector_database_shard_id: "{{ ironic_database_shard_id | int }}" ironic_database_shard: users: - user: "{{ ironic_database_user }}" password: "{{ ironic_database_password }}" + shard_id: "{{ ironic_database_shard_id }}" - user: "{{ ironic_inspector_database_user }}" password: "{{ ironic_inspector_database_password }}" + shard_id: "{{ ironic_inspector_database_shard_id }}" rules: - schema: "{{ ironic_database_name }}" shard_id: "{{ ironic_database_shard_id }}" - - schema: "{{ ironic_inspector_database_name }}" + - user: "{{ ironic_database_user }}" shard_id: "{{ ironic_database_shard_id }}" + - schema: "{{ ironic_inspector_database_name }}" + shard_id: "{{ ironic_inspector_database_shard_id }}" + - user: "{{ ironic_inspector_database_user }}" + shard_id: "{{ ironic_inspector_database_shard_id }}" #################### diff --git a/ansible/roles/keystone/defaults/main.yml b/ansible/roles/keystone/defaults/main.yml index 5c1775dca..b6a4dcf3d 100644 --- a/ansible/roles/keystone/defaults/main.yml +++ b/ansible/roles/keystone/defaults/main.yml @@ -80,9 +80,12 @@ keystone_database_shard: users: - user: "{{ keystone_database_user }}" password: "{{ keystone_database_password }}" + shard_id: "{{ keystone_database_shard_id }}" rules: - schema: "{{ keystone_database_name }}" shard_id: "{{ keystone_database_shard_id }}" + - user: "{{ keystone_database_user }}" + shard_id: "{{ keystone_database_shard_id }}" #################### diff --git a/ansible/roles/magnum/defaults/main.yml b/ansible/roles/magnum/defaults/main.yml index 1ae383b53..c9103ffbf 100644 --- a/ansible/roles/magnum/defaults/main.yml +++ b/ansible/roles/magnum/defaults/main.yml @@ -61,9 +61,12 @@ magnum_database_shard: users: - user: "{{ magnum_database_user }}" password: "{{ magnum_database_password }}" + shard_id: "{{ magnum_database_shard_id }}" rules: - schema: "{{ magnum_database_name }}" shard_id: "{{ magnum_database_shard_id }}" + - user: "{{ magnum_database_user }}" + shard_id: "{{ magnum_database_shard_id }}" #################### diff --git a/ansible/roles/manila/defaults/main.yml b/ansible/roles/manila/defaults/main.yml index 198b3def5..1252921bd 100644 --- a/ansible/roles/manila/defaults/main.yml +++ b/ansible/roles/manila/defaults/main.yml @@ -76,9 +76,12 @@ manila_database_shard: users: - user: "{{ manila_database_user }}" password: "{{ manila_database_password }}" + shard_id: "{{ manila_database_shard_id }}" rules: - schema: "{{ manila_database_name }}" shard_id: "{{ manila_database_shard_id }}" + - user: "{{ manila_database_user }}" + shard_id: "{{ manila_database_shard_id }}" ##################### diff --git a/ansible/roles/masakari/defaults/main.yml b/ansible/roles/masakari/defaults/main.yml index 3e6edde3a..031388fb6 100644 --- a/ansible/roles/masakari/defaults/main.yml +++ b/ansible/roles/masakari/defaults/main.yml @@ -72,9 +72,12 @@ masakari_database_shard: users: - user: "{{ masakari_database_user }}" password: "{{ masakari_database_password }}" + shard_id: "{{ masakari_database_shard_id }}" rules: - schema: "{{ masakari_database_name }}" shard_id: "{{ masakari_database_shard_id }}" + - user: "{{ masakari_database_user }}" + shard_id: "{{ masakari_database_shard_id }}" #################### diff --git a/ansible/roles/mistral/defaults/main.yml b/ansible/roles/mistral/defaults/main.yml index 686dda05d..c0ee2f980 100644 --- a/ansible/roles/mistral/defaults/main.yml +++ b/ansible/roles/mistral/defaults/main.yml @@ -74,9 +74,12 @@ mistral_database_shard: users: - user: "{{ mistral_database_user }}" password: "{{ mistral_database_password }}" + shard_id: "{{ mistral_database_shard_id }}" rules: - schema: "{{ mistral_database_name }}" shard_id: "{{ mistral_database_shard_id }}" + - user: "{{ mistral_database_user }}" + shard_id: "{{ mistral_database_shard_id }}" #################### diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index e7a00ccad..b679ab74b 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -268,9 +268,12 @@ neutron_database_shard: users: - user: "{{ neutron_database_user }}" password: "{{ neutron_database_password }}" + shard_id: "{{ neutron_database_shard_id }}" rules: - schema: "{{ neutron_database_name }}" shard_id: "{{ neutron_database_shard_id }}" + - user: "{{ neutron_database_user }}" + shard_id: "{{ neutron_database_shard_id }}" #################### diff --git a/ansible/roles/nova-cell/defaults/main.yml b/ansible/roles/nova-cell/defaults/main.yml index 4b023df20..fe7c7e00c 100644 --- a/ansible/roles/nova-cell/defaults/main.yml +++ b/ansible/roles/nova-cell/defaults/main.yml @@ -158,7 +158,7 @@ nova_cell_database_admin_user: "{{ nova_cell_database_shard_root_user }}" nova_cell_database_admin_password: "{{ database_password }}" nova_cell_database_name: "{{ 'nova_' ~ nova_cell_name if nova_cell_name else 'nova' }}" -nova_cell_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}nova{% endif %}" +nova_cell_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% elif nova_cell_name %}nova_{{ nova_cell_name }}{% else %}nova{% endif %}" nova_cell_database_password: '{{ nova_database_password }}' nova_cell_database_address: "{% if nova_cell_database_group is defined %}{{ 'api' | kolla_address(groups[nova_cell_database_group][0]) }}{% else %}{{ database_address }}{% endif %}" nova_cell_database_port: '{{ database_port }}' @@ -185,11 +185,41 @@ nova_api_database_address: "{{ database_address | put_address_in_context('url') # through proxysql shards are same: # - nova_cell_database_shard_id = nova_database_shard_id nova_cell_database_shard_root_user: "{% if enable_proxysql | bool %}root_shard_{{ nova_cell_database_shard_id | default(nova_database_shard_id) }}{% else %}{{ database_user }}{% endif %}" -nova_cell_database_shard: + +nova_cell0_and_default_cell_database_shard: users: - - user: "{{ nova_cell_database_user }}" - password: "{{ nova_cell_database_password }}" - rules: "{% set rules = [] %}{% for host in groups['nova-conductor'] %}{{ rules.append({'schema': 'nova_' ~ hostvars[host]['nova_cell_name'] if hostvars[host]['nova_cell_name'] is defined else 'nova', 'shard_id': hostvars[host]['nova_cell_database_shard_id'] if (hostvars[host]['nova_cell_name'] is defined and hostvars[host]['nova_cell_database_shard_id'] is defined ) else nova_database_shard_id}) }}{% endfor %}{{ rules }}" + - user: "{{ nova_cell0_database_user }}" + password: "{{ nova_cell0_database_password }}" + shard_id: "{{ nova_cell0_database_shard_id }}" + rules: + - schema: "{{ nova_cell0_database_name }}" + shard_id: "{{ nova_cell0_database_shard_id }}" + - user: "{{ nova_cell0_database_user }}" + shard_id: "{{ nova_cell0_database_shard_id }}" + +nova_cell_dynamic_users: | + {% set result = [] %} + {% for host in groups['nova-conductor'] %} + {% if hostvars[host]['nova_cell_name'] is defined and hostvars[host]['nova_cell_database_shard_id'] is defined %} + {% set _ = result.append({'user': 'nova_' ~ hostvars[host]['nova_cell_name'], 'password': nova_cell_database_password, 'shard_id': hostvars[host]['nova_cell_database_shard_id']}) %} + {% endif %} + {% endfor %} + {{ result }} + +nova_cell_dynamic_rules: | + {% set result = [] %} + {% for host in groups['nova-conductor'] %} + {% if hostvars[host]['nova_cell_name'] is defined and hostvars[host]['nova_cell_database_shard_id'] is defined %} + {% set _ = result.append({'schema': 'nova_' ~ hostvars[host]['nova_cell_name'], 'shard_id': hostvars[host]['nova_cell_database_shard_id']}) %} + {% set _ = result.append({'user': 'nova_' ~ hostvars[host]['nova_cell_name'], 'shard_id': hostvars[host]['nova_cell_database_shard_id']}) %} + {% endif %} + {% endfor %} + {{ result }} + +nova_cell_database_shard: + users: "{{ nova_cell0_and_default_cell_database_shard.users + (nova_cell_dynamic_users | from_yaml | default([])) }}" + rules: "{{ nova_cell0_and_default_cell_database_shard.rules + (nova_cell_dynamic_rules | from_yaml | default([])) }}" + #################### # RabbitMQ diff --git a/ansible/roles/nova/defaults/main.yml b/ansible/roles/nova/defaults/main.yml index 780d262f3..e445e2cd1 100644 --- a/ansible/roles/nova/defaults/main.yml +++ b/ansible/roles/nova/defaults/main.yml @@ -86,16 +86,6 @@ nova_config_validation: #################### # Database #################### -# These are kept for backwards compatibility, as cell0 references them. -nova_database_name: "nova" -nova_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}nova{% endif %}" -nova_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}" - -nova_cell0_database_name: "{{ nova_database_name }}_cell0" -nova_cell0_database_user: "{{ nova_database_user }}" -nova_cell0_database_address: "{{ nova_database_address }}" -nova_cell0_database_password: "{{ nova_database_password }}" - nova_api_database_name: "nova_api" nova_api_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}nova_api{% endif %}" nova_api_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}" @@ -106,17 +96,14 @@ nova_api_database_address: "{{ database_address | put_address_in_context('url') nova_database_shard_root_user: "{% if enable_proxysql | bool %}root_shard_{{ nova_database_shard_id }}{% else %}{{ database_user }}{% endif %}" nova_database_shard: users: - - user: "{{ nova_database_user }}" - password: "{{ nova_database_password }}" - user: "{{ nova_api_database_user }}" password: "{{ nova_api_database_password }}" - rules: - - schema: "{{ nova_database_name }}" - shard_id: "{{ nova_database_shard_id }}" - - schema: "{{ nova_cell0_database_name }}" shard_id: "{{ nova_database_shard_id }}" + rules: - schema: "{{ nova_api_database_name }}" shard_id: "{{ nova_database_shard_id }}" + - user: "{{ nova_api_database_user }}" + shard_id: "{{ nova_database_shard_id }}" #################### diff --git a/ansible/roles/octavia/defaults/main.yml b/ansible/roles/octavia/defaults/main.yml index 3085f0084..2fd28bd1f 100644 --- a/ansible/roles/octavia/defaults/main.yml +++ b/ansible/roles/octavia/defaults/main.yml @@ -92,13 +92,19 @@ octavia_database_shard: users: - user: "{{ octavia_database_user }}" password: "{{ octavia_database_password }}" + shard_id: "{{ octavia_database_shard_id }}" - user: "{{ octavia_persistence_database_user }}" password: "{{ octavia_persistence_database_password }}" + shard_id: "{{ octavia_persistence_database_shard_id }}" rules: - schema: "{{ octavia_database_name }}" shard_id: "{{ octavia_database_shard_id }}" + - user: "{{ octavia_database_user }}" + shard_id: "{{ octavia_database_shard_id }}" - schema: "{{ octavia_persistence_database_name }}" shard_id: "{{ octavia_persistence_database_shard_id }}" + - user: "{{ octavia_persistence_database_user }}" + shard_id: "{{ octavia_persistence_database_shard_id }}" #################### diff --git a/ansible/roles/placement/defaults/main.yml b/ansible/roles/placement/defaults/main.yml index 6c58c3339..c09deccee 100644 --- a/ansible/roles/placement/defaults/main.yml +++ b/ansible/roles/placement/defaults/main.yml @@ -53,9 +53,12 @@ placement_database_shard: users: - user: "{{ placement_database_user }}" password: "{{ placement_database_password }}" + shard_id: "{{ placement_database_shard_id }}" rules: - schema: "{{ placement_database_name }}" shard_id: "{{ placement_database_shard_id }}" + - user: "{{ placement_database_user }}" + shard_id: "{{ placement_database_shard_id }}" #################### diff --git a/ansible/roles/proxysql-config/templates/rules.yaml.j2 b/ansible/roles/proxysql-config/templates/rules.yaml.j2 index 18d443b8e..c4ff11e4e 100644 --- a/ansible/roles/proxysql-config/templates/rules.yaml.j2 +++ b/ansible/roles/proxysql-config/templates/rules.yaml.j2 @@ -11,8 +11,16 @@ mysql_query_rules: {% for rule in proxysql_project_database_shard['rules'] %} {% set WRITER_GROUP = rule['shard_id'] | int * 10 %} +{% if rule['schema'] is defined %} - schemaname: "{{ rule['schema'] }}" destination_hostgroup: {{ WRITER_GROUP }} apply: 1 active: 1 +{% endif %} +{% if rule['user'] is defined %} + - username: "{{ rule['user'] }}" + destination_hostgroup: {{ WRITER_GROUP }} + apply: 1 + active: 1 +{% endif %} {% endfor %} diff --git a/ansible/roles/skyline/defaults/main.yml b/ansible/roles/skyline/defaults/main.yml index 1363748b9..a567f5c7a 100644 --- a/ansible/roles/skyline/defaults/main.yml +++ b/ansible/roles/skyline/defaults/main.yml @@ -73,9 +73,12 @@ skyline_database_shard: users: - user: "{{ skyline_database_user }}" password: "{{ skyline_database_password }}" + shard_id: "{{ skyline_database_shard_id }}" rules: - schema: "{{ skyline_database_name }}" shard_id: "{{ skyline_database_shard_id }}" + - user: "{{ skyline_database_user }}" + shard_id: "{{ skyline_database_shard_id }}" #################### # Docker diff --git a/ansible/roles/tacker/defaults/main.yml b/ansible/roles/tacker/defaults/main.yml index 111e00d88..58b351921 100644 --- a/ansible/roles/tacker/defaults/main.yml +++ b/ansible/roles/tacker/defaults/main.yml @@ -58,9 +58,12 @@ tacker_database_shard: users: - user: "{{ tacker_database_user }}" password: "{{ tacker_database_password }}" + shard_id: "{{ tacker_database_shard_id }}" rules: - schema: "{{ tacker_database_name }}" shard_id: "{{ tacker_database_shard_id }}" + - user: "{{ tacker_database_user }}" + shard_id: "{{ tacker_database_shard_id }}" ######## diff --git a/ansible/roles/trove/defaults/main.yml b/ansible/roles/trove/defaults/main.yml index e1987b708..05767346b 100644 --- a/ansible/roles/trove/defaults/main.yml +++ b/ansible/roles/trove/defaults/main.yml @@ -68,9 +68,12 @@ trove_database_shard: users: - user: "{{ trove_database_user }}" password: "{{ trove_database_password }}" + shard_id: "{{ trove_database_shard_id }}" rules: - schema: "{{ trove_database_name }}" shard_id: "{{ trove_database_shard_id }}" + - user: "{{ trove_database_user }}" + shard_id: "{{ trove_database_shard_id }}" #################### diff --git a/ansible/roles/venus/defaults/main.yml b/ansible/roles/venus/defaults/main.yml index f9da371d7..193b7580b 100644 --- a/ansible/roles/venus/defaults/main.yml +++ b/ansible/roles/venus/defaults/main.yml @@ -55,9 +55,12 @@ venus_database_shard: users: - user: "{{ venus_database_user }}" password: "{{ venus_database_password }}" + shard_id: "{{ venus_database_shard_id }}" rules: - schema: "{{ venus_database_name }}" shard_id: "{{ venus_database_shard_id }}" + - user: "{{ venus_database_user }}" + shard_id: "{{ venus_database_shard_id }}" #################### diff --git a/ansible/roles/watcher/defaults/main.yml b/ansible/roles/watcher/defaults/main.yml index 1cd9ccd2b..480a5f00b 100644 --- a/ansible/roles/watcher/defaults/main.yml +++ b/ansible/roles/watcher/defaults/main.yml @@ -66,9 +66,12 @@ watcher_database_shard: users: - user: "{{ watcher_database_user }}" password: "{{ watcher_database_password }}" + shard_id: "{{ watcher_database_shard_id }}" rules: - schema: "{{ watcher_database_name }}" shard_id: "{{ watcher_database_shard_id }}" + - user: "{{ watcher_database_user }}" + shard_id: "{{ watcher_database_shard_id }}" #################### diff --git a/ansible/roles/zun/defaults/main.yml b/ansible/roles/zun/defaults/main.yml index d01eafbd3..82bb6e4cc 100644 --- a/ansible/roles/zun/defaults/main.yml +++ b/ansible/roles/zun/defaults/main.yml @@ -87,9 +87,12 @@ zun_database_shard: users: - user: "{{ zun_database_user }}" password: "{{ zun_database_password }}" + shard_id: "{{ zun_database_shard_id }}" rules: - schema: "{{ zun_database_name }}" shard_id: "{{ zun_database_shard_id }}" + - user: "{{ zun_database_user }}" + shard_id: "{{ zun_database_shard_id }}" #################### diff --git a/releasenotes/notes/bug-2112339-3f67eefc7f0062cc.yaml b/releasenotes/notes/bug-2112339-3f67eefc7f0062cc.yaml new file mode 100644 index 000000000..d01515854 --- /dev/null +++ b/releasenotes/notes/bug-2112339-3f67eefc7f0062cc.yaml @@ -0,0 +1,10 @@ +--- +fixes: + - | + Improves query routing in ProxySQL by setting ``default_hostgroup`` + for all database users and by adding user-based routing rules in + addition to schema-based rules. This enhancement also fixes incorrect + routing of queries that are executed before a schema is selected, + such as ``SET AUTOCOMMIT`` or ``ROLLBACK``, which could otherwise be sent + to a non-existent hostgroup. + `LP#2112339 <https://launchpad.net/bugs/2112339>`__ diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index 5cad12e14..1b771b621 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -210,6 +210,7 @@ voting: false files: !inherit - ^ansible/roles/nova/ + - ^ansible/roles/nova-cell/ - ^ansible/roles/loadbalancer/ - ^tests/test-core-openstack.sh - ^tests/test-proxysql.sh |
