<div dir="ltr">I am 10000% behind that idea.  It makes things easier to manage.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Oct 24, 2013 at 10:44 AM, Tim Simpson <span dir="ltr"><<a href="mailto:tim.simpson@rackspace.com" target="_blank">tim.simpson@rackspace.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma">So if we decide to support any number of config options for each various datastore version, eventually we'll have large config files that will be hard to manage.
<div><br>
</div>
<div>What about storing the extra config info for each datastore version in its own independent config file? So rather than having one increasingly bloated config file used by everything, you could optionally specify a file in the datastore_versions table of
 the database that would be looked up similar to how we load template files on demand. </div>
<div><br>
</div>
<div>- Tim</div>
<div>
<div style="font-size:16px;font-family:Times New Roman">
<hr>
<div style="direction:ltr"><font color="#000000" face="Tahoma"><b>From:</b> Ilya Sviridov [<a href="mailto:isviridov@mirantis.com" target="_blank">isviridov@mirantis.com</a>]<br>
<b>Sent:</b> Thursday, October 24, 2013 7:40 AM<br>
<b>To:</b> OpenStack Development Mailing List<br>
<b>Subject:</b> Re: [openstack-dev] [Trove] How users should specify a datastore type when creating an instance<br>
</font><br>
</div><div><div class="h5">
<div></div>
<div>
<div dir="ltr">
<div>
<div>So, we have 2 places for configuration management - database and config file<br>
</div>
<br>
</div>
<div>Config file for tunning all datasource type behavior during installation and database for all changeable configurations during usage and administration of Trove installation.<br>
<br>
</div>
<div>Database usecases:<br>
</div>
<div>- update/custom image<br>
</div>
<div>- update/custom packages<br>
</div>
<div>- activating/deactivating datastore_type<br>
</div>
<div><br>
</div>
<div>Config file usecases:<br>
</div>
<div>- security group policy<br>
</div>
<div>- provisioning mechanism<br>
</div>
<div>- guest configuration parameters per database engine<br>
</div>
<div>- provisioning  parameters, templates<br>
</div>
<div>- manager class<br>
</div>
<div>...<br>
<br>
</div>
<div>In case if i need to register one more MySQL installation with following customization:<br>
</div>
<div>- custom heat template<br>
</div>
<div></div>
<div>- custom packages and additional monitoring tool package<br>
</div>
<div>- open specific port for working with my monitoring tool on instance<br>
<br>
</div>
<div>According to current concept should i add one more section in addition to existing mysql like below?<br>
<br>
<span style="font-family:courier new,monospace">[monitored_mysql]<br>
mount_point=/var/lib/mysql<br>
</span></div>
<div><span style="font-family:courier new,monospace"><br>
#8080 is port of my monitoring tool<br>
</span></div>
<div><span style="font-family:courier new,monospace">trove_security_group_rule_ports =
</span><span style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">3306,
</span>8080<br>
</span></div>
<div><span style="font-family:courier new,monospace">heat_template=/etc/trove/heat_templates/monitored_mysql.yaml<br>
</span></div>
<div><span style="font-family:courier new,monospace">...<br>
</span><br>
</div>
<div>and put additional packages to database configuration?<br>
</div>
<div><br>
</div>
<div><br>
<br>
</div>
<br>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr"><font color="#888888">
<div><span style>With best regards,<br>
Ilya Sviridov<br>
</span><span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><br>
<a href="http://www.mirantis.ru/" style="color:rgb(0,0,204)" target="_blank"></a></span></div>
</font></div>
</div>
<br>
<br>
<div class="gmail_quote">On Wed, Oct 23, 2013 at 9:37 PM, Michael Basnight <span dir="ltr">
<<a href="mailto:mbasnight@gmail.com" target="_blank">mbasnight@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div><br>
On Oct 23, 2013, at 10:54 AM, Ilya Sviridov wrote:<br>
<br>
> Besides the strategy of selecting the default behavior.<br>
><br>
> Let me share with you my ideas of configuration management in Trove and how the datastore concept can help with that.<br>
><br>
> Initially there was only one database and all configuration was in one config file.<br>
> With adding of new databases, heat provisioning mechanism, we are introducing more options.<br>
><br>
> Not only assigning specific image_id, but custom packages, heat templates, probably specific strategies of working with security groups.<br>
> Such needs already exist because we have a lot of optional things in config, and any new feature is implemented with back sight to already existing legacy installations of Trove.<br>
><br>
> What is  actually datastore_type + datastore_version?<br>
><br>
> The model which glues all the bricks together, so let us use it for all variable part of *service type* configuration.<br>
><br>
> from current config file<br>
><br>
> # Trove DNS<br>
> trove_dns_support = False<br>
><br>
> # Trove Security Groups for Instances<br>
> trove_security_groups_support = True<br>
> trove_security_groups_rules_support = False<br>
> trove_security_group_rule_protocol = tcp<br>
> trove_security_group_rule_port = 3306<br>
> trove_security_group_rule_cidr = <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a><br>
><br>
> #guest_config = $pybasedir/etc/trove/trove-guestagent.conf.sample<br>
> #cloudinit_location = /etc/trove/cloudinit<br>
><br>
> block_device_mapping = vdb<br>
> device_path = /dev/vdb<br>
> mount_point = /var/lib/mysql<br>
><br>
> All that configurations can be moved to data_strore (some defined in heat templates) and be manageable by operator in case if any default behavior should be changed.<br>
><br>
> The trove-config becomes core functionality specific only.<br>
<br>
</div>
</div>
Its fine for it to be in the config or the heat templates… im not sure it matters. what i would like to see is that specific thing to each service be in their own config group in the configuration.<br>
<br>
[mysql]<br>
mount_point=/var/lib/mysql<br>
…<br>
[redis]<br>
volume_support=False<br>
…..<br>
<br>
and so on.<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div></div></div>
</div>
</div>
</div>

<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>