Fix DevStack failure in multi-region setting

In stack.sh, REGION_NAME is used to set environment variable
OS_REGION_NAME before using OpenStack client to configure accounts
for services. OpenStack client will try to find Keystone endpoint
in REGION_NAME to send the requests.

However, in the case of deploying multiple DevStack instances in
different regions with shared Keystone, Keystone is only running
in one the of region. When installing DevStack for the region that
does not host Keystone, OpenStack client will fail to find the
Keystone endpoint and thus DevStack fails to start.

This patch fixes this bug by introducing KEYSTONE_REGION_NAME for
user to specify which region Keystone is running in. Document of
multi-region setup is also updated.

Change-Id: I3e82c7ff69326d4171623299ffecea103d40c80d
Closes-Bug: #1540802
This commit is contained in:
zhiyuan_cai 2016-04-07 18:36:46 +08:00
parent 09a710bc2f
commit 6f1781f968
3 changed files with 17 additions and 1 deletions

View File

@ -630,6 +630,16 @@ In RegionTwo:
KEYSTONE_SERVICE_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
KEYSTONE_AUTH_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
REGION_NAME=RegionTwo
KEYSTONE_REGION_NAME=RegionOne
In the devstack for RegionOne, we set REGION_NAME as RegionOne, so region of
the services started in this devstack are registered as RegionOne. In devstack
for RegionTwo, similarly, we set REGION_NAME as RegionTwo since we want
services started in this devstack to be registered in RegionTwo. But Keystone
service is started and registered in RegionOne, not RegionTwo, so we use
KEYSTONE_REGION_NAME to specify the region of Keystone service.
KEYSTONE_REGION_NAME has a default value the same as REGION_NAME thus we omit
it in the configuration of RegionOne.
Disabling Identity API v2
+++++++++++++++++++++++++

View File

@ -1020,7 +1020,7 @@ export OS_USER_DOMAIN_ID=default
export OS_PASSWORD=$ADMIN_PASSWORD
export OS_PROJECT_NAME=admin
export OS_PROJECT_DOMAIN_ID=default
export OS_REGION_NAME=$REGION_NAME
export OS_REGION_NAME=$KEYSTONE_REGION_NAME
EOF

View File

@ -42,6 +42,12 @@ fi
# Specify region name Region
REGION_NAME=${REGION_NAME:-RegionOne}
# Specify name of region where identity service endpoint is registered.
# When deploying multiple DevStack instances in different regions with shared
# Keystone, set KEYSTONE_REGION_NAME to the region where Keystone is running
# for DevStack instances which do not host Keystone.
KEYSTONE_REGION_NAME=${KEYSTONE_REGION_NAME:-$REGION_NAME}
# Specify which services to launch. These generally correspond to
# screen tabs. To change the default list, use the ``enable_service`` and
# ``disable_service`` functions in ``local.conf``.