diff --git a/tests/setup_gate.sh b/tests/setup_gate.sh
index 0318e838d9..5998459c76 100755
--- a/tests/setup_gate.sh
+++ b/tests/setup_gate.sh
@@ -58,6 +58,10 @@ function prepare_images {
         GATE_IMAGES+=",^cinder"
     fi
 
+    if [[ $SCENARIO == "cells" ]]; then
+        GATE_IMAGES+=",^proxysql"
+    fi
+
     if [[ $SCENARIO == "zun" ]]; then
         GATE_IMAGES+=",^zun,^kuryr,^etcd,^cinder,^iscsid"
         if [[ $BASE_DISTRO != "centos" ]]; then
diff --git a/tests/templates/globals-default.j2 b/tests/templates/globals-default.j2
index 139d2e838d..19b8c9cac2 100644
--- a/tests/templates/globals-default.j2
+++ b/tests/templates/globals-default.j2
@@ -109,6 +109,7 @@ enable_masakari: "yes"
 
 {% if scenario == "cells" %}
 enable_cells: "yes"
+enable_proxysql: "yes"
 {% endif %}
 
 {% if scenario == "mariadb" %}
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2
index f1222e4134..0b9fdcd527 100644
--- a/tests/templates/inventory.j2
+++ b/tests/templates/inventory.j2
@@ -65,7 +65,7 @@ control
 {% for host in hostvars %}
 {% set cell_name = 'cell' ~ loop.index %}
 [{{ cell_name }}]
-{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
+{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }} mariadb_shard_id={{ loop.index0 % 2 }}
 
 [{{ cell_name }}:vars]
 nova_cell_name = {{ cell_name }}
@@ -73,6 +73,7 @@ nova_cell_compute_group = {{ cell_name }}
 nova_cell_conductor_group = {{ cell_name }}
 nova_cell_novncproxy_group = {{ cell_name }}
 nova_novncproxy_port = {{ 6080 + loop.index0 }}
+nova_cell_database_shard_id = {{ loop.index0 % 2 }}
 
 {% endfor %}
 {% endif %}