<div class="iw_mail" dir="auto" style="font-size: 13px;"><div>Hi!</div><div><br></div><div>Thanks a lot for the kind answers and explanations, now the picture of the concept and the current development situation overall is much clearer to me.</div><div><br></div><div>Regarding the question about different types of Guest Agents acquired, depending on the database type, that i asked, it is mainly based on the information i read</div><div>about in the latest edition of the book "<strong><em>Openstack Trove Essentials</em></strong>" by Alok Shrivastwa and Sunil Sarat that i purchased recently.</div><div><br></div><div>For example, as mentioned in the book:</div><div><br><em><strong>- Let's also look at the different types of guest agents that are required depending
on the database engine that needs to be supported. The different guest agents<br>  (for example, the MySQL and PostgreSQL guest agents) may even have different capabilities depending on what is supported on the particular database.</strong></em> (page 6)<br><strong><em>- The Guest Agent code is different for every datastore that needs to be supported and the Guest Agent for that particular datastore is installed on the corresponding image of the datastore version. </em></strong>(page 10)<br><strong><em>- As we have already seen in the previous chapters, the guest agent is different for different database engines, and hence the correct version of the guest agent needs to be installed on the system. </em></strong>(page 58)</div><div title="Page 27" class="page"><br></div><div title="Page 31" class="page"><div class="section"><div class="layoutArea">When it comes to guest image creation, i found now the places in the code that are used, as well as the acquired elements. A call to the function <strong>build_guest_image() </strong>is performed, involving those needed elements<br>as minimal requirements:</div><div class="layoutArea"><br></div><div class="layoutArea">- <strong><em>ubuntu-minimal </em></strong>(which also invokes <em><strong>ubuntu-common</strong></em> i think)</div><div class="layoutArea">- <strong><em>cloud-init-datasources</em></strong></div><div class="layoutArea">- <strong><em>pip-and-virtualenv</em></strong></div><div class="layoutArea">- <strong><em>pip-cache</em></strong></div><div class="layoutArea">- <strong><em>guest-agent</em></strong></div><div class="layoutArea">- <span class="pl-smi">${guest_os}</span>-<strong><em>docker</em></strong></div><div class="layoutArea">- <strong><em>root-passwd</em></strong></div><div class="layoutArea"><br></div><div class="layoutArea">ref:</div><div class="layoutArea">https://github.com/openstack/trove/blob/master/integration/scripts/functions_qemu</div><div class="layoutArea"><br></div><div class="layoutArea">So, when it comes to my question regarding the disabling of the automatic updates, it should be doable in a couple of ways. Either by executing a script placed in UserData during guest VM creation and initialisation</div><div class="layoutArea">or by manipulating elements (for example, such as we have a script placed in <strong>ubuntu-common</strong> element that disables privacy extensions for IPv6 (RFC4941):<br><br>/usr/local/lib/python3.6/dist-packages/diskimage_builder/elements/ubuntu-common/install.d/80-disable-rfc3041</div><div class="layoutArea"><br></div>I am really looking forward to our soon deployment of the Trove project, i see huge potential there!</div><div class="section"><br></div><div class="section">Best Regards</div></div><div class="iw-signature"><p><img class="fr-draggable" style="width: 1.7708in; height: 0.3229in;" src="https://www.citynetwork.eu/wp-content/uploads/2015/06/CityNetwork-Logo-Regular-2015-RGB.png" width="170" height="31" id="webClient__x0000_i1025" border="0"></p><p><strong>Bekir Fajkovic</strong><br>Senior DBA<br>Mobile: +46 70 019 48 47<br><br><a rel="noreferrer noopener" href="http://www.citynetwork.eu/">www.citynetwork.eu</a> | <a rel="noreferrer noopener" href="http://www.citycloud.com/">www.citycloud.com</a><br><br>INNOVATION THROUGH OPEN IT INFRASTRUCTURE<br>ISO 9001, 14001, 27001, 27015 & 27018 CERTIFIED</p></div><div><br></div><div style="font-size: 13px;font-family:Roboto, Tahoma, Helvetica, sans-serif;line-height:normal;" dir="LTR" class="iw-reply-block"><div style="margin:0;font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;"><div style="display:none;margin:0;font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;">----- Original Message -----</div><hr style="width:100%;padding:0;margin:10px 0;color:#888888;background-color:#888888;border-color:#DDDDDD;" width="100%" size="1">From: Lingxian Kong (<a style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;" href="mailto:anlin.kong@gmail.com">anlin.kong@gmail.com</a>)<br>Date: 01/24/21 12:02<br><span style="font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:12px;font-weight:300;line-height:150%;color:#333;text-decoration:none;font-weight:normal;">To: Bekir Fajkovic (<a style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;" href="mailto:bekir.fajkovic@citynetwork.eu">bekir.fajkovic@citynetwork.eu</a>)<br>Cc: openstack-discuss (<a style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;" href="mailto:openstack-discuss@lists.openstack.org">openstack-discuss@lists.openstack.org</a>)<br>Subject: <span style="font-family:Helvetica, sans-serif;font-size:12px;font-weight:300;line-height:150%;color:#333;text-decoration:none;font-weight:bold;">Re: Some questions regarding OpenStack Trove Victoria release</span></span></div><br><div><div dir="ltr"><div dir="ltr"><div style="font-family:verdana,sans-serif;" class="gmail_default">Hi Bekir,</div><div style="font-family:verdana,sans-serif;" class="gmail_default"><br></div><div style="font-family:verdana,sans-serif;" class="gmail_default">I'm very happy to answer your questions. See me comments in line.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jan 23, 2021 at 8:24 AM Bekir Fajkovic <<a href="mailto:bekir.fajkovic@citynetwork.eu">bekir.fajkovic@citynetwork.eu</a>> wrote:</div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="gmail_quote"><div style="font-size:13px;" dir="auto"><div><br></div><div>The questions:</div><div>------------------------</div><div><br></div><div>Having the fact that Trove Victoria release provides Docker containers as a new way of database instance provisioning, i am wondering how far the project</div><div>is developed in terms of covering the different types of databases. What i can see by mainly parsing the code provided on Github, those seem to be </div><div>officially released:</div><div><br></div><div>- MySQL</div><div>- MariaDB</div><div>- PostgreSQL</div><div><br></div><div>and the rest of the planned database types are in "experimental" phase. And also, regarding certain types of databases (for example MySQL, version 5.7 and 8.0) only certain </div><div>versions of the datastores seems to be supported, but not all.</div></div></blockquote><div><br></div><div><div style="font-family:verdana,sans-serif;" class="gmail_default">MySQL 5.7.x is supported but 8.0 is in experimental.</div></div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="gmail_quote"><div style="font-size:13px;" dir="auto"><div>On the other hand, nothing regarding datastore versions supported for MariaDB and PostgreSQL seems to be</div><div>mentioned somewhere. Could someone please confirm that as well as give some more details about it?</div></div></blockquote><div><br></div><div><div style="font-family:verdana,sans-serif;" class="gmail_default">MariaDB 10.4.x and PostgreSQL 12.4 are supported. The other versions need to be fully tested.</div></div><div><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="gmail_quote"><div style="font-size:13px;" dir="auto"><div><br></div><div>I successfully managed to create certain versions of datastores in my devstack environment, belonging to those 3 database types mentioned above (and based on</div><div>trovestack-generated dev guest image that is by default delivered with devstack installation), but not without some undesirable events. For example, i am able to register </div><div>PostgreSQL datastore version 12 and instantiate a database instance of that version but not version 13 and above, where i get some hostname-related errors etc.</div></div></blockquote><div><br></div><div style="font-family:verdana,sans-serif;" class="gmail_default">Yes, because PostgreSQL 13 has never been tested.</div><div style="font-family:verdana,sans-serif;" class="gmail_default"><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="gmail_quote"><div style="font-size:13px;" dir="auto"><div><br></div><div>Also, a question regarding the building of the production-ready guest image. As mentioned, Trovestack script is provided as a possible way of producing the images (by omitting</div><div>dev option the Trove Guest Agent binaries are deployed into the instantiated VM). How does an image produced this way looks like? From where the base image is fetched,</div><div>is it a "cloud based image" with cloud-init in it, are the automatic security and software patching features disabled in produced image, so that we do not get unexpected service </div><div>interruptions when the OS suddenly decides to start updating itself etc..</div></div></blockquote><div><br></div><div style="font-family:verdana,sans-serif;" class="gmail_default">If you look at trovestack script implementation, you can see it's calling disk-image-create script from diskimage-builder, and there are some elements[2] defined in trove repo[3] for building the image.</div><div style="font-family:verdana,sans-serif;" class="gmail_default"><br></div><div style="font-family:verdana,sans-serif;" class="gmail_default">[1]: <a href="https://docs.openstack.org/diskimage-builder/latest">https://docs.openstack.org/diskimage-builder/latest</a></div><div style="font-family:verdana,sans-serif;" class="gmail_default">[2]: <a href="https://docs.openstack.org/diskimage-builder/latest/elements.html">https://docs.openstack.org/diskimage-builder/latest/elements.html</a></div><div style="font-family:verdana,sans-serif;" class="gmail_default">[3]: <a href="https://github.com/openstack/trove/tree/master/integration/scripts/files/elements">https://github.com/openstack/trove/tree/master/integration/scripts/files/elements</a></div><div style="font-family:verdana,sans-serif;" class="gmail_default"><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="gmail_quote"><div style="font-size:13px;" dir="auto"><div><br></div><div>Regarding the Trove Guest Agent service - i read in some Trove books previously that there are dedicated agents for each and every database type, is it the same situation</div><div>in Victoria release, or is there an "universal" Guest Agent covering all the database types nowadays? Where is the code that adapts the Agent commands towards the database </div><div>instances placed inside the project?</div></div></blockquote><div><br></div><div><div style="font-family:verdana,sans-serif;" class="gmail_default">Trove never has dedicated agents for each and every database type, it's using the same trove-guestagent but with different configurations for different datastores.</div><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="gmail_quote"><div style="font-size:13px;" dir="auto"><div><br></div><div>The backups - as i can see there seem to be some kind of dedicated docker-backup images involved in each database type. Could someone explain the internals of backup mechanisms</div><div>inside Trove Victoria release in more details?</div></div></blockquote><div><br></div><div><div style="font-family:verdana,sans-serif;" class="gmail_default">The backup container image is created to help trove-guestagent to achieve datastore-agnostic (so we only need to maintain a universal guest image), we shift the backup and restore functionalities and needed tools to a dedicated container. The implementation can be found here[4].</div><div style="font-family:verdana,sans-serif;" class="gmail_default"><br></div><div style="font-family:verdana,sans-serif;" class="gmail_default">[4]: <a href="https://github.com/openstack/trove/tree/master/backup">https://github.com/openstack/trove/tree/master/backup</a></div><br></div><div><br></div><div><span style="color:rgb(102,102,102);font-family:monospace,monospace;">---</span></div><div><div>Lingxian Kong</div><div>Senior Software Engineer</div><div>Catalyst Cloud</div></div><div><a style="font-family:monospace,monospace;" href="http://www.catalystcloud.nz">www.catalystcloud.nz</a> </div></div></div></div></div></div>