)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"7608b974_76a69dc0","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"updated":"2021-01-26 11:15:45.000000000","message":"It does add a shard_1 user, and keep the existing root user active. Probably better to stick with just one. Keeping root would be less disruptive.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ee43aca8c6fd652f7abf3971bdf3b7c61a69157e","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"8d406c3b_76e9eed9","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"1df6f889_bff2cfc7","updated":"2021-01-26 12:34:23.000000000","message":"Aye, I asked Michal the same yesterday on IRC. It seems this way it is easier for him to create databases on correct shards. Perhaps it could be done differently (and I would like it to be done differently for this very reason 😊 ).","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"7a47f54e0f837110abcc13350b491f972805deb4","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"66b4c12f_5590edb8","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"22d7dde0_ce392cac","updated":"2021-01-26 17:54:36.000000000","message":"\u003eI think my question was a little different than Radek\u0027s. Perhaps \u003eI should rephrase as pseudocode:\n\n\u003edatabase_user: \"{{ shard_user if enable_proxysql | bool else \u0027root\u0027 }}\"\n\n\u003eThis means that if proxysql is not in use, existing deployments \u003ecan continue to use the root user without worrying about shards. \u003eIt also means we don\u0027t have user accounts to clean up, and users \u003edon\u0027t have to change their behaviour if they use the root \u003eaccount.\n\n\u003eOn the query vs. user rules question, I wonder if there is any \u003eperformance difference.\n\nI have it implemented exactly as you said, but it is in another commit to be logically divided, example for aodh : \n\nhttps://review.opendev.org/c/openstack/kolla-ansible/+/770216/20/ansible/roles/aodh/defaults/main.yml\n\nhttps://review.opendev.org/c/openstack/kolla-ansible/+/770216/20/ansible/roles/aodh/tasks/bootstrap.yml\n\n\u003e Read through https://proxysql.com/documentation/how-to-setup-proxysql-sharding/.\n\u003e \n\u003e Schema based sharding - is the schema simply the name of the DB? Wouldn\u0027t that be ideal?\n\u003e \n\u003e There are concerns about performance with very large numbers of schema, but I don\u0027t think we\u0027re close to that yet: https://proxysql.com/blog/new-schemaname-routing-algorithm/\n\nWell, I\u0027m using schema sharding, yes of course, but I\u0027m using it to reach destination database .. is is in subrole which is setuping proxysql, users and schemas ...\n\nBut this is not that case , as I said several times .. user based routing (special root users for shard ) is for creating users and databases .. You can\u0027t use schema sharding ..if you don\u0027t have a schema right ? (on clean deployment)","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"82647da716313ce5f4d2f304c9998feff13ec576","unresolved":false,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"14ed3301_95420d22","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"66b4c12f_5590edb8","updated":"2021-02-17 12:55:43.000000000","message":"I think this was discussed and doesn\u0027t need change, let me know if my feelings are not correct.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"76aeac0a2eb0f715f673702c55534fcfc2f792f7","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"1df6f889_bff2cfc7","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"7608b974_76a69dc0","updated":"2021-01-26 11:45:05.000000000","message":"I think this comment still applies.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4553ff1cade5ef1391d8b4eefe422b116e075c19","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"bb305a7f_253a0d5e","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"8d406c3b_76e9eed9","updated":"2021-01-26 16:33:30.000000000","message":"\u003e Aye, I asked Michal the same yesterday on IRC. It seems this way it is easier for him to create databases on correct shards. Perhaps it could be done differently (and I would like it to be done differently for this very reason 😊 ).\n\nWell, this is required only because kolla-ansible is creating users and databases in services\u0027s bootstrap playbook against *LB VIP* with database_user, database_password credentials.\n\nThis approach above definitely makes sense, because it is ensured that DB is available (except all DB backends are down of course :) )\n\nProvided that you agree with the above, there are two approaches to fullfill that: \n\n1. Have special user for shard ( proxysql\u0027s mysql_users: user -\u003e default_hostgroup)\n2. Have rules for creating resources:\n   - CREATE DATABASE neutron -\u003e shard X (defined in group_vars)\n   - CREATE DATABASE nova -\u003e shard Y (defined in groups_vars)\n   - CREATE USER neutron -\u003e shard X\n   .\n   .\n   .\n   (mysql_query_rules -\u003e destination_hostgroup)\n\nRead this -\u003e https://proxysql.com/documentation/how-to-setup-proxysql-sharding/\n\nIf you think that this is not big deal, another approach is to : \n\n- Delegate to host in groups[database_shard_id][0] (for example)\n\nIn this approach we should ensure that endpoint will be live, so : \n\n- we have to check liveness of hosts in shard group ..and take first one ( for example )\n- Or don\u0027t worry about it\n\nHope that I explain good.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b65553b65b06366f115e1945ec0acf8f04d6969c","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"df09ea01_400b3e47","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"bb305a7f_253a0d5e","updated":"2021-01-26 16:53:49.000000000","message":"I think my question was a little different than Radek\u0027s. Perhaps I should rephrase as pseudocode:\n\ndatabase_user: \"{{ shard_user if enable_proxysql | bool else \u0027root\u0027 }}\"\n\nThis means that if proxysql is not in use, existing deployments can continue to use the root user without worrying about shards. It also means we don\u0027t have user accounts to clean up, and users don\u0027t have to change their behaviour if they use the root account.\n\nOn the query vs. user rules question, I wonder if there is any performance difference.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7204974f35427944a61947dc6f03c9ba29c4db58","unresolved":true,"context_lines":[{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027database_shard_id\u0027 is set to 1 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if shard \u003d\u003d 1 as it is now."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"22d7dde0_ce392cac","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":56},"in_reply_to":"df09ea01_400b3e47","updated":"2021-01-26 17:02:37.000000000","message":"Read through https://proxysql.com/documentation/how-to-setup-proxysql-sharding/.\n\nSchema based sharding - is the schema simply the name of the DB? Wouldn\u0027t that be ideal?\n\nThere are concerns about performance with very large numbers of schema, but I don\u0027t think we\u0027re close to that yet: https://proxysql.com/blog/new-schemaname-routing-algorithm/","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Example of inventory:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[mariadb]"},{"line_number":45,"context_line":"server1"},{"line_number":46,"context_line":"server2"},{"line_number":47,"context_line":"server3 database_shard_id\u003d2"},{"line_number":48,"context_line":"server4 database_shard_id\u003d2"},{"line_number":49,"context_line":"server5 database_shard_id\u003d2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"c3bd29dc_49e191be","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":7},"updated":"2021-01-26 11:15:45.000000000","message":"What happens to these two?","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"82647da716313ce5f4d2f304c9998feff13ec576","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Example of inventory:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[mariadb]"},{"line_number":45,"context_line":"server1"},{"line_number":46,"context_line":"server2"},{"line_number":47,"context_line":"server3 database_shard_id\u003d2"},{"line_number":48,"context_line":"server4 database_shard_id\u003d2"},{"line_number":49,"context_line":"server5 database_shard_id\u003d2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"3a03e7cf_92b3c282","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":7},"in_reply_to":"526fab60_281d8399","updated":"2021-02-17 12:55:43.000000000","message":"Done","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4553ff1cade5ef1391d8b4eefe422b116e075c19","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Example of inventory:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[mariadb]"},{"line_number":45,"context_line":"server1"},{"line_number":46,"context_line":"server2"},{"line_number":47,"context_line":"server3 database_shard_id\u003d2"},{"line_number":48,"context_line":"server4 database_shard_id\u003d2"},{"line_number":49,"context_line":"server5 database_shard_id\u003d2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"526fab60_281d8399","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":7},"in_reply_to":"c3bd29dc_49e191be","updated":"2021-01-26 16:33:30.000000000","message":"In my initial proposal this two servers will have database_shard_id \u003d 1 ( there is grouping in site.yml where it is set to default(\u00271\u0027) if not defined)","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-26 12:10:13 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor mariadb to support shards"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Kolla-ansible is currently installing mariadb"},{"line_number":10,"context_line":"cluster on hosts defined in group[\u0027mariadb\u0027]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"fb75c573_8d8d47dd","line":7,"range":{"start_line":7,"start_character":28,"end_line":7,"end_character":34},"updated":"2021-03-09 14:48:09.000000000","message":"I think I\u0027d prefer the more general term cluster here, but it\u0027s probably a bit late and disruptive to request that change.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-26 12:10:13 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor mariadb to support shards"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Kolla-ansible is currently installing mariadb"},{"line_number":10,"context_line":"cluster on hosts defined in group[\u0027mariadb\u0027]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"b7d7557c_80e6cf10","line":7,"range":{"start_line":7,"start_character":28,"end_line":7,"end_character":34},"in_reply_to":"8cbf4783_2985478f","updated":"2021-03-10 13:42:20.000000000","message":"It\u0027s more the term shard that I object to, since it would be possible to deploy completely separate DB clusters with this patch. This could be useful for Cells. TBH I don\u0027t care that much 😊","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-26 12:10:13 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor mariadb to support shards"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Kolla-ansible is currently installing mariadb"},{"line_number":10,"context_line":"cluster on hosts defined in group[\u0027mariadb\u0027]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"0042a673_2639208b","line":7,"range":{"start_line":7,"start_character":28,"end_line":7,"end_character":34},"in_reply_to":"b7d7557c_80e6cf10","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fc53a743fd336da0565c8e6c7cec833044b0296","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-26 12:10:13 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor mariadb to support shards"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Kolla-ansible is currently installing mariadb"},{"line_number":10,"context_line":"cluster on hosts defined in group[\u0027mariadb\u0027]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"8cbf4783_2985478f","line":7,"range":{"start_line":7,"start_character":28,"end_line":7,"end_character":34},"in_reply_to":"fb75c573_8d8d47dd","updated":"2021-03-10 12:28:59.000000000","message":"I think \u0027shard\u0027 should present, I can change to \u0027shard clusters\u0027.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"08fdaa661d719a2a0fecccb14c467a47bb751c7c","unresolved":true,"context_lines":[{"line_number":26,"context_line":"\u0027mariadb_shard_id\u0027."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"72ced8ee_c37ef4ed","line":29,"updated":"2021-03-25 11:40:56.000000000","message":"Only if not using haproxy","commit_id":"bcc4401d3d63876277422a8ef54cb36e1c8c9728"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\u0027mariadb_shard_id\u0027."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"It also adding special user \u0027shard_X\u0027 which will be used"},{"line_number":29,"context_line":"for creating users and databases."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"aabd1fac_77944dce","line":29,"in_reply_to":"72ced8ee_c37ef4ed","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"bcc4401d3d63876277422a8ef54cb36e1c8c9728"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"08fdaa661d719a2a0fecccb14c467a47bb751c7c","unresolved":true,"context_lines":[{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027mariadb_shard_id\u0027 is set to 0 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if sharding is not used."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"227c09b1_b29ec681","line":34,"updated":"2021-03-25 11:40:56.000000000","message":"Please add a note about the behaviour with multiple shards and HAProxy - only the default shard gets load balanced.","commit_id":"bcc4401d3d63876277422a8ef54cb36e1c8c9728"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":31,"context_line":"This patch will not affect user which has all databases"},{"line_number":32,"context_line":"on same db cluster on hosts in group \u0027mariadb\u0027, host"},{"line_number":33,"context_line":"variable \u0027mariadb_shard_id\u0027 is set to 0 if not defined."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Mariadb\u0027s task in loadbalancer.yml (haproxy) is changed to"},{"line_number":36,"context_line":"apply only if sharding is not used."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"17c58c9c_4e1a356b","line":34,"in_reply_to":"227c09b1_b29ec681","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"bcc4401d3d63876277422a8ef54cb36e1c8c9728"}],"ansible/group_vars/all.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":361,"context_line":"mariadb_ist_port: \"4568\""},{"line_number":362,"context_line":"mariadb_sst_port: \"4444\""},{"line_number":363,"context_line":"mariadb_clustercheck_port: \"4569\""},{"line_number":364,"context_line":"mariadb_monitor_user: \"haproxy\""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"masakari_api_port: \"15868\""},{"line_number":367,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"d614fabd_acdefee5","line":364,"range":{"start_line":364,"start_character":0,"end_line":364,"end_character":31},"updated":"2021-03-10 13:42:20.000000000","message":"Remove me.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cc175d96a97427802e8c74e944140168b8a1c295","unresolved":false,"context_lines":[{"line_number":361,"context_line":"mariadb_ist_port: \"4568\""},{"line_number":362,"context_line":"mariadb_sst_port: \"4444\""},{"line_number":363,"context_line":"mariadb_clustercheck_port: \"4569\""},{"line_number":364,"context_line":"mariadb_monitor_user: \"haproxy\""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"masakari_api_port: \"15868\""},{"line_number":367,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3743a23d_4e928ed4","line":364,"range":{"start_line":364,"start_character":0,"end_line":364,"end_character":31},"in_reply_to":"8d1a9bb3_d7432c96","updated":"2021-03-18 13:32:18.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":true,"context_lines":[{"line_number":361,"context_line":"mariadb_ist_port: \"4568\""},{"line_number":362,"context_line":"mariadb_sst_port: \"4444\""},{"line_number":363,"context_line":"mariadb_clustercheck_port: \"4569\""},{"line_number":364,"context_line":"mariadb_monitor_user: \"haproxy\""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"masakari_api_port: \"15868\""},{"line_number":367,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"8d1a9bb3_d7432c96","line":364,"range":{"start_line":364,"start_character":0,"end_line":364,"end_character":31},"in_reply_to":"d614fabd_acdefee5","updated":"2021-03-17 23:41:07.000000000","message":"fixed usage of variable, not removed.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e6b2eae314e798c3d55d27238f3068ce525b369b","unresolved":true,"context_lines":[{"line_number":362,"context_line":"mariadb_ist_port: \"4568\""},{"line_number":363,"context_line":"mariadb_sst_port: \"4444\""},{"line_number":364,"context_line":"mariadb_clustercheck_port: \"4569\""},{"line_number":365,"context_line":"mariadb_monitor_user: \"haproxy\""},{"line_number":366,"context_line":"mariadb_default_database_shard_id: 0"},{"line_number":367,"context_line":"mariadb_default_database_shard_hosts: \"{% set default_shard \u003d [] %}{% for host in groups[\u0027mariadb\u0027] %}{% if hostvars[host][\u0027mariadb_shard_id\u0027] is not defined or hostvars[host][\u0027mariadb_shard_id\u0027] \u003d\u003d mariadb_default_database_shard_id %}{{ default_shard.append(host) }}{% endif %}{% endfor %}{{ default_shard }}\""},{"line_number":368,"context_line":"mariadb_loadbalancer: \"haproxy\""}],"source_content_type":"text/x-yaml","patch_set":56,"id":"4935bbef_144131f7","line":365,"range":{"start_line":365,"start_character":0,"end_line":365,"end_character":20},"updated":"2021-04-09 13:22:54.000000000","message":"this should be used in wsrep-notify.sh.j2","commit_id":"09b3c6ca07ccd2dd7ee0cf5e3dd96b36192206b4"}],"ansible/mariadb_recovery.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  hosts: mariadb"},{"line_number":4,"context_line":"  gather_facts: false"},{"line_number":5,"context_line":"  tasks:"},{"line_number":6,"context_line":"    - group_by:"},{"line_number":7,"context_line":"        key: \"shard_{{ database_shard_id | default(\u00271\u0027) }}\""},{"line_number":8,"context_line":"  tags: always"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9eee5b34_8363ac77","line":6,"updated":"2021-01-26 11:15:45.000000000","message":"Needs a name","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"82647da716313ce5f4d2f304c9998feff13ec576","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  hosts: mariadb"},{"line_number":4,"context_line":"  gather_facts: false"},{"line_number":5,"context_line":"  tasks:"},{"line_number":6,"context_line":"    - group_by:"},{"line_number":7,"context_line":"        key: \"shard_{{ database_shard_id | default(\u00271\u0027) }}\""},{"line_number":8,"context_line":"  tags: always"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"5250ca99_3df5121c","line":6,"in_reply_to":"9eee5b34_8363ac77","updated":"2021-02-17 12:55:43.000000000","message":"Done","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":4,"context_line":"  gather_facts: false"},{"line_number":5,"context_line":"  tasks:"},{"line_number":6,"context_line":"    - group_by:"},{"line_number":7,"context_line":"        key: \"shard_{{ database_shard_id | default(\u00271\u0027) }}\""},{"line_number":8,"context_line":"  tags: always"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Recover mariadb"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"cb1b46f6_45d38733","line":7,"range":{"start_line":7,"start_character":14,"end_line":7,"end_character":20},"updated":"2021-01-26 11:15:45.000000000","message":"Possibly, mariadb_shard_?","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"82647da716313ce5f4d2f304c9998feff13ec576","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  gather_facts: false"},{"line_number":5,"context_line":"  tasks:"},{"line_number":6,"context_line":"    - group_by:"},{"line_number":7,"context_line":"        key: \"shard_{{ database_shard_id | default(\u00271\u0027) }}\""},{"line_number":8,"context_line":"  tags: always"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Recover mariadb"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"b2cf8f03_632d2bd3","line":7,"range":{"start_line":7,"start_character":14,"end_line":7,"end_character":20},"in_reply_to":"cb1b46f6_45d38733","updated":"2021-02-17 12:55:43.000000000","message":"Done","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"}],"ansible/roles/haproxy/tasks/config.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a1fa654733d41911b7a04609bd41b0e18aa5778e","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    ip: \"{{ \u0027api\u0027 | kolla_address(item) }}\""},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    mariadb_backends_info: \"{{ mariadb_backends_info|default([]) + [{ \u0027shard\u0027: shard_id, \u0027hostname\u0027: item, \u0027ip\u0027: ip }] }}\""},{"line_number":8,"context_line":"  with_items: \"{{ groups[\u0027mariadb\u0027] }}\""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Ensuring config directories exist"},{"line_number":11,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"ada6fb02_6863b780","line":8,"updated":"2021-03-18 10:01:26.000000000","message":"This seems like the wrong place for this task.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cc175d96a97427802e8c74e944140168b8a1c295","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    ip: \"{{ \u0027api\u0027 | kolla_address(item) }}\""},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    mariadb_backends_info: \"{{ mariadb_backends_info|default([]) + [{ \u0027shard\u0027: shard_id, \u0027hostname\u0027: item, \u0027ip\u0027: ip }] }}\""},{"line_number":8,"context_line":"  with_items: \"{{ groups[\u0027mariadb\u0027] }}\""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Ensuring config directories exist"},{"line_number":11,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"ed59a386_00a94cdf","line":8,"in_reply_to":"ada6fb02_6863b780","updated":"2021-03-18 13:32:18.000000000","message":"Done","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"}],"ansible/roles/mariadb/defaults/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    dimensions: \"{{ mariadb_dimensions }}\""},{"line_number":12,"context_line":"    haproxy:"},{"line_number":13,"context_line":"      mariadb:"},{"line_number":14,"context_line":"        enabled: \"{{ enable_mariadb|bool and not enable_external_mariadb_load_balancer|bool }}\""},{"line_number":15,"context_line":"        mode: \"tcp\""},{"line_number":16,"context_line":"        port: \"{{ database_port }}\""},{"line_number":17,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"184eed60_d6c7ebb3","line":14,"updated":"2021-03-09 14:48:09.000000000","message":"If you add a check on a zero shard ID here, you might not need the new logic in loadbalancers.yml.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fc53a743fd336da0565c8e6c7cec833044b0296","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    dimensions: \"{{ mariadb_dimensions }}\""},{"line_number":12,"context_line":"    haproxy:"},{"line_number":13,"context_line":"      mariadb:"},{"line_number":14,"context_line":"        enabled: \"{{ enable_mariadb|bool and not enable_external_mariadb_load_balancer|bool }}\""},{"line_number":15,"context_line":"        mode: \"tcp\""},{"line_number":16,"context_line":"        port: \"{{ database_port }}\""},{"line_number":17,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3c17c5fe_f3443c05","line":14,"in_reply_to":"184eed60_d6c7ebb3","updated":"2021-03-10 12:28:59.000000000","message":"Sorry, don\u0027t understand, can u exlain what do u think ?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    dimensions: \"{{ mariadb_dimensions }}\""},{"line_number":12,"context_line":"    haproxy:"},{"line_number":13,"context_line":"      mariadb:"},{"line_number":14,"context_line":"        enabled: \"{{ enable_mariadb|bool and not enable_external_mariadb_load_balancer|bool }}\""},{"line_number":15,"context_line":"        mode: \"tcp\""},{"line_number":16,"context_line":"        port: \"{{ database_port }}\""},{"line_number":17,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"76554731_794b8dac","line":14,"in_reply_to":"3c17c5fe_f3443c05","updated":"2021-03-10 13:42:20.000000000","message":"This is what I was thinking of:\n\nenabled: \"{{ enable_mariadb|bool and not enable_external_mariadb_load_balancer|bool and mariadb_shard_id \u003d\u003d 0 }}\"\n\nAlthough I looked at the logic in the haproxy-config role and the enable flag is checked on the haproxy host, not the backends, so it wouldn\u0027t work.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    dimensions: \"{{ mariadb_dimensions }}\""},{"line_number":12,"context_line":"    haproxy:"},{"line_number":13,"context_line":"      mariadb:"},{"line_number":14,"context_line":"        enabled: \"{{ enable_mariadb|bool and not enable_external_mariadb_load_balancer|bool }}\""},{"line_number":15,"context_line":"        mode: \"tcp\""},{"line_number":16,"context_line":"        port: \"{{ database_port }}\""},{"line_number":17,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"47e5a3e5_4f970e97","line":14,"in_reply_to":"76554731_794b8dac","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":24,"context_line":"          - \"option {% if enable_mariadb_clustercheck | bool %}httpchk{% else %}mysql-check user haproxy post-41{% endif %}\""},{"line_number":25,"context_line":"        custom_member_list: \"{{ internal_haproxy_members.split(\u0027;\u0027) }}\""},{"line_number":26,"context_line":"      mariadb_external_lb:"},{"line_number":27,"context_line":"        enabled: \"{{ enable_external_mariadb_load_balancer|bool }}\""},{"line_number":28,"context_line":"        mode: \"tcp\""},{"line_number":29,"context_line":"        port: \"{{ database_port }}\""},{"line_number":30,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3a3df2da_375530b3","line":27,"updated":"2021-03-09 14:48:09.000000000","message":"and here","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fc53a743fd336da0565c8e6c7cec833044b0296","unresolved":true,"context_lines":[{"line_number":24,"context_line":"          - \"option {% if enable_mariadb_clustercheck | bool %}httpchk{% else %}mysql-check user haproxy post-41{% endif %}\""},{"line_number":25,"context_line":"        custom_member_list: \"{{ internal_haproxy_members.split(\u0027;\u0027) }}\""},{"line_number":26,"context_line":"      mariadb_external_lb:"},{"line_number":27,"context_line":"        enabled: \"{{ enable_external_mariadb_load_balancer|bool }}\""},{"line_number":28,"context_line":"        mode: \"tcp\""},{"line_number":29,"context_line":"        port: \"{{ database_port }}\""},{"line_number":30,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"bf569f23_a6d1cccc","line":27,"in_reply_to":"3a3df2da_375530b3","updated":"2021-03-10 12:28:59.000000000","message":"Same, didn\u0027t catch , can u explain ?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":24,"context_line":"          - \"option {% if enable_mariadb_clustercheck | bool %}httpchk{% else %}mysql-check user haproxy post-41{% endif %}\""},{"line_number":25,"context_line":"        custom_member_list: \"{{ internal_haproxy_members.split(\u0027;\u0027) }}\""},{"line_number":26,"context_line":"      mariadb_external_lb:"},{"line_number":27,"context_line":"        enabled: \"{{ enable_external_mariadb_load_balancer|bool }}\""},{"line_number":28,"context_line":"        mode: \"tcp\""},{"line_number":29,"context_line":"        port: \"{{ database_port }}\""},{"line_number":30,"context_line":"        listen_port: \"{{ mariadb_port }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"1a6210e2_37fb5b8e","line":27,"in_reply_to":"bf569f23_a6d1cccc","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":43,"context_line":"    volumes: \"{{ mariadb_clustercheck_default_volumes + mariadb_clustercheck_extra_volumes }}\""},{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"967ecc7c_854ed859","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":30},"updated":"2021-03-09 14:48:09.000000000","message":"monitor user?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    volumes: \"{{ mariadb_clustercheck_default_volumes + mariadb_clustercheck_extra_volumes }}\""},{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"717155c7_99e4c3da","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":30},"in_reply_to":"494805f6_ed314bf6","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":43,"context_line":"    volumes: \"{{ mariadb_clustercheck_default_volumes + mariadb_clustercheck_extra_volumes }}\""},{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"494805f6_ed314bf6","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":30},"in_reply_to":"95c9bd8e_4cf7774a","updated":"2021-03-10 13:42:20.000000000","message":"mariadb_monitor_user is in group_vars/all.yml in this patch.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fc53a743fd336da0565c8e6c7cec833044b0296","unresolved":true,"context_lines":[{"line_number":43,"context_line":"    volumes: \"{{ mariadb_clustercheck_default_volumes + mariadb_clustercheck_extra_volumes }}\""},{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"95c9bd8e_4cf7774a","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":30},"in_reply_to":"967ecc7c_854ed859","updated":"2021-03-10 12:28:59.000000000","message":"Yes, sure, I have it as variable ..but not in this review. I changed in review for proxysql support ..in this point there is not support for different user ..so not changed.\n\nAnd not to mention that this can be removed if proxysql will be used as only LB solution, clustercheck is only used in haproxy to check mariadb node. Below you can find how it is defined in proxysql review.\n\n  mariadb-clustercheck:\n    container_name: mariadb_clustercheck\n    group: \"{{ mariadb_shard_group }}\"\n    enabled: \"{{ enable_mariadb_clustercheck | bool }}\"\n    image: \"{{ mariadb_clustercheck_image_full }}\"\n    volumes: \"{{ mariadb_clustercheck_default_volumes + mariadb_clustercheck_extra_volumes }}\"\n    dimensions: \"{{ mariadb_clustercheck_dimensions }}\"\n    environment:\n      MYSQL_USERNAME: \"{{ mariadb_monitor_user }}\"\n      MYSQL_PASSWORD: \"{% if enable_proxysql | bool %}{{ mariadb_monitor_password }}{% endif %}\"\n      MYSQL_HOST: \"{{ api_interface_address }}\"","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"a815682c_9272a319","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":24},"updated":"2021-03-09 14:48:09.000000000","message":"Needs a password now?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"467a9fbb_dfecce7e","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":24},"in_reply_to":"3dbdefad_ee641e42","updated":"2021-03-17 23:41:07.000000000","message":"it\u0027s an option - and it\u0027s better to have password protected user","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fc53a743fd336da0565c8e6c7cec833044b0296","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    dimensions: \"{{ mariadb_clustercheck_dimensions }}\""},{"line_number":45,"context_line":"    environment:"},{"line_number":46,"context_line":"      MYSQL_USERNAME: \"haproxy\""},{"line_number":47,"context_line":"      MYSQL_PASSWORD: \"\""},{"line_number":48,"context_line":"      MYSQL_HOST: \"{{ api_interface_address }}\""},{"line_number":49,"context_line":"      AVAILABLE_WHEN_DONOR: \"1\""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3dbdefad_ee641e42","line":47,"range":{"start_line":47,"start_character":23,"end_line":47,"end_character":24},"in_reply_to":"a815682c_9272a319","updated":"2021-03-10 12:28:59.000000000","message":"Check comment before.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"mariadb_backup_host: \"{{ groups[mariadb_shard_group][0] }}\""},{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"backup_{{ mariadb_shard_name }}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"8787b1c9_fa35b4ac","line":114,"updated":"2021-03-09 14:48:09.000000000","message":"Similar comment to L128","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"mariadb_backup_host: \"{{ groups[mariadb_shard_group][0] }}\""},{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"backup_{{ mariadb_shard_name }}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"c37e7b24_58918074","line":114,"in_reply_to":"165564d2_4e832a47","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"mariadb_backup_host: \"{{ groups[mariadb_shard_group][0] }}\""},{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"backup_{{ mariadb_shard_name }}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"165564d2_4e832a47","line":114,"in_reply_to":"8787b1c9_fa35b4ac","updated":"2021-03-10 12:43:39.000000000","message":"Check L128 reply.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"b4800b2d_b19812e9","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"updated":"2021-03-09 14:48:09.000000000","message":"I think it would be less confusing and more secure for non-sharders if we wrapped these in an if:\n\nmariadb_shard_group: \"{% if mariadb_shard_id !\u003d 0 %}{{ mariadb_shard_name }}{% else %}mariadb{% endif %}\"\nmariadb_shard_database_user: \"{% if mariadb_shard_id !\u003d 0 %}root_{{ mariadb_shard_name }}{% else %}root{% endif %}\"","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"6cbf6390_bb17c3a2","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"0839bad5_a143d9a6","updated":"2021-03-10 13:42:20.000000000","message":"As a deployer who is not using proxysql, I would question why there are two users with full privileges - root and root_0. In the proxysql case there is at least an explanation, but I don\u0027t think we should impose it on other users.\n\nPerhaps if the default value for mariadb_shard_id was None, it would make the difference between sharding and not sharding clearer. This can be defined as follows:\n\n  mariadb_shard_id:","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"78c5fb5d_e4b808bd","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"4052c766_ee91397c","updated":"2021-03-29 10:40:12.000000000","message":"Resolved, if haproxy is enabled as mariadb_loadbalancer, only root users will be created, no additional user. If proxysql will be enaled as mariadb_loadbalancer, also root_X will be created to reach different clusters (shards) via different users proxied through proxysql.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"5e22b007cdd03bf91945dde8c8ae69ff2aaedca2","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"b82e54bd_bf1970f8","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"4ad691e6_c2bfa2fc","updated":"2021-03-18 13:48:34.000000000","message":"I think one of the problems we have is that the use of sharding is a bit too implicit and magical. That makes it hard to do things that are only required for sharding conditionally. For example: which hosts should HAProxy load balance for?\n\nI\u0027d suggest making None the default value of mariadb_shard_id. That way it is clear that sharding is not in use. It would also more easily allow us to decide when to use HAProxy.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a1fa654733d41911b7a04609bd41b0e18aa5778e","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"e4939f42_8075fab8","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"6cbf6390_bb17c3a2","updated":"2021-03-18 10:01:26.000000000","message":"Unresolved","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fc53a743fd336da0565c8e6c7cec833044b0296","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"0839bad5_a143d9a6","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"b4800b2d_b19812e9","updated":"2021-03-10 12:28:59.000000000","message":"Don\u0027t think this is big deal, your proposal make shard 0 little bit different and it can be confusing that shard 0 has only root and shardX has root_x..\n\nMy feeling is that role should do the same for all shards ..even if there is only default shard 0.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e9ddb941a8e6eeaef98ff0748df82600b9d66142","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"39168bde_48a9a482","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"b82e54bd_bf1970f8","updated":"2021-03-18 16:38:04.000000000","message":"Alternatively, we could keep the logic the same for the mariadb_shard_group variable, but change the user as I suggested:\n\nmariadb_shard_database_user: \"{% if mariadb_shard_id !\u003d 0 %}root_{{ mariadb_shard_name }}{% else %}root{% endif %}\"\n\nIf shard 0 is special, and uses HAProxy, then we don\u0027t need a shard root user for it.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"380529368774dde56fcd8b5bfec01571eafa68ee","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"4052c766_ee91397c","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"b82e54bd_bf1970f8","updated":"2021-03-27 20:24:47.000000000","message":"Well, Haproxy is TCP LB, so : \n1. which hosts should HAProxy load balance for? \n   - No hosts   OR\n   - Default shard\n\nAbove is already ensured via : \n  - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1 \n\nand could be changed to \n  - - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 0\n\nIf user turn on proxysql ..everything is OK \n\nMy opinion is solution 1.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cc175d96a97427802e8c74e944140168b8a1c295","unresolved":true,"context_lines":[{"line_number":124,"context_line":"####################"},{"line_number":125,"context_line":"mariadb_shard_id: 0"},{"line_number":126,"context_line":"mariadb_shard_name: \"shard_{{ mariadb_shard_id }}\""},{"line_number":127,"context_line":"mariadb_shard_group: \"mariadb_{{ mariadb_shard_name }}\""},{"line_number":128,"context_line":"mariadb_shard_database_user: \"root_{{ mariadb_shard_name }}\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"4ad691e6_c2bfa2fc","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":60},"in_reply_to":"e4939f42_8075fab8","updated":"2021-03-18 13:32:18.000000000","message":"Mariadb_shard_group is also used in lookup_cluster (if i remember), and it is used for various tasks which are creating volumes, checking existence of volume, checking port liveness and others.\n\nYou can\u0027t do mariadb_shard_group: \"{% if mariadb_shard_id !\u003d 0 %}{{ mariadb_shard_name }}{% else %}mariadb{% endif %}\" because if user start use sharding .. above tasks will be runned against mariadb role (which is all servers in group - Do you see a problem now ?)\n\nI can restrict root_X user from loadbalancer IPs, it should work.\nAnd, add comment to mysql for root_X user that it is prepared for proxysql use and default created, accessable only from loadbalancer IPs + VIP.\n\nWhat do you think ?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"be006425c2e32568bbb60687c57688201f330f03","unresolved":true,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"mariadb_backup_host: \"{{ groups[mariadb_shard_group][0] }}\""},{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"backup_{{ mariadb_shard_name }}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"7462058f_fc46ab9a","line":114,"range":{"start_line":114,"start_character":31,"end_line":114,"end_character":62},"updated":"2021-03-25 11:36:22.000000000","message":"\"{% if mariadb_loadbalancer \u003d\u003d \u0027haproxy\u0027 %}backup{% else %}backup_{{ mariadb_shard_name }}{% endif %}\"","commit_id":"bcc4401d3d63876277422a8ef54cb36e1c8c9728"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"mariadb_backup_host: \"{{ groups[mariadb_shard_group][0] }}\""},{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"backup_{{ mariadb_shard_name }}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"6fa97e5e_00f99d00","line":114,"range":{"start_line":114,"start_character":31,"end_line":114,"end_character":62},"in_reply_to":"7462058f_fc46ab9a","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"bcc4401d3d63876277422a8ef54cb36e1c8c9728"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"aeecdcf2a2252e601f34a50b0f89cce10f30783b","unresolved":true,"context_lines":[{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"{% if mariadb_loadbalancer \u003d\u003d \u0027haproxy\u0027 %}backup{% else %}backup_{{ mariadb_shard_name }}{% endif %}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":"mariadb_backup: \"{% if mariadb_loadbalancer \u003d\u003d \u0027haproxy\u0027 %}{% if inventory_hostname in mariadb_default_database_shard_hosts %}yes{% else %}no{% endif %}{% else %}yes{% endif %}\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"####################"},{"line_number":119,"context_line":"# Clustercheck"}],"source_content_type":"text/x-yaml","patch_set":51,"id":"da209ac5_1eb33c52","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":176},"updated":"2021-03-29 09:19:32.000000000","message":"nit:\n\n {{ mariadb_loadbalancer !\u003d \u0027haproxy\u0027 or inventory_hostname in mariadb_default_database_shard_hosts }}","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"{% if mariadb_loadbalancer \u003d\u003d \u0027haproxy\u0027 %}backup{% else %}backup_{{ mariadb_shard_name }}{% endif %}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":"mariadb_backup: \"{% if mariadb_loadbalancer \u003d\u003d \u0027haproxy\u0027 %}{% if inventory_hostname in mariadb_default_database_shard_hosts %}yes{% else %}no{% endif %}{% else %}yes{% endif %}\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"####################"},{"line_number":119,"context_line":"# Clustercheck"}],"source_content_type":"text/x-yaml","patch_set":51,"id":"1180d5ec_31542fe0","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":176},"in_reply_to":"da209ac5_1eb33c52","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e6b2eae314e798c3d55d27238f3068ce525b369b","unresolved":true,"context_lines":[{"line_number":113,"context_line":"mariadb_backup_database_schema: \"PERCONA_SCHEMA\""},{"line_number":114,"context_line":"mariadb_backup_database_user: \"{% if mariadb_loadbalancer \u003d\u003d \u0027haproxy\u0027 %}backup{% else %}backup_{{ mariadb_shard_name }}{% endif %}\""},{"line_number":115,"context_line":"mariadb_backup_type: \"full\""},{"line_number":116,"context_line":"mariadb_backup: \"{{ mariadb_loadbalancer !\u003d \u0027haproxy\u0027 or inventory_hostname in mariadb_default_database_shard_hosts }}\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"####################"},{"line_number":119,"context_line":"# Clustercheck"}],"source_content_type":"text/x-yaml","patch_set":56,"id":"970e02fa_a9069151","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":14},"updated":"2021-04-09 13:22:54.000000000","message":"mariadb_backup_possible\n\nplease rename in a followup","commit_id":"09b3c6ca07ccd2dd7ee0cf5e3dd96b36192206b4"}],"ansible/roles/mariadb/handlers/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":57,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":58,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":59,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":60,"context_line":"      name: \"haproxy\""},{"line_number":61,"context_line":"      password: \"\""},{"line_number":62,"context_line":"      host: \"%\""},{"line_number":63,"context_line":"      priv: \"*.*:USAGE\""},{"line_number":64,"context_line":"  listen: Bootstrap MariaDB cluster"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"5b95f81b_abbefd20","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":18},"updated":"2021-03-09 14:48:09.000000000","message":"Needs new user/password?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":57,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":58,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":59,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":60,"context_line":"      name: \"haproxy\""},{"line_number":61,"context_line":"      password: \"\""},{"line_number":62,"context_line":"      host: \"%\""},{"line_number":63,"context_line":"      priv: \"*.*:USAGE\""},{"line_number":64,"context_line":"  listen: Bootstrap MariaDB cluster"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"af158bf6_f7fa31df","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":18},"in_reply_to":"2494858b_dd2ac828","updated":"2021-03-10 13:42:20.000000000","message":"Because you added mariadb_monitor_password in passwords.yml, I assumed you were using it inconsistently. Perhaps that variable should be in a later patch.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":57,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":58,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":59,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":60,"context_line":"      name: \"haproxy\""},{"line_number":61,"context_line":"      password: \"\""},{"line_number":62,"context_line":"      host: \"%\""},{"line_number":63,"context_line":"      priv: \"*.*:USAGE\""},{"line_number":64,"context_line":"  listen: Bootstrap MariaDB cluster"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"2494858b_dd2ac828","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":18},"in_reply_to":"5b95f81b_abbefd20","updated":"2021-03-10 12:43:39.000000000","message":"No, this is haproxy user and I didn\u0027t changed anything here, and I can\u0027t.\nYou have to support also users which are not using clustercheck for check backend liveness when using haproxy - haproxy itself can\u0027t use user with password.\n\nCheck below : \n\n\"option {% if enable_mariadb_clustercheck | bool %}httpchk{% else %}mysql-check user haproxy post-41{% endif %}\"\n\nIf user is using clustercheck, he can also use password ..but for backward compatibility you have to set password to \"\".\n\nWhy are you commenting code which is already reviewed, merged, and not changed in my review ?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":57,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":58,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":59,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":60,"context_line":"      name: \"haproxy\""},{"line_number":61,"context_line":"      password: \"\""},{"line_number":62,"context_line":"      host: \"%\""},{"line_number":63,"context_line":"      priv: \"*.*:USAGE\""},{"line_number":64,"context_line":"  listen: Bootstrap MariaDB cluster"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"d3d714ce_8fe3c615","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":18},"in_reply_to":"af158bf6_f7fa31df","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e6b2eae314e798c3d55d27238f3068ce525b369b","unresolved":true,"context_lines":[{"line_number":48,"context_line":"  no_log: true"},{"line_number":49,"context_line":"  listen: Bootstrap MariaDB cluster"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"- name: Creating haproxy mysql user"},{"line_number":52,"context_line":"  become: true"},{"line_number":53,"context_line":"  kolla_toolbox:"},{"line_number":54,"context_line":"    module_name: mysql_user"},{"line_number":55,"context_line":"    module_args:"},{"line_number":56,"context_line":"      login_host: \"{{ api_interface_address }}\""},{"line_number":57,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":58,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":59,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":60,"context_line":"      name: \"{{ mariadb_monitor_user }}\""},{"line_number":61,"context_line":"      password: \"\""},{"line_number":62,"context_line":"      host: \"%\""},{"line_number":63,"context_line":"      priv: \"*.*:USAGE\""},{"line_number":64,"context_line":"  listen: Bootstrap MariaDB cluster"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"- name: Restart MariaDB on existing cluster members"},{"line_number":67,"context_line":"  include_tasks: \u0027restart_services.yml\u0027"}],"source_content_type":"text/x-yaml","patch_set":56,"id":"c398f153_ba0a9a56","line":64,"range":{"start_line":51,"start_character":0,"end_line":64,"end_character":35},"updated":"2021-04-09 13:22:54.000000000","message":"can be dropped now that we handled this in register (for a good reason)","commit_id":"09b3c6ca07ccd2dd7ee0cf5e3dd96b36192206b4"}],"ansible/roles/mariadb/tasks/backup.yml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e6b2eae314e798c3d55d27238f3068ce525b369b","unresolved":true,"context_lines":[{"line_number":20,"context_line":"      - \"kolla_logs:/var/log/kolla/\""},{"line_number":21,"context_line":"  when:"},{"line_number":22,"context_line":"    - inventory_hostname \u003d\u003d mariadb_backup_host"},{"line_number":23,"context_line":"    - mariadb_backup | bool"}],"source_content_type":"text/x-yaml","patch_set":56,"id":"fa1a96c0_397cb0cd","line":23,"range":{"start_line":23,"start_character":6,"end_line":23,"end_character":21},"updated":"2021-04-09 13:22:54.000000000","message":"ditto (rename)","commit_id":"09b3c6ca07ccd2dd7ee0cf5e3dd96b36192206b4"}],"ansible/roles/mariadb/tasks/check.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b879296fbf9c1f92781cbc66ee30b567bb556a7b","unresolved":true,"context_lines":[{"line_number":4,"context_line":"# due to the health check polling in HAProxy."},{"line_number":5,"context_line":"- name: Wait for MariaDB service to be ready through VIP"},{"line_number":6,"context_line":"  become: true"},{"line_number":7,"context_line":"  command: \u003e"},{"line_number":8,"context_line":"    docker exec {{ mariadb_service.container_name }}"},{"line_number":9,"context_line":"    mysql -h {{ database_address }} -P {{ database_port }}"},{"line_number":10,"context_line":"    -u {{ mariadb_shard_database_user }} -p{{ database_password }} -e \u0027show databases;\u0027"},{"line_number":11,"context_line":"  register: result"},{"line_number":12,"context_line":"  until: result is success"},{"line_number":13,"context_line":"  changed_when: False"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"85d32fa3_2c9e658f","line":10,"range":{"start_line":7,"start_character":2,"end_line":10,"end_character":87},"updated":"2021-03-30 11:38:42.000000000","message":"since we use Ansible 2.9 at least - we could try mysql_info in a followup.","commit_id":"5b6739ace60ec096f4fb664694d393fb3b65252c"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"42d67f9cc4a76233546a52c96fd383bf769762c2","unresolved":true,"context_lines":[{"line_number":4,"context_line":"# due to the health check polling in HAProxy."},{"line_number":5,"context_line":"- name: Wait for MariaDB service to be ready through VIP"},{"line_number":6,"context_line":"  become: true"},{"line_number":7,"context_line":"  command: \u003e"},{"line_number":8,"context_line":"    docker exec {{ mariadb_service.container_name }}"},{"line_number":9,"context_line":"    mysql -h {{ database_address }} -P {{ database_port }}"},{"line_number":10,"context_line":"    -u {{ mariadb_shard_database_user }} -p{{ database_password }} -e \u0027show databases;\u0027"},{"line_number":11,"context_line":"  register: result"},{"line_number":12,"context_line":"  until: result is success"},{"line_number":13,"context_line":"  changed_when: False"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"cfedab07_4475a393","line":10,"range":{"start_line":7,"start_character":2,"end_line":10,"end_character":87},"in_reply_to":"85d32fa3_2c9e658f","updated":"2021-03-30 12:53:25.000000000","message":"Agree, when I started to write I also used mysql_info ..but was not working with older versions of ansible. So i decided to do it as it is now. Agree, that this can be changed in follow-up sometimes.","commit_id":"5b6739ace60ec096f4fb664694d393fb3b65252c"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"755b2dc3256ecd81c9d8a9c3c5a4159ddba7709c","unresolved":true,"context_lines":[{"line_number":4,"context_line":"# due to the health check polling in HAProxy."},{"line_number":5,"context_line":"- name: Wait for MariaDB service to be ready through VIP"},{"line_number":6,"context_line":"  become: true"},{"line_number":7,"context_line":"  command: \u003e"},{"line_number":8,"context_line":"    docker exec {{ mariadb_service.container_name }}"},{"line_number":9,"context_line":"    mysql -h {{ database_address }} -P {{ database_port }}"},{"line_number":10,"context_line":"    -u {{ mariadb_shard_database_user }} -p{{ database_password }} -e \u0027show databases;\u0027"},{"line_number":11,"context_line":"  register: result"},{"line_number":12,"context_line":"  until: result is success"},{"line_number":13,"context_line":"  changed_when: False"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"4c2bcacc_ccc62beb","line":10,"range":{"start_line":7,"start_character":2,"end_line":10,"end_character":87},"in_reply_to":"cfedab07_4475a393","updated":"2021-03-30 15:05:20.000000000","message":"Container might get in the way","commit_id":"5b6739ace60ec096f4fb664694d393fb3b65252c"}],"ansible/roles/mariadb/tasks/loadbalancer.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f6a34fdb5b09ed72e3903b8d7dedad2181e6fa6a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"16a6d6d4_a132b65a","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"updated":"2021-01-26 11:44:29.000000000","message":"Is the select used to filter out shard 0? If so, needs a comment making that clear.","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ee43aca8c6fd652f7abf3971bdf3b7c61a69157e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"950947f3_491f6977","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"in_reply_to":"16a6d6d4_a132b65a","updated":"2021-01-26 12:34:23.000000000","message":"No, it\u0027s likely a valid bug. This is to filter out unset (note this checks it on hostvars, cannot see role defaults).","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"01496efb_e30ac96b","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"in_reply_to":"29985e27_7070b2d6","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"7a47f54e0f837110abcc13350b491f972805deb4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"ea3d4b75_99be4958","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"in_reply_to":"354a54ae_dad7e2c3","updated":"2021-01-26 17:54:36.000000000","message":"Well, I have it here \n\nhttps://review.opendev.org/c/openstack/kolla-ansible/+/770215/19/ansible/roles/mariadb/tasks/loadbalancer.yml\n\nBut it is logically divided in another commit.\n\nAll patches are written to be working in every merge-time","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"4eb02484097dd42051cae9b5949e0cecbc70b08f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"354a54ae_dad7e2c3","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"in_reply_to":"5c568e21_b5aadf4c","updated":"2021-01-26 17:04:01.000000000","message":"No, I have done it on purpose but now I see we don\u0027t need to do this here at all. All we care about is that users are aware they need to enable proxysql if they want to use sharding. Therefore we could leave that to prechecks. In fact, it is ok to discard a single 0 shard as that is what it means to not setup shards.","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"1313f6dfb5c56d80773e8207e813963b45b9dbb2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"5c568e21_b5aadf4c","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"in_reply_to":"950947f3_491f6977","updated":"2021-01-26 16:40:43.000000000","message":"Before Radoslaw changed my patch it was used for:\n\n1. Gather mariadb shards\n2. And apply haproxy role only if shard | lenght \u003d\u003d 1  (if i remember correct)\n\nIn following patch the conditional was extended by \"AND not proxysql_enable | bool\"\n\nmariadb_shard_ids | length \u003d\u003d 0 was changed by Radoslaw probably because he misunderstood it","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"82647da716313ce5f4d2f304c9998feff13ec576","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"29985e27_7070b2d6","line":4,"range":{"start_line":4,"start_character":96,"end_line":4,"end_character":102},"in_reply_to":"ea3d4b75_99be4958","updated":"2021-02-17 12:55:43.000000000","message":"\u003e No, I have done it on purpose but now I see we don\u0027t need to do this here at all. All we care \u003e about is that users are aware they need to enable proxysql if they want to use sharding.\n\u003e Therefore we could leave that to prechecks. In fact, it is ok to discard a single 0 shard \n\u003e as that is what it means to not setup shards.\n\nWell, this was just fuse against users who read only half of needed configuration, for example they set hostvars in inventory (so grouping will start work , shards will be installed ) , BUT they forgot to switch enable_proxysql: True so haproxy will configure all mariadb IPs as backend to haproxy.\n\nBut I am OK to remove it , let me know.","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select(\u0027defined\u0027) | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"d808f6bf_f21d0b89","line":4,"updated":"2021-03-09 14:48:09.000000000","message":"This needs a comment, so that I don\u0027t have to go through the mental steps to work out that although it looks wrong, it should mostly work.\n\nThe mariadb_shard_id in role defaults does not get included in hostvars, so generally only customisations will be in the list. We might assume that they are non-zero, but I think it would be safer to filter out zeroes here.\n\nAlso, see comment in defaults file for an alternative.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select(\u0027defined\u0027) | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"e6f119a2_20355a18","line":4,"in_reply_to":"d5577745_35117b61","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Gather MariaDB shard ids"},{"line_number":3,"context_line":"  set_fact:"},{"line_number":4,"context_line":"    mariadb_shard_ids: \"{{ groups[\u0027mariadb\u0027] | map(\u0027extract\u0027, hostvars, [\u0027mariadb_shard_id\u0027]) | select(\u0027defined\u0027) | unique | list }}\""},{"line_number":5,"context_line":"  tags: always"},{"line_number":6,"context_line":"  run_once: True"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"d5577745_35117b61","line":4,"in_reply_to":"d808f6bf_f21d0b89","updated":"2021-03-10 12:43:39.000000000","message":"This is bad, Radoslaw rewrote my original task.\nI will add a comment and change to my original task.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a1fa654733d41911b7a04609bd41b0e18aa5778e","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    project_services: \"{{ mariadb_services }}\""},{"line_number":7,"context_line":"  tags: always"},{"line_number":8,"context_line":"  when:"},{"line_number":9,"context_line":"    - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"caf57079_c64720b3","line":9,"updated":"2021-03-18 10:01:26.000000000","message":"I think we can keep this simple. We want either HAProxy or ProxySQL to load balance mariadb. In this patch, proxysql does not exist, so this should be unconditional. When we add proxysql, the condition is just that proxysql is disabled.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"5e22b007cdd03bf91945dde8c8ae69ff2aaedca2","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    project_services: \"{{ mariadb_services }}\""},{"line_number":7,"context_line":"  tags: always"},{"line_number":8,"context_line":"  when:"},{"line_number":9,"context_line":"    - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"4c9cb01c_c3033c8e","line":9,"in_reply_to":"3f6d9523_27e044b5","updated":"2021-03-18 13:48:34.000000000","message":"Well, I agree that might be useful, but that\u0027s not what this code does. If there is more than one shard defined, then HAProxy config will not be added. Also, if haproxy is configured, it balances to all nodes in the mariadb group, due to the custom_member_list option in defaults.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"380529368774dde56fcd8b5bfec01571eafa68ee","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    project_services: \"{{ mariadb_services }}\""},{"line_number":7,"context_line":"  tags: always"},{"line_number":8,"context_line":"  when:"},{"line_number":9,"context_line":"    - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"524c20eb_07e33166","line":9,"in_reply_to":"4c9cb01c_c3033c8e","updated":"2021-03-27 20:24:47.000000000","message":"This is solved by - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1 \n\nSo, what is the issue ?","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    project_services: \"{{ mariadb_services }}\""},{"line_number":7,"context_line":"  tags: always"},{"line_number":8,"context_line":"  when:"},{"line_number":9,"context_line":"    - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"4ee12109_a515a1f8","line":9,"in_reply_to":"524c20eb_07e33166","updated":"2021-03-29 10:40:12.000000000","message":"Resolved, if sharding is used .. only default shard is loadbalanced via haproxy.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cc175d96a97427802e8c74e944140168b8a1c295","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    project_services: \"{{ mariadb_services }}\""},{"line_number":7,"context_line":"  tags: always"},{"line_number":8,"context_line":"  when:"},{"line_number":9,"context_line":"    - mariadb_backends_info | groupby(\u0027shard\u0027) | length \u003d\u003d 1"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"3f6d9523_27e044b5","line":9,"in_reply_to":"caf57079_c64720b3","updated":"2021-03-18 13:32:18.000000000","message":"Don\u0027t agree, user still can wants to deploy several shards/clusters (for cells for example), but he really don\u0027t want to render all ips from mariadb group in haproxy config.\n\nSimply said, we have to ensure that haproxy will load-balance only \"default shard 0\", even if user will deploy several mariadb clusters (these clusters will be just deployed, not configured in haproxy).\n\n - I agree that in proxysql patch it can be conditioned, in this phase we should ensure this way.\n - User could want to just use benefit of this role refactor, but really don\u0027t want to reconfigure his current haproxy configuration.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"}],"ansible/roles/mariadb/tasks/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Group MariaDB hosts based on shards"},{"line_number":3,"context_line":"  group_by:"},{"line_number":4,"context_line":"    key: \"{{ mariadb_shard_group }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- include_tasks: \"{{ kolla_action }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"a02d067c_2e0ad0ec","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":36},"updated":"2021-03-09 14:48:09.000000000","message":"nit: for some reason ansible shows group_by tasks as changed, although nothing on the remote hosts has actually changed. In kayobe I proposed adding changed_when: false to group_by tasks.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Group MariaDB hosts based on shards"},{"line_number":3,"context_line":"  group_by:"},{"line_number":4,"context_line":"    key: \"{{ mariadb_shard_group }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- include_tasks: \"{{ kolla_action }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"5c60f892_a62c1eee","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":36},"in_reply_to":"51824995_e1cf8299","updated":"2021-03-10 13:42:20.000000000","message":"+1 for changing in other places","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Group MariaDB hosts based on shards"},{"line_number":3,"context_line":"  group_by:"},{"line_number":4,"context_line":"    key: \"{{ mariadb_shard_group }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- include_tasks: \"{{ kolla_action }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"0fa2eb02_dd4e8bec","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":36},"in_reply_to":"5c60f892_a62c1eee","updated":"2021-03-17 23:41:07.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ca37b5ed01133a8310ce660d2efb197f6b8231b3","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Group MariaDB hosts based on shards"},{"line_number":3,"context_line":"  group_by:"},{"line_number":4,"context_line":"    key: \"{{ mariadb_shard_group }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- include_tasks: \"{{ kolla_action }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"51824995_e1cf8299","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":36},"in_reply_to":"996cd96d_e8d583b1","updated":"2021-03-10 12:47:24.000000000","message":"This should be changed also \n\nTASK [Group hosts to determine when using --limit] ***************************************************************************************************************************************************************************************************************************************\nchanged: [jenkins-kolla-268-master-controller0]\nchanged: [jenkins-kolla-268-master-controller1]\nchanged: [jenkins-kolla-268-master-compute1]\nchanged: [jenkins-kolla-268-master-compute0]\nchanged: [jenkins-kolla-268-master-ceph0]\nchanged: [localhost]\n[WARNING]: Could not match supplied host pattern, ignoring: all_using_limit_True\n\nPLAY [Gather facts for all hosts (if using --limit)] *************************************************************************************************************************************************************************************************************************************\nskipping: no hosts matched\n\nPLAY [Group hosts based on configuration] ************************************************************************************************************************************************************************************************************************************************\n\nTASK [Group hosts based on Kolla action] *************************************************************************************************************************************************************************************************************************************************\nchanged: [jenkins-kolla-268-master-controller0]\nchanged: [jenkins-kolla-268-master-controller1]\nchanged: [jenkins-kolla-268-master-compute1]\nchanged: [jenkins-kolla-268-master-compute0]\nchanged: [jenkins-kolla-268-master-ceph0]\nchanged: [localhost]","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Group MariaDB hosts based on shards"},{"line_number":3,"context_line":"  group_by:"},{"line_number":4,"context_line":"    key: \"{{ mariadb_shard_group }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- include_tasks: \"{{ kolla_action }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"996cd96d_e8d583b1","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":36},"in_reply_to":"a02d067c_2e0ad0ec","updated":"2021-03-10 12:43:39.000000000","message":"Well, I agree with you, but in fact there are new groups created - from ansible view, so actually there is a change.\n\nBut yes, agree this should be green ...but if this will be changed to \"changed_when: false\" , I would prefer to change it also in whole kolla-ansible.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"}],"ansible/roles/mariadb/tasks/recover_cluster.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f6a34fdb5b09ed72e3903b8d7dedad2181e6fa6a","unresolved":true,"context_lines":[{"line_number":85,"context_line":"    - name: Writing hostname of host with the largest seqno to temp file"},{"line_number":86,"context_line":"      copy:"},{"line_number":87,"context_line":"        content: \"{{ inventory_hostname }}\""},{"line_number":88,"context_line":"        dest: /tmp/kolla_mariadb_recover_inventory_name"},{"line_number":89,"context_line":"        mode: 0644"},{"line_number":90,"context_line":"      delegate_to: localhost"},{"line_number":91,"context_line":"      changed_when: false"}],"source_content_type":"text/x-yaml","patch_set":29,"id":"d618bcbb_209dcc46","line":88,"updated":"2021-01-26 11:44:29.000000000","message":"I expect this will need to be per-shard.","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    - name: Writing hostname of host with the largest seqno to temp file"},{"line_number":86,"context_line":"      copy:"},{"line_number":87,"context_line":"        content: \"{{ inventory_hostname }}\""},{"line_number":88,"context_line":"        dest: /tmp/kolla_mariadb_recover_inventory_name"},{"line_number":89,"context_line":"        mode: 0644"},{"line_number":90,"context_line":"      delegate_to: localhost"},{"line_number":91,"context_line":"      changed_when: false"}],"source_content_type":"text/x-yaml","patch_set":29,"id":"52d85b2f_72129d17","line":88,"in_reply_to":"44ed74b5_3deb8eda","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ee43aca8c6fd652f7abf3971bdf3b7c61a69157e","unresolved":true,"context_lines":[{"line_number":85,"context_line":"    - name: Writing hostname of host with the largest seqno to temp file"},{"line_number":86,"context_line":"      copy:"},{"line_number":87,"context_line":"        content: \"{{ inventory_hostname }}\""},{"line_number":88,"context_line":"        dest: /tmp/kolla_mariadb_recover_inventory_name"},{"line_number":89,"context_line":"        mode: 0644"},{"line_number":90,"context_line":"      delegate_to: localhost"},{"line_number":91,"context_line":"      changed_when: false"}],"source_content_type":"text/x-yaml","patch_set":29,"id":"44ed74b5_3deb8eda","line":88,"in_reply_to":"d618bcbb_209dcc46","updated":"2021-01-26 12:34:23.000000000","message":"Yup, I missed it.","commit_id":"b7517fa8009556ad257acb5f04e15923649b9cc4"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking for mariadb cluster"},{"line_number":3,"context_line":"  fail:"},{"line_number":4,"context_line":"    msg: \"MariaDB cluster was not found. Is your inventory correct?\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"6fd72320_119d0a69","line":1,"updated":"2021-03-09 14:48:09.000000000","message":"Have you tested the recovery command with multiple clusters? I expect it would need to recover all clusters simultaneously, rather than just one?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking for mariadb cluster"},{"line_number":3,"context_line":"  fail:"},{"line_number":4,"context_line":"    msg: \"MariaDB cluster was not found. Is your inventory correct?\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"d328b9f6_f9ca1407","line":1,"in_reply_to":"6fd72320_119d0a69","updated":"2021-03-10 12:43:39.000000000","message":"If I remember, i tested ..but I will not put my hand in the fire for that.\nWill try again.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ebb5000557d4a6088f2151f1ef840bcf3f65b471","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking for mariadb cluster"},{"line_number":3,"context_line":"  fail:"},{"line_number":4,"context_line":"    msg: \"MariaDB cluster was not found. Is your inventory correct?\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"18b742c5_d67a8b33","line":1,"in_reply_to":"d328b9f6_f9ca1407","updated":"2021-03-17 23:41:07.000000000","message":"Working, you can limit hosts if you want to only one.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"637f4e57_bcaf606e","line":21,"range":{"start_line":21,"start_character":2,"end_line":21,"end_character":16},"updated":"2021-03-09 14:48:09.000000000","message":"won\u0027t work with multiple shards.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"721233c3_2448e28d","line":21,"range":{"start_line":21,"start_character":2,"end_line":21,"end_character":16},"in_reply_to":"637f4e57_bcaf606e","updated":"2021-03-10 12:43:39.000000000","message":"Will check.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"a085e862_d611ef99","line":21,"range":{"start_line":21,"start_character":2,"end_line":21,"end_character":16},"in_reply_to":"721233c3_2448e28d","updated":"2021-03-10 13:42:20.000000000","message":"To be clear, the task will work, but only one file will be removed, for the shard of the host that runs the task.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"55e53ed2_c8510838","line":21,"range":{"start_line":21,"start_character":2,"end_line":21,"end_character":16},"in_reply_to":"a085e862_d611ef99","updated":"2021-03-29 10:40:12.000000000","message":"Resolved with fileglob.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a1fa654733d41911b7a04609bd41b0e18aa5778e","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"7fc58013_3eb66b5f","line":21,"updated":"2021-03-18 10:01:26.000000000","message":"This is still broken with multiple shards. It only removes the file belonging to one shard. If there are others they will be left.\n\nEither we need to find all values of mariadb_recover_tmp_file_path and remove those files, or use find module with a prefix and remove matching files.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"23d44200_bca3b65a","line":21,"in_reply_to":"5dcf07e7_5abfe7a1","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cc175d96a97427802e8c74e944140168b8a1c295","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  delegate_to: localhost"},{"line_number":19,"context_line":"  changed_when: false"},{"line_number":20,"context_line":"  check_mode: no"},{"line_number":21,"context_line":"  run_once: true"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- block:"},{"line_number":24,"context_line":"    - name: Stop MariaDB containers"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"5dcf07e7_5abfe7a1","line":21,"in_reply_to":"7fc58013_3eb66b5f","updated":"2021-03-18 13:32:18.000000000","message":"Will check.","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"}],"ansible/roles/mariadb/tasks/register.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":11,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":14,"context_line":"  run_once: True"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - enable_mariabackup | bool"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"38dd16ff_59f77f3a","line":14,"range":{"start_line":14,"start_character":2,"end_line":14,"end_character":16},"updated":"2021-01-26 11:15:45.000000000","message":"This task will run once, so only one shard\u0027s user will be created.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":14,"context_line":"  run_once: True"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - enable_mariabackup | bool"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"d8cba428_7234589a","line":14,"range":{"start_line":14,"start_character":2,"end_line":14,"end_character":16},"in_reply_to":"38dd16ff_59f77f3a","updated":"2021-03-29 10:40:12.000000000","message":"Nope, it\u0027s working as expected : \n\nTASK [mariadb : Creating the Mariabackup database] ****************************************************************************************************************************************************************\ntask path: /opt/kolla-ansible/ansible/roles/mariadb/tasks/register.yml:34\nskipping: [jenkins-kolla-268-master-controller1] \u003d\u003e {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\nskipping: [jenkins-kolla-268-master-compute0] \u003d\u003e {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\nchanged: [jenkins-kolla-268-master-compute1] \u003d\u003e {\"action\": \"mysql_db\", \"changed\": true, \"db\": \"PERCONA_SCHEMA\", \"db_list\": [\"PERCONA_SCHEMA\"]}\nchanged: [jenkins-kolla-268-master-controller0] \u003d\u003e {\"action\": \"mysql_db\", \"changed\": true, \"db\": \"PERCONA_SCHEMA\", \"db_list\": [\"PERCONA_SCHEMA\"]}","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"5e71db3e30d63a63d3162aa0d00c4fe38d786fcb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":14,"context_line":"  run_once: True"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - enable_mariabackup | bool"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"83851208_ac279df7","line":14,"range":{"start_line":14,"start_character":2,"end_line":14,"end_character":16},"in_reply_to":"8c17d6c8_fedeee5f","updated":"2021-03-29 11:01:42.000000000","message":"Agree, sorry :) , i\u0027ve already noticed that.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c6db083785edc540697cf207ec34f0766707d438","unresolved":false,"context_lines":[{"line_number":11,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":14,"context_line":"  run_once: True"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - enable_mariabackup | bool"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"8c17d6c8_fedeee5f","line":14,"range":{"start_line":14,"start_character":2,"end_line":14,"end_character":16},"in_reply_to":"d8cba428_7234589a","updated":"2021-03-29 10:55:28.000000000","message":"The code has changed since this version to remove run_once :)","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f43a38c3cb3218250e4b3a03063c146db50e799f","unresolved":true,"context_lines":[{"line_number":9,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":10,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":11,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":12,"context_line":"  run_once: True"},{"line_number":13,"context_line":"  when:"},{"line_number":14,"context_line":"    - enable_mariabackup | bool"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5ba3d349_6a3587bf","line":12,"range":{"start_line":12,"start_character":2,"end_line":12,"end_character":16},"updated":"2021-01-25 18:49:22.000000000","message":"I think these tasks should now run per shard instead.\nSimilarly, we need to handle backups per shard, no?","commit_id":"198b47c620e0b13b34ef917db34c32cc04e8d1d0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"d0782e7cd02bbe77aa2eec3b326972db957b6733","unresolved":true,"context_lines":[{"line_number":9,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":10,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":11,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":12,"context_line":"  run_once: True"},{"line_number":13,"context_line":"  when:"},{"line_number":14,"context_line":"    - enable_mariabackup | bool"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"90d359f2_e1a447a4","line":12,"range":{"start_line":12,"start_character":2,"end_line":12,"end_character":16},"in_reply_to":"5ba3d349_6a3587bf","updated":"2021-01-25 19:01:32.000000000","message":"Well, I admit that I do not use backup from kolla, but from playbook it is visible that it is connecting to database_address (which is VIP proxysql) and login user special mariadb_shard_database_user ..so proxysql route it to proper shard ..","commit_id":"198b47c620e0b13b34ef917db34c32cc04e8d1d0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"      login_user: \"{{ mariadb_shard_database_user }}\""},{"line_number":10,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":11,"context_line":"      name: \"{{ mariadb_backup_database_schema }}\""},{"line_number":12,"context_line":"  run_once: True"},{"line_number":13,"context_line":"  when:"},{"line_number":14,"context_line":"    - enable_mariabackup | bool"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ae023854_3fff764d","line":12,"range":{"start_line":12,"start_character":2,"end_line":12,"end_character":16},"in_reply_to":"90d359f2_e1a447a4","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"198b47c620e0b13b34ef917db34c32cc04e8d1d0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"7015b38c384574ab178a35e357d4ee9956b8db61","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Creating shard root mysql user"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  kolla_toolbox:"},{"line_number":5,"context_line":"    module_name: mysql_user"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"97edda57_ba560e9a","line":2,"updated":"2021-03-09 14:48:09.000000000","message":"Having two users with root privileges per cluster might make some people nervous. Would it make sense to remove the normal root account for sharded clusters? Or use the option \u0027Disallow root login remotely?\u0027 during mysql_secure_installation?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8965b2f0827d99f162b84a28e80525f2af20d30e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Creating shard root mysql user"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  kolla_toolbox:"},{"line_number":5,"context_line":"    module_name: mysql_user"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"b93d3a33_a11518f5","line":2,"in_reply_to":"97edda57_ba560e9a","updated":"2021-03-10 12:43:39.000000000","message":"Of course, I can remove root user ..but you should not affect users which potentionally can have some scripts with root user.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Creating shard root mysql user"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  kolla_toolbox:"},{"line_number":5,"context_line":"    module_name: mysql_user"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"599da9f5_2629a0da","line":2,"in_reply_to":"b93d3a33_a11518f5","updated":"2021-03-10 13:42:20.000000000","message":"Indeed. Another option is to lock down the root_* users privileges, but that would prevent admins getting a full privilege account to any shard via proxysql.","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":24,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":25,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":26,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":27,"context_line":"      name: \"{{ mariadb_monitor_user }}\""},{"line_number":28,"context_line":"      password: \"\""},{"line_number":29,"context_line":"      host: \"%\""},{"line_number":30,"context_line":"      priv: \"*.*:USAGE\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"f8a76f79_5abb6e10","line":27,"range":{"start_line":27,"start_character":16,"end_line":27,"end_character":36},"updated":"2021-03-10 13:42:20.000000000","message":"Hard code to haproxy?","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"380529368774dde56fcd8b5bfec01571eafa68ee","unresolved":false,"context_lines":[{"line_number":24,"context_line":"      login_port: \"{{ mariadb_port }}\""},{"line_number":25,"context_line":"      login_user: \"{{ database_user }}\""},{"line_number":26,"context_line":"      login_password: \"{{ database_password }}\""},{"line_number":27,"context_line":"      name: \"{{ mariadb_monitor_user }}\""},{"line_number":28,"context_line":"      password: \"\""},{"line_number":29,"context_line":"      host: \"%\""},{"line_number":30,"context_line":"      priv: \"*.*:USAGE\""}],"source_content_type":"text/x-yaml","patch_set":40,"id":"363e3df4_eccdfad1","line":27,"range":{"start_line":27,"start_character":16,"end_line":27,"end_character":36},"in_reply_to":"f8a76f79_5abb6e10","updated":"2021-03-27 20:24:47.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"}],"ansible/roles/mariadb/tasks/sharding.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":11,"context_line":"      name: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      host: \"%\""},{"line_number":14,"context_line":"      priv: \"*.*:ALL,GRANT\""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"7ee78956_d5c4daf5","line":14,"updated":"2021-01-26 11:15:45.000000000","message":"Running this simultaneously on multiple hosts in the same shard is asking for a race condition in the Ansible module :)","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d30a73987987a987135ed1ff59ee885337e460d6","unresolved":true,"context_lines":[{"line_number":11,"context_line":"      name: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      host: \"%\""},{"line_number":14,"context_line":"      priv: \"*.*:ALL,GRANT\""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"8c8e0183_402fe9a8","line":14,"in_reply_to":"7ee78956_d5c4daf5","updated":"2021-01-26 11:16:36.000000000","message":"No problem, the include is guarded with\n\ninventory_hostname \u003d\u003d groups[mariadb_shard][0]","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"0d7629535896fcc3fff7a1f20a8de5953ce50da7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"      name: \"{{ mariadb_shard_database_user }}\""},{"line_number":12,"context_line":"      password: \"{{ database_password }}\""},{"line_number":13,"context_line":"      host: \"%\""},{"line_number":14,"context_line":"      priv: \"*.*:ALL,GRANT\""}],"source_content_type":"text/x-yaml","patch_set":23,"id":"15864062_90a11fca","line":14,"in_reply_to":"8c8e0183_402fe9a8","updated":"2021-02-17 12:57:45.000000000","message":"Done","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"}],"ansible/roles/mariadb/tasks/wait_for_loadbalancer.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    module_name: command"},{"line_number":8,"context_line":"    module_args: \u003e"},{"line_number":9,"context_line":"      mysql -h {{ database_address }} -P {{ database_port }}"},{"line_number":10,"context_line":"      -u {{ mariadb_shard }} -p{{ database_password }} -B -N -e \u0027select @@hostname;\u0027"},{"line_number":11,"context_line":"  become: true"},{"line_number":12,"context_line":"  register: host_name"},{"line_number":13,"context_line":"  until: host_name is success"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"4f718218_5f2bcae2","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":25},"updated":"2021-01-26 11:15:45.000000000","message":"mariadb_shard_database_user?","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"82647da716313ce5f4d2f304c9998feff13ec576","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    module_name: command"},{"line_number":8,"context_line":"    module_args: \u003e"},{"line_number":9,"context_line":"      mysql -h {{ database_address }} -P {{ database_port }}"},{"line_number":10,"context_line":"      -u {{ mariadb_shard }} -p{{ database_password }} -B -N -e \u0027select @@hostname;\u0027"},{"line_number":11,"context_line":"  become: true"},{"line_number":12,"context_line":"  register: host_name"},{"line_number":13,"context_line":"  until: host_name is success"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"32a1f4cf_543bb4a4","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":25},"in_reply_to":"4f718218_5f2bcae2","updated":"2021-02-17 12:55:43.000000000","message":"Done","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"}],"ansible/site.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fd00a1c3ba2981030e304c33eb68ca008367f7f3","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        - enable_zookeeper_{{ enable_zookeeper | bool }}"},{"line_number":81,"context_line":"        - enable_zun_{{ enable_zun | bool }}"},{"line_number":82,"context_line":"  tags: always"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- name: Group mariadb hosts based on shards"},{"line_number":85,"context_line":"  hosts: mariadb"},{"line_number":86,"context_line":"  gather_facts: false"},{"line_number":87,"context_line":"  tasks:"},{"line_number":88,"context_line":"    - group_by:"},{"line_number":89,"context_line":"        key: \"shard_{{ database_shard_id | default(\u00271\u0027) }}\""},{"line_number":90,"context_line":"  tags: always"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- name: Apply role prechecks"},{"line_number":93,"context_line":"  gather_facts: false"},{"line_number":94,"context_line":"  # Apply only when kolla action is \u0027precheck\u0027."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"2246c703_0792b2e8","line":91,"range":{"start_line":83,"start_character":0,"end_line":91,"end_character":0},"updated":"2021-01-26 11:15:45.000000000","message":"Please factor out into a playbook and import, similar to how gather-facts.yml works.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"0d7629535896fcc3fff7a1f20a8de5953ce50da7","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        - enable_zookeeper_{{ enable_zookeeper | bool }}"},{"line_number":81,"context_line":"        - enable_zun_{{ enable_zun | bool }}"},{"line_number":82,"context_line":"  tags: always"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- name: Group mariadb hosts based on shards"},{"line_number":85,"context_line":"  hosts: mariadb"},{"line_number":86,"context_line":"  gather_facts: false"},{"line_number":87,"context_line":"  tasks:"},{"line_number":88,"context_line":"    - group_by:"},{"line_number":89,"context_line":"        key: \"shard_{{ database_shard_id | default(\u00271\u0027) }}\""},{"line_number":90,"context_line":"  tags: always"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- name: Apply role prechecks"},{"line_number":93,"context_line":"  gather_facts: false"},{"line_number":94,"context_line":"  # Apply only when kolla action is \u0027precheck\u0027."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"d24f0a61_d8f52734","line":91,"range":{"start_line":83,"start_character":0,"end_line":91,"end_character":0},"in_reply_to":"2246c703_0792b2e8","updated":"2021-02-17 12:57:45.000000000","message":"Radoslaw moved to mariadb role.","commit_id":"107018e6b9e3dce48dda01a07a55a110638a9d75"}],"etc/kolla/passwords.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ef38650c23b88ff93c6b341130b79eeeed781e7","unresolved":true,"context_lines":[{"line_number":15,"context_line":"database_password:"},{"line_number":16,"context_line":"# Password for the dedicated backup user account"},{"line_number":17,"context_line":"mariadb_backup_database_password:"},{"line_number":18,"context_line":"# Password for monitor user"},{"line_number":19,"context_line":"mariadb_monitor_password:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"####################"},{"line_number":22,"context_line":"# Docker options"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"9b0358a2_46bd21c2","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":25},"updated":"2021-03-10 13:42:20.000000000","message":"Remove me","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cc175d96a97427802e8c74e944140168b8a1c295","unresolved":false,"context_lines":[{"line_number":15,"context_line":"database_password:"},{"line_number":16,"context_line":"# Password for the dedicated backup user account"},{"line_number":17,"context_line":"mariadb_backup_database_password:"},{"line_number":18,"context_line":"# Password for monitor user"},{"line_number":19,"context_line":"mariadb_monitor_password:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"####################"},{"line_number":22,"context_line":"# Docker options"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"53647f01_df60e32a","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":25},"in_reply_to":"9b0358a2_46bd21c2","updated":"2021-03-18 13:32:18.000000000","message":"Done","commit_id":"07d1c7d95b5b8d7829e1ab96e101fb77fe20f5c3"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a1fa654733d41911b7a04609bd41b0e18aa5778e","unresolved":true,"context_lines":[{"line_number":15,"context_line":"database_password:"},{"line_number":16,"context_line":"# Password for the dedicated backup user account"},{"line_number":17,"context_line":"mariadb_backup_database_password:"},{"line_number":18,"context_line":"# Password for monitor user"},{"line_number":19,"context_line":"mariadb_monitor_password:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"####################"},{"line_number":22,"context_line":"# Docker options"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"b8572bba_58e63e36","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":25},"updated":"2021-03-18 10:01:26.000000000","message":"Still needs removing","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"380529368774dde56fcd8b5bfec01571eafa68ee","unresolved":false,"context_lines":[{"line_number":15,"context_line":"database_password:"},{"line_number":16,"context_line":"# Password for the dedicated backup user account"},{"line_number":17,"context_line":"mariadb_backup_database_password:"},{"line_number":18,"context_line":"# Password for monitor user"},{"line_number":19,"context_line":"mariadb_monitor_password:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"####################"},{"line_number":22,"context_line":"# Docker options"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"7d270d8c_a7d642b6","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":25},"in_reply_to":"b8572bba_58e63e36","updated":"2021-03-27 20:24:47.000000000","message":"Done","commit_id":"6f365373b8ce3283cd5729b195dccbcfe0a39937"}],"releasenotes/notes/mariadb-role-install-several-clusters-at-once-110057a091600d2c.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"aeecdcf2a2252e601f34a50b0f89cce10f30783b","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Refactors the mariadb role to use dynamic created groups instead of"},{"line_number":5,"context_line":"    single mariadb group. This provides a benefit for operators as they"},{"line_number":6,"context_line":"    are able to install several clusters at once and maintain with"},{"line_number":7,"context_line":"    kolla-ansible. This is usefull when deploying db clusters for cells,"},{"line_number":8,"context_line":"    or db clusters for services that have large demands on the database."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"682380ec_36621f6d","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":25},"updated":"2021-03-29 09:19:32.000000000","message":"This is an implementation detail. From the user\u0027s perspective, they just care that it allows them to create multiple clusters.","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Refactors the mariadb role to use dynamic created groups instead of"},{"line_number":5,"context_line":"    single mariadb group. This provides a benefit for operators as they"},{"line_number":6,"context_line":"    are able to install several clusters at once and maintain with"},{"line_number":7,"context_line":"    kolla-ansible. This is usefull when deploying db clusters for cells,"},{"line_number":8,"context_line":"    or db clusters for services that have large demands on the database."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"b14295ac_3928a182","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":25},"in_reply_to":"682380ec_36621f6d","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"aeecdcf2a2252e601f34a50b0f89cce10f30783b","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    or db clusters for services that have large demands on the database."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    The mariadb role is now creating dynamic groups where mariadb clusters"},{"line_number":12,"context_line":"    are installed. This introduces a few small changes in behaviour:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    * the mariadb role is now run for all hosts in dynamically created group"},{"line_number":15,"context_line":"      mariadb_ID, rather than single mariadb group."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"bfc2e28d_c402af2e","line":12,"range":{"start_line":11,"start_character":4,"end_line":12,"end_character":18},"updated":"2021-03-29 09:19:32.000000000","message":"ditto","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    or db clusters for services that have large demands on the database."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    The mariadb role is now creating dynamic groups where mariadb clusters"},{"line_number":12,"context_line":"    are installed. This introduces a few small changes in behaviour:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    * the mariadb role is now run for all hosts in dynamically created group"},{"line_number":15,"context_line":"      mariadb_ID, rather than single mariadb group."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"65bf9277_d757214c","line":12,"range":{"start_line":11,"start_character":4,"end_line":12,"end_character":18},"in_reply_to":"bfc2e28d_c402af2e","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"aeecdcf2a2252e601f34a50b0f89cce10f30783b","unresolved":true,"context_lines":[{"line_number":14,"context_line":"    * the mariadb role is now run for all hosts in dynamically created group"},{"line_number":15,"context_line":"      mariadb_ID, rather than single mariadb group."},{"line_number":16,"context_line":"    * these dynamic groups are created in mariadb role and their names"},{"line_number":17,"context_line":"      depends on hostvar ``mariadb_shard_id`` in inventory."},{"line_number":18,"context_line":"    * all hosts for all clusters must be in the mariadb group and has hostvar"},{"line_number":19,"context_line":"      ``mariadb_shard_id`` set to integer (ID) and if it is not defined,"},{"line_number":20,"context_line":"      value is set to ``mariadb_default_database_shard_id`` automatically."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"705c6a87_95540ecb","line":17,"range":{"start_line":17,"start_character":27,"end_line":17,"end_character":43},"updated":"2021-03-29 09:19:32.000000000","message":"Again, focus on clusters rather than groups.","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    * the mariadb role is now run for all hosts in dynamically created group"},{"line_number":15,"context_line":"      mariadb_ID, rather than single mariadb group."},{"line_number":16,"context_line":"    * these dynamic groups are created in mariadb role and their names"},{"line_number":17,"context_line":"      depends on hostvar ``mariadb_shard_id`` in inventory."},{"line_number":18,"context_line":"    * all hosts for all clusters must be in the mariadb group and has hostvar"},{"line_number":19,"context_line":"      ``mariadb_shard_id`` set to integer (ID) and if it is not defined,"},{"line_number":20,"context_line":"      value is set to ``mariadb_default_database_shard_id`` automatically."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"df3723ed_5ecfb154","line":17,"range":{"start_line":17,"start_character":27,"end_line":17,"end_character":43},"in_reply_to":"705c6a87_95540ecb","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"aeecdcf2a2252e601f34a50b0f89cce10f30783b","unresolved":true,"context_lines":[{"line_number":19,"context_line":"      ``mariadb_shard_id`` set to integer (ID) and if it is not defined,"},{"line_number":20,"context_line":"      value is set to ``mariadb_default_database_shard_id`` automatically."},{"line_number":21,"context_line":"    * if it is installed together with kolla-ansible\u0027s haproxy loadbalance"},{"line_number":22,"context_line":"      solution, **only** default cluster is balanced and backuped"},{"line_number":23,"context_line":"      by kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"62a7dce9_c7159a95","line":22,"range":{"start_line":22,"start_character":57,"end_line":22,"end_character":65},"updated":"2021-03-29 09:19:32.000000000","message":"backed up","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"287963029880ba5f5c7782b60368878e21c59dbb","unresolved":false,"context_lines":[{"line_number":19,"context_line":"      ``mariadb_shard_id`` set to integer (ID) and if it is not defined,"},{"line_number":20,"context_line":"      value is set to ``mariadb_default_database_shard_id`` automatically."},{"line_number":21,"context_line":"    * if it is installed together with kolla-ansible\u0027s haproxy loadbalance"},{"line_number":22,"context_line":"      solution, **only** default cluster is balanced and backuped"},{"line_number":23,"context_line":"      by kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":51,"id":"5558c869_90c66dd2","line":22,"range":{"start_line":22,"start_character":57,"end_line":22,"end_character":65},"in_reply_to":"62a7dce9_c7159a95","updated":"2021-03-29 10:40:12.000000000","message":"Done","commit_id":"6f725c5442f1ee178f3a1605f0b936169d3055c4"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c6db083785edc540697cf207ec34f0766707d438","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    for services that have large demands on the database."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    This introduces a few small changes in behaviour:"},{"line_number":12,"context_line":"    * all hosts for all clusters must be in the mariadb group and have the hostvar"},{"line_number":13,"context_line":"      ``mariadb_shard_id`` set to an integer which represents the id of the cluster."},{"line_number":14,"context_line":"      If it is not defined, it\u0027s value is set to ``mariadb_default_database_shard_id``"},{"line_number":15,"context_line":"      by default."},{"line_number":16,"context_line":"    * if it is installed together with kolla-ansible\u0027s haproxy load balancing"},{"line_number":17,"context_line":"      solution, **only** the default cluster is balanced and backed up"},{"line_number":18,"context_line":"      by kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":52,"id":"9f74fba6_c8462455","line":18,"range":{"start_line":11,"start_character":0,"end_line":18,"end_character":23},"updated":"2021-03-29 10:55:28.000000000","message":"TBH, these are not really issues that would affect users on upgrade, since they won\u0027t have customised new variables. This is almost a mini-documentation on the feature. I suggest we just remove the upgrade section.","commit_id":"46a94186400e219f94cb2108480a4dc2747bb4ed"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"5e71db3e30d63a63d3162aa0d00c4fe38d786fcb","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    for services that have large demands on the database."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    This introduces a few small changes in behaviour:"},{"line_number":12,"context_line":"    * all hosts for all clusters must be in the mariadb group and have the hostvar"},{"line_number":13,"context_line":"      ``mariadb_shard_id`` set to an integer which represents the id of the cluster."},{"line_number":14,"context_line":"      If it is not defined, it\u0027s value is set to ``mariadb_default_database_shard_id``"},{"line_number":15,"context_line":"      by default."},{"line_number":16,"context_line":"    * if it is installed together with kolla-ansible\u0027s haproxy load balancing"},{"line_number":17,"context_line":"      solution, **only** the default cluster is balanced and backed up"},{"line_number":18,"context_line":"      by kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":52,"id":"c8e3902e_9d403a93","line":18,"range":{"start_line":11,"start_character":0,"end_line":18,"end_character":23},"in_reply_to":"9f74fba6_c8462455","updated":"2021-03-29 11:01:42.000000000","message":"Done","commit_id":"46a94186400e219f94cb2108480a4dc2747bb4ed"}]}
