<div dir="ltr"><div><div class="gmail_extra"><div class="gmail_quote"><br>On Tue, Oct 1, 2013 at 6:45 PM, 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma">Hi fellow Trove devs,<br>
<br>
With the Designate project ramping up, its time to refactor the ancient DNS code that's in Trove to work with Designate.<br>
<br>
The good news is since the beginning, it has been possible to add new drivers for DNS in order to use different services. Right now we only have a driver for the Rackspace DNS API, but it should be possible to write one for Designate as well.<br>
</div></div></blockquote><div><br>How it corelates with Trove dirrection to use HEAT for all provisioning and managing cloud resources? <br>There are BPs for Designate resource (<a href="https://blueprints.launchpad.net/heat/+spec/designate-resource" target="_blank">https://blueprints.launchpad.net/heat/+spec/designate-resource</a>) and Rackspace DNS (<a href="https://blueprints.launchpad.net/heat/+spec/rax-dns-resource" target="_blank">https://blueprints.launchpad.net/heat/+spec/rax-dns-resource</a>) as well and it looks logically to use the HEAT for that.<br>
<br></div><div>Currently Trove has logic for provisioning instances, dns driver, creation of security group, but with switching to HEAT way, we have duplication of the same functionality we have to support. <br></div><div>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style="direction:ltr;font-size:10pt;font-family:Tahoma">
<br>
However, there's a bigger topic here. In a gist sent to me recently by Dennis M. with his thoughts on how this work should proceed, he included the comment that Trove should *only* support Designate: <a href="https://gist.github.com/crazymac/6705456/raw/2a16c7a249e73b3e42d98f5319db167f8d09abe0/gistfile1.txt" target="_blank">https://gist.github.com/crazymac/6705456/raw/2a16c7a249e73b3e42d98f5319db167f8d09abe0/gistfile1.txt</a><br>
<br>
I disagree. I have been waiting for a canonical DNS solution such as Designate to enter the Openstack umbrella for years now, and am looking forward to having Trove consume it. However, changing all the code so that nothing else works is premature.<br>
</div></div></blockquote><div><br></div><div>All non mainstream resources like cloud provider specific can be implemented as HEAT plugins (<a href="https://wiki.openstack.org/wiki/Heat/Plugins" target="_blank">https://wiki.openstack.org/wiki/Heat/Plugins</a>)<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style="direction:ltr;font-size:10pt;font-family:Tahoma">
<br>
Instead, let's start work to play well with Designate now, using the open interface that has always existed. In the future after Designate enters integration status we can then make the code closed and only support Designate.<br>
</div></div></blockquote><div><br></div><div>Do we really need playing with Designate and then replace it? I expect designate resource will come together with designate or even earlier.<br><br></div><div></div><font color="#888888"><span style="color:rgb(0,0,0)">With best regards,<br>
Ilya Sviridov<br><br></span></font><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div style="direction:ltr;font-size:10pt;font-family:Tahoma">
<br>
Denis also had some other comments about the DNS code, such as not passing a single object as a parameter because it could be None. I think this is in reference to passing around a DNS entry which gets formed by the DNS instance entry factory. I see how someone
might think this is brittle, but in actuality it has worked for several years so if anything changing it would introduce bugs. The interface was also written to use a full object in order to be flexible; a full object should make it easier to work with different
types of DnsDriver implementations, as well as allowing more options to be set from the DnsInstanceEntryFactory. This later class creates a DnsEntry from an instance_id. It is possible that two deployments of Trove, even if they are using Designate, might
opt for different DnsInstanceEntryFactory implementations in order to give the DNS entries associated to databases different patterns. If the DNS entry is created at this point its easier to further customize and tailor it. This will hold true even when Designate
is ready to become the only DNS option we support (if such a thing is desirable).<br>
<br>
Thanks,<br>
<br>
Tim<br>
<br>
<br>
<br>
</div>
</div>
<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>