From 39fa523be425c95c877458af786b9c02979ce0a4 Mon Sep 17 00:00:00 2001
From: Michal Arbet <michal.arbet@ultimum.io>
Date: Thu, 23 May 2024 17:32:54 +0200
Subject: [PATCH] Fix venus when proxysql used

This patch fixes defaults for venus
so it can be used with proxysql turned on

Closes-Bug: #2066937
Change-Id: I0d2eb3ea6c50801a94139312399c8f8df092b4d3
---
 ansible/roles/venus/defaults/main.yml   | 13 +++++++++++++
 ansible/roles/venus/tasks/bootstrap.yml |  4 ++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/ansible/roles/venus/defaults/main.yml b/ansible/roles/venus/defaults/main.yml
index 71c02b0a2..4090b50e3 100644
--- a/ansible/roles/venus/defaults/main.yml
+++ b/ansible/roles/venus/defaults/main.yml
@@ -42,6 +42,19 @@ venus_database_name: "venus"
 venus_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}venus{% endif %}"
 venus_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
 
+####################
+# Database sharding
+####################
+venus_database_shard_root_user: "{% if enable_proxysql | bool %}root_shard_{{ venus_database_shard_id }}{% else %}{{ database_user }}{% endif %}"
+venus_database_shard_id: "{{ mariadb_default_database_shard_id | int }}"
+venus_database_shard:
+  users:
+    - user: "{{ venus_database_user }}"
+      password: "{{ venus_database_password }}"
+  rules:
+    - schema: "{{ venus_database_name }}"
+      shard_id: "{{ venus_database_shard_id }}"
+
 
 ####################
 # Docker
diff --git a/ansible/roles/venus/tasks/bootstrap.yml b/ansible/roles/venus/tasks/bootstrap.yml
index 26f42f345..79d3b500b 100644
--- a/ansible/roles/venus/tasks/bootstrap.yml
+++ b/ansible/roles/venus/tasks/bootstrap.yml
@@ -7,7 +7,7 @@
     module_args:
       login_host: "{{ database_address }}"
       login_port: "{{ database_port }}"
-      login_user: "{{ database_user }}"
+      login_user: "{{ venus_database_shard_root_user }}"
       login_password: "{{ database_password }}"
       name: "{{ venus_database_name }}"
   run_once: True
@@ -23,7 +23,7 @@
     module_args:
       login_host: "{{ database_address }}"
       login_port: "{{ database_port }}"
-      login_user: "{{ database_user }}"
+      login_user: "{{ venus_database_shard_root_user }}"
       login_password: "{{ database_password }}"
       name: "{{ venus_database_user }}"
       password: "{{ venus_database_password }}"
-- 
GitLab