Multi-region support in shared Keystone service deployment

Registered by Lingxian Kong

Summary
=======
Multi-region support in shared Keystone service deployment.

Motivation
==========
As a public cloud provider(Catalyst Cloud) based on OpenStack, we deployed Keystone as a shared identity service across 3 regions, our customers have been asking for the feature that they could select their preferred region when they log in Horizon, rather than switching region each time after login.

Description
===========
A new setting named 'OPENSTACK_KEYSTONE_REGION_CHOICES' is introduced to Horizon config file, which is supposed to be used in shared-keystone, multi-region deployment without breaking the existing 'AVAILABLE_REGIONS' usage, which only works with multi- keystone, multi-region environment. It's going to be configed by cloud operators and provides end user the ability to specify region when logging in Horizon. For backward compatibility, the 'AVAILABLE_REGIONS' setting takes precedence over 'OPENSTACK_KEYSTONE_REGION_CHOICES'.

UX
===
N/A

Testing
=======
Give there are 3 regions (Region1, Region2, Region3) in a shared-keystone, multi-region OpenStack deployment. with all the changes applied, operator could config:

OPENSTACK_KEYSTONE_REGION_CHOICES = ['Region1', 'Region2', 'Region3']

End user should see all regions in a dropdown box when accessing Horizon and select her preferred one to log in.

Outside Dependencies
====================
N/A

Requirements Update Required
============================
The main code change is in django-openstack-auth repo, once it's merged we need to bump django-openstack-auth version in global-requirements and update Horizon requirments.txt accordingly.

Doc Impact
==========
The usage of 'OPENSTACK_KEYSTONE_REGION_CHOICES' should be described.

Blueprint information

Status:
Started
Approver:
Rob Cresswell
Priority:
Low
Drafter:
Lingxian Kong
Direction:
Needs approval
Assignee:
Lingxian Kong
Definition:
New
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
Lingxian Kong

Related branches

Sprints

Whiteboard

[robcresswell 2017-08-18]
This seems mostly same to me, thanks for updating the setting name. One thing that might complicate the timing of this is merging Django OpenStack Auth into Horizon; however, once that is done, the patch itself would be much easier as you can do it all in one go.

[kong 2017-08-23]
hi, robcresswell, do you mean my patch needs to wait for the merging work completion?

=======================================

See https://blueprints.launchpad.net/horizon/+spec/merge-openstack-auth

Gerrit topic: https://review.openstack.org/#q,topic:bp/horizon-multi-region-support,n,z

Addressed by: https://review.openstack.org/494083
    Introduce OPENSTACK_KEYSTONE_REGION_CHOICES

Django OpenStack Auth patch: https://review.openstack.org/#/c/494059/

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.