)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"81dfa69b76d8c6688d7159892f679689d2d483d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0b44b44d_93fbc43b","updated":"2026-09-22 22:05:49.000000000","message":"lgtm","commit_id":"ec1488a785a3e4350092ac714711fb70146a8058"}],"doc/source/admin/building_guest_images.rst":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    For testing purpose, the Trove guest images of some specific databases are"},{"line_number":20,"context_line":"    periodically built and published in"},{"line_number":21,"context_line":"    http://tarballs.openstack.org/trove/images/ in Trove upstream CI."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Since Victoria release, Trove supports to run database service as docker"},{"line_number":24,"context_line":"    container inside the guest instance, so that we don\u0027t need to maintain"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5800d46f_44cc5295","line":21,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\n    https://tarballs.opendev.org/openstack/trove/images/ in Trove upstream CI.\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    For testing purpose, the Trove guest images of some specific databases are"},{"line_number":20,"context_line":"    periodically built and published in"},{"line_number":21,"context_line":"    http://tarballs.openstack.org/trove/images/ in Trove upstream CI."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Since Victoria release, Trove supports to run database service as docker"},{"line_number":24,"context_line":"    container inside the guest instance, so that we don\u0027t need to maintain"}],"source_content_type":"text/x-rst","patch_set":2,"id":"098fcb1b_696f0f50","line":21,"in_reply_to":"5800d46f_44cc5295","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":24,"context_line":"    container inside the guest instance, so that we don\u0027t need to maintain"},{"line_number":25,"context_line":"    multiple images for different database service. That\u0027s the reason that you"},{"line_number":26,"context_line":"    can see images for MySQL and MariaDB for Ussuri and Train releases in"},{"line_number":27,"context_line":"    http://tarballs.openstack.org/trove/images/."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    Additionally, if you install Trove in devstack environment, the guest image"},{"line_number":30,"context_line":"    is created and registered in Glance automatically, unless it\u0027s disabled by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ffb5c16_c337e5e4","line":27,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\n    https://tarballs.opendev.org/openstack/trove/images/\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    container inside the guest instance, so that we don\u0027t need to maintain"},{"line_number":25,"context_line":"    multiple images for different database service. That\u0027s the reason that you"},{"line_number":26,"context_line":"    can see images for MySQL and MariaDB for Ussuri and Train releases in"},{"line_number":27,"context_line":"    http://tarballs.openstack.org/trove/images/."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    Additionally, if you install Trove in devstack environment, the guest image"},{"line_number":30,"context_line":"    is created and registered in Glance automatically, unless it\u0027s disabled by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7c508391_f25a7e03","line":27,"in_reply_to":"3ffb5c16_c337e5e4","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    contains ``OpenStack`` to configure cloud-init to use metadata serivce."},{"line_number":37,"context_line":"    If cloud-init still doesn\u0027t inject files after changing the environment,"},{"line_number":38,"context_line":"    please ask your IaaS provider admin to enable OpenStack metadata service."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"High Level Overview of a Trove Guest Instance"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a27491b2_470b516b","line":39,"updated":"2026-09-21 21:07:33.000000000","message":"I think, we can rewrite this block complete and remove information about old releases, save only current..","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"9c825cfc4f2eaa0d05f33d7dd95526ac654b03ed","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    contains ``OpenStack`` to configure cloud-init to use metadata serivce."},{"line_number":37,"context_line":"    If cloud-init still doesn\u0027t inject files after changing the environment,"},{"line_number":38,"context_line":"    please ask your IaaS provider admin to enable OpenStack metadata service."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"High Level Overview of a Trove Guest Instance"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"f8476f1d_0f0672d3","line":39,"in_reply_to":"a27491b2_470b516b","updated":"2026-09-22 08:39:33.000000000","message":"I think there still some useful information for history, I\u0027m quite sure if it\u0027s necessary 🙂","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":58,"context_line":"Since Vitoria, the database service is running as docker container inside the"},{"line_number":59,"context_line":"trove guest instance, so docker should be installed when building the guest"},{"line_number":60,"context_line":"image. This also means the trove guest instance should be able to pull docker"},{"line_number":61,"context_line":"images from the image registry(either from user port or trove management port),"},{"line_number":62,"context_line":"the related options for container images are:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1bcb9f05_4b0a3018","line":61,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nimages from the image registry (either from user port or trove management port),\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Since Vitoria, the database service is running as docker container inside the"},{"line_number":59,"context_line":"trove guest instance, so docker should be installed when building the guest"},{"line_number":60,"context_line":"image. This also means the trove guest instance should be able to pull docker"},{"line_number":61,"context_line":"images from the image registry(either from user port or trove management port),"},{"line_number":62,"context_line":"the related options for container images are:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":2,"id":"43f7502e_25adee3f","line":61,"in_reply_to":"1bcb9f05_4b0a3018","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":74,"context_line":"   [mariadb]"},{"line_number":75,"context_line":"   docker_image"},{"line_number":76,"context_line":"   backup_docker_image"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"-----------------"},{"line_number":80,"context_line":"Trove Guest Agent"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c801c289_d178a612","line":77,"updated":"2026-09-21 21:07:33.000000000","message":"remove duplicate line.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"   [mariadb]"},{"line_number":75,"context_line":"   docker_image"},{"line_number":76,"context_line":"   backup_docker_image"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"-----------------"},{"line_number":80,"context_line":"Trove Guest Agent"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5d8450e2_d1358927","line":77,"in_reply_to":"c801c289_d178a612","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":91,"context_line":"Injected Configuration for the Guest Agent"},{"line_number":92,"context_line":"------------------------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When TaskManager launches the guest VM it injects config files into the"},{"line_number":95,"context_line":"VM, including:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``/etc/trove/conf.d/guest_info.conf``: Contains some information about"}],"source_content_type":"text/x-rst","patch_set":2,"id":"0383136e_1718b27a","line":94,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nWhen TaskManager launches the guest instance it injects config files into the\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Injected Configuration for the Guest Agent"},{"line_number":92,"context_line":"------------------------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When TaskManager launches the guest VM it injects config files into the"},{"line_number":95,"context_line":"VM, including:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``/etc/trove/conf.d/guest_info.conf``: Contains some information about"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6d1620ea_4404ed11","line":94,"in_reply_to":"0383136e_1718b27a","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":92,"context_line":"------------------------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When TaskManager launches the guest VM it injects config files into the"},{"line_number":95,"context_line":"VM, including:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``/etc/trove/conf.d/guest_info.conf``: Contains some information about"},{"line_number":98,"context_line":"  the guest, e.g. the guest identifier, the tenant ID, etc."}],"source_content_type":"text/x-rst","patch_set":2,"id":"b9993961_7f7b8122","line":95,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\ninstane, including:\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"------------------------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When TaskManager launches the guest VM it injects config files into the"},{"line_number":95,"context_line":"VM, including:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``/etc/trove/conf.d/guest_info.conf``: Contains some information about"},{"line_number":98,"context_line":"  the guest, e.g. the guest identifier, the tenant ID, etc."}],"source_content_type":"text/x-rst","patch_set":2,"id":"67b5dbb5_c6852094","line":95,"in_reply_to":"b9993961_7f7b8122","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":95,"context_line":"VM, including:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``/etc/trove/conf.d/guest_info.conf``: Contains some information about"},{"line_number":98,"context_line":"  the guest, e.g. the guest identifier, the tenant ID, etc."},{"line_number":99,"context_line":"* ``/etc/trove/conf.d/trove-guestagent.conf``: The config file for the"},{"line_number":100,"context_line":"  guest agent service."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"e41b7961_fe4201ba","line":98,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\n  the guest, e.g. the guest identifier, the project ID, etc.\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"VM, including:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* ``/etc/trove/conf.d/guest_info.conf``: Contains some information about"},{"line_number":98,"context_line":"  the guest, e.g. the guest identifier, the tenant ID, etc."},{"line_number":99,"context_line":"* ``/etc/trove/conf.d/trove-guestagent.conf``: The config file for the"},{"line_number":100,"context_line":"  guest agent service."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"41f5cb63_90a25dbb","line":98,"in_reply_to":"e41b7961_fe4201ba","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":102,"context_line":"In addition to these config files, Trove supports to inject user data when"},{"line_number":103,"context_line":"launching the instance for customization on boot time, e.g. network"},{"line_number":104,"context_line":"configuration, hosts file settings, etc. The user data files are located inside"},{"line_number":105,"context_line":"the directory configured by ``cloudinit_location``, for mysql, the file name is"},{"line_number":106,"context_line":"``mysql.cloudinit``"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"56e920e0_3d43f7b0","line":105,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nthe directory configured by ``cloudinit_location``, for MySQL, the file name is\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"In addition to these config files, Trove supports to inject user data when"},{"line_number":103,"context_line":"launching the instance for customization on boot time, e.g. network"},{"line_number":104,"context_line":"configuration, hosts file settings, etc. The user data files are located inside"},{"line_number":105,"context_line":"the directory configured by ``cloudinit_location``, for mysql, the file name is"},{"line_number":106,"context_line":"``mysql.cloudinit``"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f36d315c_6a1e273f","line":105,"in_reply_to":"56e920e0_3d43f7b0","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":114,"context_line":"database service is accessible over the tenant network provided when creating"},{"line_number":115,"context_line":"the database instance."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"The cloud administrator is able to config management"},{"line_number":118,"context_line":"networks(``CONF.management_networks``) that is invisible to the cloud tenants,"},{"line_number":119,"context_line":"but used for communication between database instance and the control plane"},{"line_number":120,"context_line":"services(e.g. the message queue)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"c5816589_a6060058","line":117,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nOperator is able to config management\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"database service is accessible over the tenant network provided when creating"},{"line_number":115,"context_line":"the database instance."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"The cloud administrator is able to config management"},{"line_number":118,"context_line":"networks(``CONF.management_networks``) that is invisible to the cloud tenants,"},{"line_number":119,"context_line":"but used for communication between database instance and the control plane"},{"line_number":120,"context_line":"services(e.g. the message queue)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"abe3cdcc_62bae8b5","line":117,"in_reply_to":"c5816589_a6060058","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":115,"context_line":"the database instance."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"The cloud administrator is able to config management"},{"line_number":118,"context_line":"networks(``CONF.management_networks``) that is invisible to the cloud tenants,"},{"line_number":119,"context_line":"but used for communication between database instance and the control plane"},{"line_number":120,"context_line":"services(e.g. the message queue)."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"d24ee5c9_822dcdbb","line":118,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nnetworks(``CONF.management_networks``) that is invisible to the cloud projects,\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"the database instance."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"The cloud administrator is able to config management"},{"line_number":118,"context_line":"networks(``CONF.management_networks``) that is invisible to the cloud tenants,"},{"line_number":119,"context_line":"but used for communication between database instance and the control plane"},{"line_number":120,"context_line":"services(e.g. the message queue)."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7822e9f0_fc65bca7","line":118,"in_reply_to":"d24ee5c9_822dcdbb","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":117,"context_line":"The cloud administrator is able to config management"},{"line_number":118,"context_line":"networks(``CONF.management_networks``) that is invisible to the cloud tenants,"},{"line_number":119,"context_line":"but used for communication between database instance and the control plane"},{"line_number":120,"context_line":"services(e.g. the message queue)."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Building Guest Images"},{"line_number":123,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe22620_a5582149","line":120,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nservices (e.g. the message queue).\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"The cloud administrator is able to config management"},{"line_number":118,"context_line":"networks(``CONF.management_networks``) that is invisible to the cloud tenants,"},{"line_number":119,"context_line":"but used for communication between database instance and the control plane"},{"line_number":120,"context_line":"services(e.g. the message queue)."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Building Guest Images"},{"line_number":123,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d871b55b_9e1c09ca","line":120,"in_reply_to":"ffe22620_a5582149","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":175,"context_line":"* Some other global variables:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"  * ``HOST_SCP_USERNAME``: Only used in dev mode, this is the user name used by"},{"line_number":178,"context_line":"    guest agent to connect to the controller host, e.g. in devstack"},{"line_number":179,"context_line":"    environment, it should be the ``stack`` user."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"* The image type can be easily changed by specifying a different image file"}],"source_content_type":"text/x-rst","patch_set":2,"id":"06f172dd_e6544b48","line":178,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\n    guest agent to connect to the controller host, e.g. in DevStack\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"* Some other global variables:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"  * ``HOST_SCP_USERNAME``: Only used in dev mode, this is the user name used by"},{"line_number":178,"context_line":"    guest agent to connect to the controller host, e.g. in devstack"},{"line_number":179,"context_line":"    environment, it should be the ``stack`` user."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"* The image type can be easily changed by specifying a different image file"}],"source_content_type":"text/x-rst","patch_set":2,"id":"26a3b64b_e54b3d00","line":178,"in_reply_to":"06f172dd_e6544b48","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"--------------------------"},{"line_number":218,"context_line":"Use your own Docker Images"},{"line_number":219,"context_line":"--------------------------"},{"line_number":220,"context_line":"A Docker registry is a locally-hosted registry that replaces the need to pull"},{"line_number":221,"context_line":"from a public registry to get images."},{"line_number":222,"context_line":"You can pull and push your own images when you use a private Docker registry."}],"source_content_type":"text/x-rst","patch_set":2,"id":"8d4f8d81_36a2053c","line":219,"updated":"2026-09-21 21:07:33.000000000","message":"Add free line after.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"--------------------------"},{"line_number":218,"context_line":"Use your own Docker Images"},{"line_number":219,"context_line":"--------------------------"},{"line_number":220,"context_line":"A Docker registry is a locally-hosted registry that replaces the need to pull"},{"line_number":221,"context_line":"from a public registry to get images."},{"line_number":222,"context_line":"You can pull and push your own images when you use a private Docker registry."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1dc46111_1c31cb38","line":219,"in_reply_to":"8d4f8d81_36a2053c","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":".. code-block:: console"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    sudo docker run -d --net\u003dhost -e REGISTRY_HTTP_ADDR\u003d0.0.0.0:4000 --restart\u003dalways -v /opt/trove_registry/:/var/lib/registry --name registry registry:2"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Before you build your own images, clone Trove\u0027s git repository and define some environments."},{"line_number":234,"context_line":"Please note: your registry address should be reachable by guest agent."}],"source_content_type":"text/x-rst","patch_set":2,"id":"2426fa97_84ea377c","line":231,"updated":"2026-09-21 21:07:33.000000000","message":"Really registry:2 not 3?","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":".. code-block:: console"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    sudo docker run -d --net\u003dhost -e REGISTRY_HTTP_ADDR\u003d0.0.0.0:4000 --restart\u003dalways -v /opt/trove_registry/:/var/lib/registry --name registry registry:2"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Before you build your own images, clone Trove\u0027s git repository and define some environments."},{"line_number":234,"context_line":"Please note: your registry address should be reachable by guest agent."}],"source_content_type":"text/x-rst","patch_set":2,"id":"f194276d_fe962ecd","line":231,"in_reply_to":"2426fa97_84ea377c","updated":"2026-09-22 08:36:48.000000000","message":"I think we can freely use v3 registry","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":262,"context_line":"    $ docker build -t ${TROVE_DATABASE_BACKUP_IMAGE} --build-arg DATASTORE\u003d${DATABASE_NAME} --build-arg DATASTORE_VERSION\u003d${DATABASE_VERSION} ."},{"line_number":263,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"For mariadb users, you can pull and push your own images to your own registry as follows:"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6c289084_9fc09b09","line":265,"updated":"2026-09-21 21:07:33.000000000","message":"Remove line","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    $ docker build -t ${TROVE_DATABASE_BACKUP_IMAGE} --build-arg DATASTORE\u003d${DATABASE_NAME} --build-arg DATASTORE_VERSION\u003d${DATABASE_VERSION} ."},{"line_number":263,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"For mariadb users, you can pull and push your own images to your own registry as follows:"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f47e001e_3600881a","line":265,"in_reply_to":"6c289084_9fc09b09","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":263,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"For mariadb users, you can pull and push your own images to your own registry as follows:"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":".. code-block:: console"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"409862af_963e13b3","line":266,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nFor MariaDB users, you can pull and push your own images to your own registry as follows:\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"For mariadb users, you can pull and push your own images to your own registry as follows:"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":".. code-block:: console"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ec1bd07d_5f794a26","line":266,"in_reply_to":"409862af_963e13b3","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":283,"context_line":"    $ docker build -t ${TROVE_DATABASE_BACKUP_IMAGE} --build-arg DATASTORE\u003d${DATABASE_NAME} --build-arg DATASTORE_VERSION\u003d${DATABASE_VERSION} ."},{"line_number":284,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"For postgres users, you can pull and push your own images to your own registry as follows:"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":".. code-block:: console"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9137aced_43dd1797","line":286,"updated":"2026-09-21 21:07:33.000000000","message":"```suggestion\nFor PostgreSQL users, you can pull and push your own images to your own registry as follows:\n```","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    $ docker build -t ${TROVE_DATABASE_BACKUP_IMAGE} --build-arg DATASTORE\u003d${DATABASE_NAME} --build-arg DATASTORE_VERSION\u003d${DATABASE_VERSION} ."},{"line_number":284,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"For postgres users, you can pull and push your own images to your own registry as follows:"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":".. code-block:: console"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"e5a7b37b_228837de","line":286,"in_reply_to":"9137aced_43dd1797","updated":"2026-09-22 08:36:48.000000000","message":"Fix applied.","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":".. code-block:: console"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    $ DATABASE_NAME\u003dpostgres"},{"line_number":291,"context_line":"    $ DATABASE_VERSION\u003d18"},{"line_number":292,"context_line":"    $ TROVE_DATABASE_IMAGE\u003d${YOUR_REGISTRY_HTTP_ADDR}/${YOUR_REGISTRY_REPO_NAME}/${DATABASE_NAME}:${DATABASE_VERSION}"},{"line_number":293,"context_line":"    $ docker pull ${DATABASE_NAME}:${DATABASE_VERSION}"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e1848ece_3fa8a735","line":290,"updated":"2026-09-21 21:07:33.000000000","message":"right?","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":".. code-block:: console"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    $ DATABASE_NAME\u003dpostgres"},{"line_number":291,"context_line":"    $ DATABASE_VERSION\u003d18"},{"line_number":292,"context_line":"    $ TROVE_DATABASE_IMAGE\u003d${YOUR_REGISTRY_HTTP_ADDR}/${YOUR_REGISTRY_REPO_NAME}/${DATABASE_NAME}:${DATABASE_VERSION}"},{"line_number":293,"context_line":"    $ docker pull ${DATABASE_NAME}:${DATABASE_VERSION}"}],"source_content_type":"text/x-rst","patch_set":2,"id":"12fffbff_2f615b37","line":290,"in_reply_to":"e1848ece_3fa8a735","updated":"2026-09-22 08:36:48.000000000","message":"Yes","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":293,"context_line":"    $ docker pull ${DATABASE_NAME}:${DATABASE_VERSION}"},{"line_number":294,"context_line":"    $ docker tag ${DATABASE_NAME}:${DATABASE_VERSION} ${TROVE_DATABASE_IMAGE}"},{"line_number":295,"context_line":"    $ docker push ${TROVE_DATABASE_IMAGE}"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"You can build and push your backup image to your own registry as follows:"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"93a50945_b0f448db","line":296,"updated":"2026-09-21 21:07:33.000000000","message":"remove line","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":293,"context_line":"    $ docker pull ${DATABASE_NAME}:${DATABASE_VERSION}"},{"line_number":294,"context_line":"    $ docker tag ${DATABASE_NAME}:${DATABASE_VERSION} ${TROVE_DATABASE_IMAGE}"},{"line_number":295,"context_line":"    $ docker push ${TROVE_DATABASE_IMAGE}"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"You can build and push your backup image to your own registry as follows:"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"274e813c_2744b0c0","line":296,"in_reply_to":"93a50945_b0f448db","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[{"line_number":303,"context_line":"    $ TROVE_DATABASE_BACKUP_IMAGE\u003d${YOUR_REGISTRY_HTTP_ADDR}/${YOUR_REGISTRY_REPO_NAME}/db-backup-${DATABASE_NAME}:${DATABASE_VERSION}"},{"line_number":304,"context_line":"    $ docker build -t ${TROVE_DATABASE_BACKUP_IMAGE} --build-arg DATASTORE\u003d${DATABASE_NAME} --build-arg DATASTORE_VERSION\u003d${DATABASE_VERSION} ."},{"line_number":305,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"After adding your own docker images to your docker registry, you should modify the configuration files and restart Trove processes."},{"line_number":309,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a6309186_091ea868","line":306,"updated":"2026-09-21 21:07:33.000000000","message":"remove line","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[{"line_number":303,"context_line":"    $ TROVE_DATABASE_BACKUP_IMAGE\u003d${YOUR_REGISTRY_HTTP_ADDR}/${YOUR_REGISTRY_REPO_NAME}/db-backup-${DATABASE_NAME}:${DATABASE_VERSION}"},{"line_number":304,"context_line":"    $ docker build -t ${TROVE_DATABASE_BACKUP_IMAGE} --build-arg DATASTORE\u003d${DATABASE_NAME} --build-arg DATASTORE_VERSION\u003d${DATABASE_VERSION} ."},{"line_number":305,"context_line":"    $ docker push ${TROVE_DATABASE_BACKUP_IMAGE}"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"After adding your own docker images to your docker registry, you should modify the configuration files and restart Trove processes."},{"line_number":309,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"87b90329_a2d9415b","line":306,"in_reply_to":"a6309186_091ea868","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"671c31ed5c642daf086d777770fb380e9bb8e4fd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"643ced34_bbf00415","line":338,"updated":"2026-09-21 21:07:33.000000000","message":"remove line","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"},{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"da9859fd5f76b3fef12ffbb00207fd0763fbc60d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9d163a7b_c34c1242","line":338,"in_reply_to":"643ced34_bbf00415","updated":"2026-09-22 08:36:48.000000000","message":"Done","commit_id":"d439179688af24b37f588ab0ac79ef71105013ec"}]}
