<div dir="ltr">Well said!<div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 9, 2015 at 5:00 PM, Sean Dague <span dir="ltr"><<a href="mailto:sean@dague.net" target="_blank">sean@dague.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 10/09/2015 02:52 PM, Jonathan D. Proulx wrote:<br>
> On Fri, Oct 09, 2015 at 02:17:26PM -0400, Monty Taylor wrote:<br>
> :On 10/09/2015 01:39 PM, David Stanek wrote:<br>
> :><br>
> :>On Fri, Oct 9, 2015 at 1:28 PM, Jonathan D. Proulx <<a href="mailto:jon@csail.mit.edu">jon@csail.mit.edu</a><br>
> :><mailto:<a href="mailto:jon@csail.mit.edu">jon@csail.mit.edu</a>>> wrote:<br>
> :>    As an operator I'd be happy to use SRV records to define endpoints,<br>
> :>    though multiple regions could make that messy.<br>
> :><br>
> :>    would we make subdomins per region or include region name in the<br>
> :>    service name?<br>
> :><br>
> :>    _compute-regionone._<a href="http://tcp.example.com" rel="noreferrer" target="_blank">tcp.example.com</a> <<a href="http://tcp.example.com" rel="noreferrer" target="_blank">http://tcp.example.com</a>><br>
> :>                    -vs-<br>
> :>    _compute._<a href="http://tcp.regionone.example.com" rel="noreferrer" target="_blank">tcp.regionone.example.com</a> <<a href="http://tcp.regionone.example.com" rel="noreferrer" target="_blank">http://tcp.regionone.example.com</a>><br>
> :><br>
> :>    Also not all operators can controll their DNS to this level so it<br>
> :>    couldn't be the only option.<br>
> :<br>
> :SO - XMPP does this. The way it works is that if your XMPP provider<br>
> :has put the approriate records in DNS, then everything Just Works. If<br>
> :not, then you, as a consumer, have several pieces of information you<br>
> :need to provide by hand.<br>
> :<br>
> :Of course, there are already several pieces of information you have<br>
> :to provide by hand to connect to OpenStack, so needing to download a<br>
> :manifest file or something like that to talk to a cloud in an<br>
> :environment where the people running a cloud do not have the ability<br>
> :to add information to DNS (boggles) shouldn't be that terrible.<br>
><br>
> yes but XMPP require 2 (maybe 3) SRV records so an equivelent number<br>
> of local config options is managable. A cloud with X endpoints and Y<br>
> regions is significantly more.<br>
><br>
> Not to say this couldn't be done by packing more stuff into the openrc<br>
> or equivelent so users don't need to directly enter all that, but that<br>
> would be a significant change and one I think would be more difficult<br>
> for smaller operations.<br>
><br>
> :One could also imagine an in-between option where OpenStack could run<br>
> :an _optional_ DNS for this purpose - and then the only 'by-hand'<br>
> :you'd need for clouds with no real DNS is the location of the<br>
> :discover DNS.<br>
><br>
> Yes a special purpose DNS (a la dnsbl) might be preferable to<br>
> pushing around static configs.<br>
<br>
</div></div>I do realize lots of people want to go in much more radical directions<br>
here. I think we have to be really careful about that. The current<br>
cinder v1 -> v2 transition challenges demonstrate how much inertia there<br>
is. 3 years of talking about a Tasks API is another instance of it.</blockquote><div>Yep... very valid point. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
We aren't starting with a blank slate. This is brownfield development.<br>
There are enough users of this that making shifts need to be done in<br>
careful shifts that enable a new thing similar enough to the old thing,<br>
that people will easily be able to take advantage of it. Which means I<br>
think deciding to jump off the REST bandwagon for this is currently a<br>
bridge too far. At least to get anything tangible done in the next 6 to<br>
12 months.<br></blockquote><div>++ but I think it does make sense to consider possible future design considerations into account.  For example, we shouldn't abandon REST (for the points you have raised) but if there is interest in possibly using DNS in the future then we should try to make design choices today that would allow for that direction in the future.  To further the compatibility conversation, if/when we do decide to add DNS... we will still need to support REST for an indefinite amount of time to let people choose their desired mode of operation over a time window that should be (for the most part) in their control due to their own pace of adopting changes.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I think getting us a service catalog served over REST that doesn't<br>
require auth, and doesn't require tenant_ids in urls, gets us someplace<br>
we could figure out a DNS representation (for those that wanted that).<br>
But we have to tick / tock this and not change transports and<br>
representations at the same time.<br>
<br>
And, as I've definitely discovered through this process the Service<br>
Catalog today has been fluid enough that where it is used, and what<br>
people rely on in it, isn't always clear all at once. For instance,<br>
tenant_ids in urls are very surface features in Nova (we don't rely on<br>
it, we're using the context), don't exist at all in most new services,<br>
and are very corely embedded in Swift. This is part of what has also<br>
required the service catalog is embedded in the Token, which causes toke<br>
bloat, and has led to other features to try to shrink the catalog by<br>
filtering it by what a user is allowed. Which in turn ended up being<br>
used by Horizon to populate the feature matrix users see.<br>
<br></blockquote><div>++ </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So we're pulling on a thread, and we have to do that really carefully.<br>
<br>
I think the important thing is to focus on what we have in 6 months<br>
doesn't break current users / applications, and is incrementally closer<br>
to our end game. That's the lens I'm going to keep putting on this one.<br></blockquote><div>Agreed, but knowing future preferences is not a bad thing either (as long as focus doesn't get diluted on the next 6 months) </div><div><br></div><div>Finally, as mentioned by Clint, consul does provide DNS-SD (but not DNS-TXT) interface so using it as a backend allows us to focus on REST but set ground work for DNS too.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
        -Sean<br>
<br>
--<br>
Sean Dague<br>
<a href="http://dague.net" rel="noreferrer" target="_blank">http://dague.net</a><br>
<br>
</div></div><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:small">Thanks,</div><div style="font-size:small">Shamail Tahir</div><div style="font-size:small">t: @ShamailXD</div><div style="font-size:small">tz: Eastern Time</div></div></div></div></div>
</div></div>