[openstack-dev] [horizon][keystone][heat] Are "AVAILABLE_REGIONS" and multi-region service catalog mutually exclusive?

Zane Bitter zbitter at redhat.com
Thu May 14 14:56:00 UTC 2015


On 14/05/15 10:39, Geoff Arnold wrote:
> +1
>
> There seems to be a significant disconnect between Heat, Horizon and
> Keystone on the subject of multi-region configurations, and the
> documentation isn’t helpful. At the very least, it would be useful if
> discussions at the summit could result in a decent Wiki page on the subject.

The terminology I (and Heat) have always used is that regions are sets 
of endpoints configured in the same Keystone. Where you have a different 
Keystone auth URL that is straight up a separate cloud, no matter how 
you slice it.

The confusion here seems to be that Horizon is using the name 
AVAILABLE_REGIONS to denote available Keystone auth URLS - i.e. 
different clouds, not different regions at all.

Looked at through that lens, things seem a bit easier to understand.

Heat supports multi-region trees of stacks (i.e. you can created a 
nested stack in another region). Multi-cloud support has been 
considered, but afaik has not yet landed. Figuring out where to store 
the credentials securely is tricky.

cheers,
Zane.

> Geoff
>
>> On May 13, 2015, at 9:49 PM, Morgan Fainberg
>> <morgan.fainberg at gmail.com <mailto:morgan.fainberg at gmail.com>> wrote:
>>
>>
>>
>> On May 13, 2015, at 21:34, David Lyle <dklyle0 at gmail.com
>> <mailto:dklyle0 at gmail.com>> wrote:
>>
>>>
>>> On Wed, May 13, 2015 at 3:24 PM, Mathieu Gagné <mgagne at iweb.com
>>> <mailto:mgagne at iweb.com>> wrote:
>>>
>>>     When using AVAILABLE_REGIONS, you get a dropdown at login time to
>>>     choose
>>>     your "region" which is in fact "your keystone endpoint".
>>>
>>>     Once logged in, you get a new dropdown at the top right to switch
>>>     between the "keystone endpoints". This means you can configure an
>>>     Horizon installation to login to multiple independent OpenStack
>>>     installations.
>>>
>>>     So I don't fully understand what "enhancing the multi-region
>>>     support in
>>>     Keystone" would mean. Would you be able to configure Horizon to
>>>     login to
>>>     multiple independent OpenStack installations?
>>>
>>>     Mathieu
>>>
>>>     On 2015-05-13 5:06 PM, Geoff Arnold wrote:
>>>     > Further digging suggests that we might consider deprecating
>>>     > AVAILABLE_REGIONS in Horizon and enhancing the multi-region support in
>>>     > Keystone. It wouldn’t take a lot; the main points:
>>>     >
>>>     >   * Implement the Regions API discussed back in the Havana time
>>>     period
>>>     >     -https://etherpad.openstack.org/p/havana-availability-zone-and-region-management
>>>     -
>>>     >     but with full CRUD
>>>     >   * Enhance the Endpoints API to allow filtering by region
>>>     >
>>>     > Supporting two different multi region models is problematic if we’re
>>>     > serious about things like multi-region Heat.
>>>     >
>>>     > Thoughts?
>>>     >
>>>     > Geoff
>>>     >
>>>     >> On May 13, 2015, at 12:01 PM, Geoff Arnold <geoff at GEOFFARNOLD.COM <mailto:geoff at GEOFFARNOLD.COM>
>>>     >> <mailto:geoff at GEOFFARNOLD.COM <mailto:geoff at GEOFFARNOLD.COM>>>
>>>     wrote:
>>>     >>
>>>     >> I’m looking at implementing dynamically-configured multi-region
>>>     >> support for service federation, and the prior art on multi-region
>>>     >> support in Horizon is pretty sketchy. This thread:
>>>     >>
>>>     http://lists.openstack.org/pipermail/openstack/2014-January/004372.html
>>>     >> is the only real discussion I’ve found, and it’s pretty
>>>     inconclusive.
>>>     >>
>>>     >> More precisely, if I configure a single Horizon with
>>>     AVAILABLE_REGIONS
>>>     >> pointing at two different Keystones with region names “X” and
>>>     “Y", and
>>>     >> each of those Keystones returns a service catalog with multiple
>>>     >> regions (“A” and “B” for one, “P”, “Q”, and “R” for the
>>>     other), what’s
>>>     >> Horizon going to do? Or rather, what’s it expected to do?
>>>     >>
>>>     >> Yes, I’m being lazy: I could actually configure this to see what
>>>     >> happens, but hopefully it was considered during the design.
>>>     >>
>>>     >> Geoff
>>>     >>
>>>     >> PS I’ve added Heat to the subject, because from a quick read of
>>>     >>
>>>     https://wiki.openstack.org/wiki/Heat/Blueprints/Multi_Region_Support_for_Heat
>>>     >> it looks as if Heat won’t support the AVAILABLE_REGIONS model.
>>>     That
>>>     >> seems like an unfortunate disconnect.
>>>     >>
>>>     >>
>>>     >>
>>>
>>> Horizon only supports authenticating to one keystone endpoint at a
>>> time, specifically to one of the entries in AVAILABLE_REGIONS as
>>> defined in settings.py. Once you have an authenticated session in
>>> Horizon, the region selection support is merely for filtering between
>>> regions registered with the keystone endpoint you authenticated to,
>>> where the list of regions is determined by parsing the service
>>> catalog returned to you with your token.
>>>
>>> What's really unclear to me is what you are intending to ask.
>>>
>>> AVAILABLE_REGIONS is merely a list of keystone endpoints. They can be
>>> backed by a different IdP per endpoint and thus not share a token
>>> store. Or, they can just be keystone endpoints that are
>>> geographically different but backed by the same IdP, which may or may
>>> not share a token store. The funny thing is, for Horizon, it doesn't
>>> matter. They are all supported.  But as one keystone endpoint may not
>>> know about another, unless nested, this has to be done with settings
>>> as it's not typically discoverable.
>>>
>>> If you are asking about token sharing between keystones which the
>>> thread you linked seems to indicate. Then yes, you can have a synced
>>> token store. But that is an exercise left to the operator.
>>>
>>
>> I'd like to quickly go on record and say that a token store sync like
>> this is not recommended. It is possible to work around this in Kilo
>> with some limited data sync (resource, assignment) and the use of
>> Fernet tokens. However, as you introduce higher latencies and WAN
>> transit this type of syncing becomes more and more prone to error.
>>
>> It would be possible to make DOA multi keystone aware, but before we
>> dive too far into this I'd like to get a clear view of what exactly
>> the use case (and goal is); let's do this at the summit (since it is
>> happening soon). Having a clear view will make this easier to
>> determine if AVAILABLE_REGIONS or another mechanism is/will be better
>> suited. We can then summarize and report the results back to this
>> thread to keep everyone apprised of the direction.
>>
>> --Morgan
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe: OpenStack-dev-request at lists.openstack.org
>> <mailto:OpenStack-dev-request at lists.openstack.org>?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>




More information about the OpenStack-dev mailing list