Deploy a multi-region OpenStack with centralized user management
Deploy a Single Keystone Multiple OpenStacks (SKMO) multi-region environment to centralize user management and eliminate the need for separate user credentials in each region.
In standard multi-region RHOSO deployments, each region is isolated with its own Identity (keystone) and Dashboard (horizon) services. This requires separate user accounts for each region, making credential management and rotation difficult.
Single Keystone Multiple OpenStacks multi-region deployment architecture Copy linkLink copied!
Review the architecture of a Single Keystone Multiple OpenStacks (SKMO) multi-region deployment to understand how centralized Identity and Dashboard services simplify user management across the multiple regions.
The SKMO deployment requires the following architecture:
- A single
centralregion and multipleworkloadregions.Important When you deploy eachworkloadregion, you must define a unique RHOSO namespace, a unique region name, and unique Identity service user names for all the OpenStack services that communicate with the Identity service. For more information about the unique networking and configuration requirements of the SKMO deployment, see SKMO deployment requirements and constraints. - The
centralregion provides the Dashboard (horizon) service that is shared by all the regions of the SKMO deployment. - The
centralregion provides a centralized Identity (keystone) service:- You must use the Identity service of the
centralregion to create the default administrator user for eachworkloadregion. - You must use the Identity service of the
centralregion to create the catalog entries for the public and private endpoints of the Identity service for eachworkloadregion.
- You must use the Identity service of the
- The centralized Identity and Dashboard services provide a
single pane of glassfor the simplified configuration and management of the users. Each user has a single set of credentials. You can enable or disable their access to every region in thecentralregion. For more information, see Deploy SKMO.
SKMO deployment requirements and constraints Copy linkLink copied!
Plan your Single Keystone Multiple OpenStacks (SKMO) multi-region deployment by reviewing the unique namespace, networking, and configuration requirements for the interdependent regional architecture.
The central region provides centralized Dashboard (horizon) and Identity (keystone) services that are relied upon by all the workload regions. You must implement the following requirements for a successful SKMO deployment:
- The interdependence between the
workloadand thecentralregions requires that every region must provide the following unique identifications for a successful SKMO deployment:- A unique namespace to differentiate the RHOSO deployment of each region. For more information, see Create a unique namespace for each workload region.
Important The RHOSO deployment namespace forms part of the DNS name for each OpenStack service. If you do not use different RHOSO namespaces for every region, conflicts occur between services in your different regions. - A unique region name defined by the
specof their Identity (keystone) service in theOpenStackControlPlanecustom resource (CR). For more information, see Connect each workload region control plane to the shared central region services.Note When thecentralRed Hat OpenStack Services on OpenShift (RHOSO) region is deployed, this region is calledregionOneby default. If you use aworkloadregion naming convention, then you can rename the region name of thecentralregion to make it more easily identifiable. For more information, see Rename the central region. - The OpenStack services that communicate with the Identity service must use uniquely named Identity service users to simplify the task of managing their individual credentials. For more information, see Connect each workload region control plane to the shared central region services.
Warning If you do not specify unique Identity service user names for all the OpenStack services that communicate with the Identity service, then changing the password for a service user disrupts this service in all theworkloadregions that use this same user - unless you schedule a maintenance window for all of these regions first.
- A unique namespace to differentiate the RHOSO deployment of each region. For more information, see Create a unique namespace for each workload region.
- The interdependence between the OpenStack services in each
workloadregion and thecentralregion requires a successful SKMO deployment to implement Red Hat Service Interconnect (Skupper). For more information, see Deploy Red Hat Service Interconnect for SKMO.- To separate the internal service-to-service communication traffic of each
workloadregion on a Skupper internal network instead of the public network of thecentralregion that is vulnerable to DDOS attacks. For more information, see Route the private workload region endpoints through Skupper. - To connect the
centralRabbitMQ service to eachworkloadnamespace so that thebarbican-keystone-listenerservice in eachworkloadregion can know when projects are deleted so that the Key Manager service can clean them up. For more information, see Connect the central RabbitMQ service to each workload namespace with Skupper. - To enable the use of application credentials to authenticate the OpenStack services of the
centralregion and eachworkloadregion to provide near zero downtime password rotation (nZDPR). For more information, see Configure application credentials to authenticate OpenStack services in workload regions.
- To separate the internal service-to-service communication traffic of each
Deploy SKMO Copy linkLink copied!
Deploy a Single Keystone Multiple OpenStacks (SKMO) multi-region environment with centralized Identity (keystone) and Dashboard (horizon) services so that you can manage all users and their regional access from a single location.
Before you begin Copy linkLink copied!
- The interdependent regional architecture of the SKMO deployment requires several unique requirements to be met to ensure a successful deployment. For more information, see SKMO deployment requirements and constraints.
About this task Copy linkLink copied!
Each user has a single set of credentials and their access to every workload region can be enabled or disabled in the central region.
central region to connect to the various workload regions because a Managing regions dropdown list is added to the UI automatically for a SKMO deployment to allow users to select the required workload regions. For more information, see Automatic region selection in SKMO Dashboard.Procedure Copy linkLink copied!
Create a unique namespace for each workload region Copy linkLink copied!
You must create a unique namespace for each workload region of your SKMO multi-region deployment to differentiate services and avoid DNS conflicts between regions.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the RHOCP cluster, as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation.
About this task Copy linkLink copied!
Procedure Copy linkLink copied!
Rename the central region Copy linkLink copied!
Rename the central region from its default name of regionOne so that it is more easily identifiable alongside your workload regions.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the RHOSO control plane as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation.
Procedure Copy linkLink copied!
Create the default administrator user for each workload region Copy linkLink copied!
Create the default administrator user for each workload region by using the Identity service (keystone) of the central region in a Single Keystone Multiple OpenStacks (SKMO) deployment so that each region has its own admin credentials for management.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the RHOSO control plane as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation.
About this task Copy linkLink copied!
These workload administrator users must be granted the admin role in the admin project of the central region. For more information, see Deploy SKMO.
Procedure Copy linkLink copied!
Deploy Red Hat Service Interconnect for SKMO Copy linkLink copied!
Red Hat Service Interconnect (Skupper) creates a network of linked Skupper Sites to connect the OpenStack services of the central and the workload regions together.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the Red Hat OpenShift Container Platform (RHOCP) cluster, as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation. - You have created unique RHOSO namespaces for the
centralandworkloadregions. For more information, see Create a unique namespace for each workload region. - You require an active Red Hat customer subscription for Red Hat Application Services.
About this task Copy linkLink copied!
central and workload regions run in one OpenShift cluster by using different namespaces or in separate OpenShift clusters.Procedure Copy linkLink copied!
Route the private workload region endpoints through Skupper Copy linkLink copied!
Use Red Hat Service Interconnect (Skupper) to expose the private endpoint of the OpenStack Identity service (keystone) of the central region as a private virtual service inside the namespace of each workload region.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the Red Hat OpenShift Container Platform (RHOCP) cluster, as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation. cert-manageris running on the RHOCP cluster- Red Hat Service Interconnect (Skupper) is installed and Sites are linked between the
centraland all theworkloadnamespaces. For more information, see Deploy Red Hat Service Interconnect for SKMO. - You have deployed the control plane of the
centralregion. - You have not deployed the control plane of the
workloadregion.
About this task Copy linkLink copied!
Without using Skupper the private endpoints of each workload region must connect to the public endpoint of the OpenStack Identity service (keystone) of the central region. In this case, even though the internal service-to-service communication traffic of the workload regions is encrypted it is more vulnerable to DDOS attacks because it is not isolated on a separate internal network making it easier for external attackers to intercept these messages.
By using Skupper the service-to-service authentication traffic travels over the Skupper mTLS application-network tunnel and never leaves the cluster network.
Procedure Copy linkLink copied!
What to do next Copy linkLink copied!
- Modify the control plane CR of each
workloadregion and specify the Skupper virtual internal endpoint of the Identity service (keystone). For more information, see Connect each workload region control plane to the shared central region services. - If the data plane of a
workloadregion contains compute nodes, then before you deploy this data plane you must expose the routed Skupper endpoint to the data plane compute nodes. For more information, see Expose the routed Skupper endpoint to data plane compute nodes. - Once Skupper OpenStack Identity service routing is fully configured and the control plane and data plane of the
workloadregion have been deployed, the OpenStack service users can use application credentials for authentication to enable near zero downtime password rotation. For more information, see Configure application credentials to authenticate OpenStack services in workload regions.
Create the public and private endpoints of each workload region Copy linkLink copied!
Create the public and private Identity service (keystone) endpoints for each workload region in a Single Keystone Multiple OpenStacks (SKMO) deployment so that all the workloadregions can authenticate through the central region.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the RHOSO control plane as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation. - You have routed the private
workloadregion endpoints through Red Hat Service Interconnect (Skupper). For more information, see Route the private workload region endpoints through Skupper.
Procedure Copy linkLink copied!
Modify the workload region deployment to share the central region services Copy linkLink copied!
Modify the deployment of each workload region to share the Dashboard (horizon) and Identity (keystone) services of the central region across all workload regions.
About this task Copy linkLink copied!
This deployment modification involves creating a unique region name and unique Identity service users for each workload region. For more information, see SKMO deployment requirements and constraints and Deploy SKMO.
Procedure Copy linkLink copied!
Configure the central region to trust each deployed workload region Copy linkLink copied!
Configure the central region of your SKMO multi-region deployment to trust a deployed workload region so that the shared Identity service can communicate securely with the services of the workload region.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to your Red Hat OpenShift Container Platform (RHOCP) cluster as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation.
Procedure Copy linkLink copied!
What to do next Copy linkLink copied!
- Extract the catalog entries for this
workloadregion and make sure that the Dashboard (horizon) service in thecentralregion can resolve the DNS names in the service catalog of thisworkloadregion and access them.
Connect the central RabbitMQ service to each workload namespace with Skupper Copy linkLink copied!
Red Hat Service Interconnect (Skupper) must connect the central RabbitMQ service to each workload namespace so that the barbican-keystone-listener service in each workload region can know when projects are deleted so that the Key Manager service can clean them up.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the Red Hat OpenShift Container Platform (RHOCP) cluster, as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation. - Red Hat Service Interconnect (Skupper) is installed and Sites are linked between the
centraland all theworkloadnamespaces. For more information, see Deploy Red Hat Service Interconnect for SKMO. - You have deployed the control plane of the
centralregion. - You have deployed the control plane of the
workloadregion.
Procedure Copy linkLink copied!
Expose the routed Skupper endpoint to data plane compute nodes Copy linkLink copied!
If your workload region data plane contains compute nodes then you must expose the routed Red Hat Service Interconnect (Skupper) endpoint to these nodes that they must be able to resolve and connect to on startup.
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the Red Hat OpenShift Container Platform (RHOCP) cluster, as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation. - Red Hat Service Interconnect (Skupper) is installed and Sites are linked between the
centraland all theworkloadnamespaces. For more information, see Deploy Red Hat Service Interconnect for SKMO. - You have routed the private
workloadregion endpoints through Skupper. For more information, see Route the private workload region endpoints through Skupper. - You have deployed the control plane of the
centralregion. - You have deployed the control plane of the
workloadregion. - You have not deployed the data plane of the
workloadregion. - The
workloadregion data plane includes compute nodes. - MetalLB must be configured with an address pool for the
internalapinetwork of theworkloadregion. - A
DNSMasqLoadBalancer Service must be serving DNS to the data plane compute nodes of theworkloadregion
About this task Copy linkLink copied!
workload region but only if it contains compute nodes.Procedure Copy linkLink copied!
What to do next Copy linkLink copied!
- Deploy the data plane of the
workloadregion. - Verify DNS resolution from a data plane compute node in the
workloadregion:$ ssh <data-plane-node> getent hosts keystone-regionone.<workload-region-namespace>.svc.cluster.localwhere:
- <data-plane-node>
- Specifies the address of the compute node in the data plane of the
workloadregion.
- Verify that the OpenStack Compute service (nova) in the
workloadregion is running and registered:$ oc -n <workload-region-namespace> exec openstackclient -- openstack compute service list \ --service nova-compute
Automatic region selection in SKMO Dashboard Copy linkLink copied!
In a Single Keystone Multiple OpenStacks (SKMO) multi-region deployment, do not configure the Dashboard (horizon) login page with a region dropdown list because the central region provides a shared Identity (keystone) service for all regions.
In a standard multi-region OpenStack deployment, each region is an isolated deployment with its own Dashboard and Identity service, so the login page includes a dropdown list for users to select the required region. In the SKMO deployment, the central region provides a centralized Identity service for the entire multi-region deployment.
Managing regions dropdown list in the UI to allow users to select the required workload region.Configure application credentials to authenticate OpenStack services in workload regions Copy linkLink copied!
You can configure the OpenStack service users in your workload regions of your SKMO deployment to use application credentials for their authentication for the multiple security benefits they provide such as near zero downtime password rotation (nZDPR).
Before you begin Copy linkLink copied!
- You are logged on to a workstation that has access to the Red Hat OpenShift Container Platform (RHOCP) cluster, as a user with
cluster-adminprivileges. - You have the
occommand line tool installed on your workstation. - You have deployed the control plane of the
centralregion. - You have deployed the control plane of the
workloadregion. - You have routed the private
workloadregion endpoints through Skupper. For more information, see Route the private workload region endpoints through Skupper. - You have not deployed the data plane of the
workloadregion.
About this task Copy linkLink copied!
workload regions, otherwise you must redeploy the data planes again to adopt the application credentials.Procedure Copy linkLink copied!
Results Copy linkLink copied!
- Run the
oc get appcredcommand to list the OpenStack service application credentials and their statuses. This command generates a table with the following important columns:- NAME
- Specifies the name of the application credential, which adheres to the following format:
ac-<service>, where<service>specifies the upstream OpenStack service name, for example,ac-barbican. - ACID
- Specifies the ID of the application credential, for example,
d38dc4310fbf4601bbe9f4234eb24114. When an application credential is rotated it obtains a new ID and a new secret. - SECRETNAME
-
Specifies the name of the new immutable secret created for this application credential. This secret name includes the first 5 characters of the ID of the application credential to make it unique. This also makes it easy to identify which secret is associated with which application credential. The secret name adheres to the following format:
ac-<service>-<first-5-ID-characters>-secret, for example,ac-barbican-d38dc-secret.Note RHOSO creates and manages this secret. - ROTATIONELIGIBLE
- Specifies the start of the configured grace period window when this application credential is rotated. This timestamp is calculated as follows
Date of expiry - GracePeriodDays. - STATUS
-
This column verifies the successful creation of the application credential when it specifies a value of
True.Note A missing value or a value ofFalsemeans the application credential is still being created or has encountered an error. In this case, run theoc describe appcred <name>command to view a more detailed message, where<name>specifies the name of the application credential, for example,ac-barbican.