Adopt the data plane
Adopt your existing environment to the Red Hat OpenStack Services on OpenShift (RHOSO) data plane.
Adopting the data plane involves the following steps:
- Stop any remaining services on the Red Hat OpenStack Platform (RHOSP) 17.1 control plane.
- Deploy the required custom resources.
- Perform a fast-forward upgrade on Compute services from RHOSP 17.1 to RHOSO 18.0.
- Adopt Networker services to the RHOSO data plane.
- Optional: Migrate OVN gateway services from RHOSP 17.1 nodes to Red Hat OpenShift Container Platform (RHOCP) worker nodes to reclaim hardware.
Stop infrastructure management and Compute services Copy linkLink copied!
You must stop cloud database nodes and messaging nodes on the Red Hat OpenStack Platform 17.1 control plane.
Before you begin Copy linkLink copied!
- Define the shell variables. Replace the following example values with values that apply to your environment:
CONTROLLER1_SSH="ssh -i <path_to_SSH_key> tripleo-admin@<controller-1 IP>" # ... # ... EDPM_PRIVATEKEY_PATH="<path_to_SSH_key>"CONTROLLER<X>_SSHdefines the SSH connection details for all Controller nodes, including cell Controller nodes, of the source director cloud.<path_to_SSH_key>defines the path to your SSH key.
About this task Copy linkLink copied!
Do not stop nodes that are running the following roles:
- Compute
- Storage
- Networker
- Controller if running
OVN Controller Gateway agentnetwork agent
The following procedure applies to a standalone director deployment. You must stop the Pacemaker services on your host so that you can install libvirt packages when the Compute roles are adopted as data plane nodes. Modular libvirt daemons no longer run in Podman containers on data plane nodes.
Procedure Copy linkLink copied!
PacemakerResourcesToStop=(
"galera-bundle"
"haproxy-bundle"
"rabbitmq-bundle")
echo "Stopping pacemaker services"
for i in {1..3}; do
SSH_CMD=CONTROLLER${i}_SSH
if [ ! -z "${!SSH_CMD}" ]; then
echo "Using controller $i to run pacemaker commands"
for resource in ${PacemakerResourcesToStop[*]}; do
if ${!SSH_CMD} sudo pcs resource config $resource; then
${!SSH_CMD} sudo pcs resource disable $resource
fi
done
break
fi
done
Adopt Compute services to the RHOSO data plane Copy linkLink copied!
Adopt your Compute (nova) services to the Red Hat OpenStack Services on OpenShift (RHOSO) data plane.
Before you begin Copy linkLink copied!
- You have stopped the remaining control plane nodes, repositories, and packages on the Compute service (nova) hosts. For more information, see Stopping infrastructure management and Compute services.
- If you have a Red Hat Ceph Storage environment, you have configured the Ceph back end for the
NovaLibvirtservice. For more information, see Configuring a Ceph back end. - You have configured IP Address Management (IPAM):
$ oc apply -f - <<EOF apiVersion: network.openstack.org/v1beta1 kind: NetConfig metadata: name: netconfig spec: networks: - name: ctlplane dnsDomain: ctlplane.example.com subnets: - name: subnet1 allocationRanges: - end: 192.168.122.120 start: 192.168.122.100 - end: 192.168.122.200 start: 192.168.122.150 cidr: 192.168.122.0/24 gateway: 192.168.122.1 - name: internalapi dnsDomain: internalapi.example.com subnets: - name: subnet1 allocationRanges: - end: 172.17.0.250 start: 172.17.0.100 cidr: 172.17.0.0/24 vlan: 20 - name: External dnsDomain: external.example.com subnets: - name: subnet1 allocationRanges: - end: 10.0.0.250 start: 10.0.0.100 cidr: 10.0.0.0/24 gateway: 10.0.0.1 - name: storage dnsDomain: storage.example.com subnets: - name: subnet1 allocationRanges: - end: 172.18.0.250 start: 172.18.0.100 cidr: 172.18.0.0/24 vlan: 21 - name: storagemgmt dnsDomain: storagemgmt.example.com subnets: - name: subnet1 allocationRanges: - end: 172.20.0.250 start: 172.20.0.100 cidr: 172.20.0.0/24 vlan: 23 - name: tenant dnsDomain: tenant.example.com subnets: - name: subnet1 allocationRanges: - end: 172.19.0.250 start: 172.19.0.100 cidr: 172.19.0.0/24 vlan: 22 EOF - If
neutron-sriov-nic-agentis running on your Compute service nodes, ensure that the physical device mappings match the values that are defined in theOpenStackDataPlaneNodeSetcustom resource (CR). - To prevent workload shutdown, you have created the
tripleo_nova_libvirt_guests_service_cleanup.yamlplaybook:- become: true hosts: all strategy: tripleo_free name: disable and clean tripleo_nova_libvirt_guests tasks: - name: tripleo_nova_libvirt_guests removal become: true shell: | set -o pipefail systemctl disable tripleo_nova_libvirt_guests.service rm -f /etc/systemd/system/tripleo_nova_libvirt_guests.service rm -f /etc/systemd/system/virt-guest-shutdown.target systemctl daemon-reloadYou have used the following command to run the playbook:
$ansible-playbook -i overcloud-deploy/overcloud/tripleo-ansible-inventory.yaml tripleo_nova_libvirt_guests_service_cleanup.yaml - You have defined the shell variables to run the script that runs the upgrade:
$ CEPH_FSID=$(oc get secret ceph-conf-files -o json | jq -r '.data."ceph.conf"' | base64 -d | grep fsid | sed -e 's/fsid = //') $ alias openstack="oc exec -t openstackclient -- openstack" $ DEFAULT_CELL_NAME="cell3" $ RENAMED_CELLS="cell1 cell2 $DEFAULT_CELL_NAME" $ declare -A COMPUTES_CELL1 $ export COMPUTES_CELL1=( > ["standalone.localdomain"]="192.168.122.100" > # <compute1> > # <compute2> > # <compute3> >) $ declare -A COMPUTES_CELL2 $ export COMPUTES_CELL2=( > # <compute1> >) $ declare -A COMPUTES_CELL3 $export COMPUTES_CELL3=( > # <compute1> > # <compute2> >) $ declare -A COMPUTES_API_CELL1 $export COMPUTES_API_CELL1=( > ["standalone.localdomain"]="172.17.0.100" > ["standalone2.localdomain"]="172.17.0.101" >) $ declare -A COMPUTES_STORAGE_CELL1 $ export COMPUTES_STORAGE_CELL1=( ["standalone.localdomain"]="172.18.0.100" # <compute1-storage-ip> # <compute2-storage-ip> ) $ declare -A COMPUTES_STORAGE_CELL2 $ export COMPUTES_STORAGE_CELL2=( # <compute1-storage-ip> ) $ declare -A COMPUTES_STORAGE_CELL3 $ export COMPUTES_STORAGE_CELL3=( # <compute1-storage-ip> # <compute2-storage-ip> ) $ declare -A COMPUTES_TENANT_CELL1 $ export COMPUTES_TENANT_CELL1=( ["standalone.localdomain"]="172.19.0.100" # <compute1-tenant-ip> # <compute2-tenant-ip> ) $ declare -A COMPUTES_TENANT_CELL2 $ export COMPUTES_TENANT_CELL2=( # <compute1-tenant-ip> ) $ declare -A COMPUTES_TENANT_CELL3 $ export COMPUTES_TENANT_CELL3=( # <compute1-tenant-ip> # <compute2-tenant-ip> ) $ NODESETS="" $ for CELL in $(echo $RENAMED_CELLS); do > ref="COMPUTES_$(echo ${CELL}|tr '[:lower:]' '[:upper:]')" > eval names=\${!${ref}[@]} > [ -z "$names" ] && continue > NODESETS="'openstack-${CELL}', $NODESETS" >done $ NODESETS="[${NODESETS%,*}]"DEFAULT_CELL_NAME="cell3"defines the source clouddefaultcell that acquires a newDEFAULT_CELL_NAMEon the destination cloud after adoption. In a multi-cell adoption scenario, you can retain the original name,default, or create a new cell default name by providing the incremented index of the last cell in the source cloud. For example, if the incremented index of the last cell iscell5, the new cell default name iscell6.export COMPUTES_CELL1=For each cell, update the<["standalone.localdomain"]="x.x.x.x">value and theCOMPUTES_CELL<X>value with the names and IP addresses of the Compute service nodes that are connected to thectlplaneandinternalapinetworks. Do not specify a real FQDN defined for each network. Always use the same hostname for each connected network of a Compute node. Provide the IP addresses and the names of the hosts on the remaining networks of the source cloud as needed, or you can manually adjust the files that you generate in step 9 of this procedure.<compute1>,<compute2>, and<compute3>specifies the names of your Compute service nodes for each cell. Assign all Compute service nodes from the source cloudcell1cell intoCOMPUTES_CELL1, and so on.export COMPUTES_CELL<X>=(specifies all Compute service nodes that you assign from the source clouddefaultcell intoCOMPUTES_CELL<X>andCOMPUTES_API_CELL<X>, where<X>is theDEFAULT_CELL_NAMEenvironment variable value. In this example, theDEFAULT_CELL_NAMEenvironment variable value equalscell3.export COMPUTES_API_CELL1=(For each cell, update the<["standalone.localdomain"]="192.168.122.100">value and theCOMPUTES_API_CELL<X>value with the names and IP addresses of the Compute service nodes that are connected to thectlplaneandinternalapinetworks.["standalone.localdomain"]="192.168.122.100"defines the custom DNS domain in the FQDN value of the nodes. This value is used in the data plane node setspec.nodes.<NODE NAME>.hostName. Do not specify a real FQDN defined for each network. Use the same hostname for each of its connected networks. Provide the IP addresses and the names of the hosts on the remaining networks of the source cloud as needed, or you can manually adjust the files that you generate in step 9 of this procedure.<compute1-storage-ip>,<compute2-storage-ip>: For each cell, replace these values with the names and IP addresses of the Compute service nodes that are connected to thestoragenetwork. These IP addresses must match the existing addresses on the 17.1 Compute nodes. Retrieve them withip addron each node, from Heat outputs, or from/etc/os-net-config/config.yaml.<compute1-tenant-ip>,<compute2-tenant-ip>: For each cell, replace these values with the names and IP addresses of the Compute service nodes that are connected to thetenantnetwork. These IP addresses must match the existing addresses on the 17.1 Compute nodes. Retrieve them withip addron each node, from Heat outputs, or from/etc/os-net-config/config.yaml.NODESETS="'openstack-${CELL}', $NODESETS"specifies the cells that contain Compute nodes. Cells that do not contain Compute nodes are omitted from this template because no node sets are created for the cells.Note If you deployed the source cloud with a
defaultcell, and want to rename it during adoption, define the new name that you want to use, as shown in the following example:$ DEFAULT_CELL_NAME="cell1" $ RENAMED_CELLS="cell1"
Do not set a value for the CEPH_FSID parameter if the local storage back end is configured by the Compute service for libvirt. The storage back end must match the source cloud storage back end. You cannot change the storage back end during adoption.
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- Confirm that all the Ansible EE pods reach a
Completedstatus:$ watch oc get pod -l app=openstackansibleee$ oc logs -l app=openstackansibleee -f --max-log-requests 20 - Wait for the data plane node sets to reach the
Readystatus:for CELL in $(echo $RENAMED_CELLS); do oc wait --for condition=Ready osdpns/openstack-$CELL --timeout=30m done - Verify that the Networking service (neutron) agents are running:
$ oc exec openstackclient -- openstack network agent list +--------------------------------------+------------------------------+------------------------+-------------------+-------+-------+----------------------------+ | ID | Agent Type | Host | Availability Zone | Alive | State | Binary | +--------------------------------------+------------------------------+------------------------+-------------------+-------+-------+----------------------------+ | 174fc099-5cc9-4348-b8fc-59ed44fcfb0e | DHCP agent | standalone.localdomain | nova | :-) | UP | neutron-dhcp-agent | | 10482583-2130-5b0d-958f-3430da21b929 | OVN Metadata agent | standalone.localdomain | | :-) | UP | neutron-ovn-metadata-agent | | a4f1b584-16f1-4937-b2b0-28102a3f6eaa | OVN Controller agent | standalone.localdomain | | :-) | UP | ovn-controller | +--------------------------------------+------------------------------+------------------------+-------------------+-------+-------+----------------------------+
After you remove all the services from the director cell controllers, you can decommission the cell controllers. To create new cell Compute nodes, you re-provision the decommissioned controllers as new data plane hosts and add them to the node sets of corresponding or new cells.
What to do next Copy linkLink copied!
- You must perform a fast-forward upgrade on your Compute services. For more information, see Performing a fast-forward upgrade on Compute services.
Configure data plane node sets for DCN sites Copy linkLink copied!
If you are adopting a Distributed Compute Node (DCN) deployment, you must create separate OpenStackDataPlaneNodeSet custom resources (CRs) for each site. Each node set requires site-specific configuration for network subnets, OVN bridge mappings, and inter-site routes.
Before you begin Copy linkLink copied!
- You have adopted the Red Hat OpenStack Platform (RHOSP) control plane to Red Hat OpenStack Services on OpenShift (RHOSO).
- You have configured control plane networking for your spine-leaf topology, including multi-subnet
NetConfigandNetworkAttachmentDefinitionCRs with routes to remote sites. For more information, see Configuring control plane networking for spine-leaf topologies. - You have the network configuration information for each DCN site:
- IP addresses and hostnames for all Compute nodes
- VLAN IDs for each service network
- Gateway addresses for inter-site routing
- You have identified the OVN bridge mappings (physnets) for each site.
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- Verify that all node sets reach the
Readystatus:$ oc get openstackdataplanenodeset NAME STATUS MESSAGE openstack-edpm True Ready openstack-edpm-dcn1 True Ready openstack-edpm-dcn2 True Ready - Verify that Compute services are running across all sites. Ensure that all
nova-computeservices showState=upfor nodes in all availability zones:$ oc exec openstackclient -- openstack compute service list - Verify inter-site connectivity by checking routes on a DCN Compute node:
$ ssh dcn1-compute-0 ip route show | grep 172.17.0 172.17.0.0/24 via 172.17.10.1 dev internalapi - Test that DCN Compute nodes can reach the control plane:
$ ssh dcn1-compute-0 ping -c 3 172.17.0.30Replace
172.17.0.30with an IP address of a control plane service on the internalapi network.
Adopt Compute services with DCN back ends Copy linkLink copied!
Configure the edge Compute service (nova) nodes at each site with the Red Hat Ceph Storage connection details and Image Service (glance) endpoint for their local site.
Before you begin Copy linkLink copied!
- You have adopted the Image service with multiple Red Hat Ceph Storage back ends. For more information, see Adopting the Image service with multiple Ceph back ends.
- You have adopted the Block Storage service with multiple Red Hat Ceph Storage back ends. For more information, see Adopting the Block Storage service with multiple Ceph back ends.
- The per-site Red Hat Ceph Storage secrets (
ceph-conf-central,ceph-conf-dcn1,ceph-conf-dcn2) exist. For more information, see Configuring a Red Hat Ceph Storage back end. - Retrieve the
fsidfor each Red Hat Ceph Storage cluster:$ oc get secret ceph-conf-central -o json | jq -r '.data | to_entries[] | select(.key | endswith(".conf")) | "\(.key): \(.value | @base64d)"' | grep fsid
About this task Copy linkLink copied!
In a Distributed Compute Node (DCN) deployment where Image service and Block Storage service (cinder) services run on edge Compute nodes, each site has its own Red Hat Ceph Storage cluster. The Image service has a separate API endpoint at each site. Each site’s OpenStackDataPlaneNodeSet custom resource (CR) must use a different OpenStackDataPlaneService CR that points to the correct Image service.
In a DCN deployment, all node sets belong to a single Compute service cell. The central site and each edge site are separate OpenStackDataPlaneNodeSet resources within that cell. The per-site OpenStackDataPlaneService resources deliver different Red Hat Ceph Storage and Image service configurations to each node set while sharing the same cell-level Compute service configuration.
Procedure Copy linkLink copied!
Perform a fast-forward upgrade on Compute services Copy linkLink copied!
You must upgrade the Compute services from Red Hat OpenStack Platform 17.1 to Red Hat OpenStack Services on OpenShift (RHOSO) 18.0 on the control plane and data plane.
Before you begin Copy linkLink copied!
- You have defined the shell variables necessary to apply the fast-forward upgrade commands for each Compute service cell.
DEFAULT_CELL_NAME="cell1" RENAMED_CELLS="$DEFAULT_CELL_NAME" declare -A PODIFIED_DB_ROOT_PASSWORD for CELL in $(echo "super $RENAMED_CELLS"); do PODIFIED_DB_ROOT_PASSWORD[$CELL]=$(oc get -o json secret/osp-secret | jq -r .data.DbRootPassword | base64 -d) done - You have completed the steps in Adopting Compute services to the RHOSO data plane.
About this task Copy linkLink copied!
Complete the following tasks:
- Update the cell1 Compute data plane services version.
- Remove pre-fast-forward upgrade workarounds from the Compute control plane services and Compute data plane services.
- Run Compute database online migrations to update live data.
Procedure Copy linkLink copied!
What to do next Copy linkLink copied!
After the data plane adoption, the Compute hosts continue to run Red Hat Enterprise Linux (RHEL) 8.4. To take advantage of RHEL 9.2, perform a minor update procedure after finishing the adoption procedure.
Adopt Networker services to the RHOSO data plane Copy linkLink copied!
Adopt Networker services to the Red Hat OpenStack Services on OpenShift (RHOSO) data plane by creating a OpenStackDataPlaneNodeSet custom resource (CR) that includes the services to run on the Networker nodes. The Networker services could be running on Controller nodes or dedicated Networker nodes.
Before you begin Copy linkLink copied!
- Define the shell variable. Based on above agent list output, controller-0, controller-1, controller-2 are our target hosts. If you have both
ControllerandNetworkernodes running networker services then add all those hosts below.declare -A networkers networkers+=( ["controller-0.localdomain"]="192.168.122.100" ["controller-1.localdomain"]="192.168.122.101" ["controller-2.localdomain"]="192.168.122.102" # ... )- Replace
["<node-name>"]="192.168.122.100"with the name and IP address of the corresponding Networker or Controller node in your environment.
- Replace
About this task Copy linkLink copied!
By definition, any node that has set enable-chassis-as-gw is considered a Networker node. After the adoption process, these nodes continue to be Networker nodes.
If you want to reclaim the hardware from your Red Hat OpenStack Platform Controller or Networker nodes after adoption, you can migrate the OVN gateway services to Red Hat OpenShift Container Platform (RHOCP) worker nodes instead of keeping them on the original nodes. When migrating RHOSO worker nodes, expect disruption on the data plane in centralized or SNAT traffic as the router gateway ports move from one node to another.
You can implement the following options if they apply to your environment:
- Depending on your topology, you might need to run the
neutron-metadataservice on the nodes, specifically when you want to serve metadata to SR-IOV ports that are hosted on Compute nodes. - If you want to continue running OVN gateway services on Networker nodes, keep
ovnservice in the list to deploy. - Optional: You can run the
neutron-dhcpservice on your Networker nodes instead of your Compute nodes. You might not need to useneutron-dhcpwith OVN, unless your deployment uses DHCP relays, or advanced DHCP options that are supported by dnsmasq but not by the OVN DHCP implementation.
Adopt each Controller or Networker node in your existing Red Hat OpenStack Platform deployment to the Red Hat OpenStack Services on OpenShift (RHOSO) when your node is set as an OVN chassis gateway. Any node with parameter set to enable-chassis-as-gw is considered OVN gateway chassis. In this case, such nodes will become data plane networker nodes after adoption.
- Check for the nodes where
OVN Controller Gateway agentagents are running. The list of agents varies depending on the services you enabled:$ oc exec openstackclient -- openstack network agent list +--------------------------------------+------------------------------+--------------------------+-------------------+-------+-------+----------------------------+ | ID | Agent Type | Host | Availability Zone | Alive | State | Binary | +--------------------------------------+------------------------------+--------------------------+-------------------+-------+-------+----------------------------+ | e5075ee0-9dd9-4f0a-a42a-6bbdf1a6111c | OVN Controller Gateway agent | controller-0.localdomain | | XXX | UP | ovn-controller | | f3112349-054c-403a-b00a-e219238192b8 | OVN Controller agent | compute-0.localdomain | | XXX | UP | ovn-controller | | af9dae2d-1c1c-55a8-a743-f84719f6406d | OVN Metadata agent | compute-0.localdomain | | XXX | UP | neutron-ovn-metadata-agent | | 51a11df8-a66e-47a2-aec0-52eb8589626c | OVN Controller Gateway agent | controller-1.localdomain | | XXX | UP | ovn-controller | | bb817e5e-7832-410a-9e67-934dac8c602f | OVN Controller Gateway agent | controller-2.localdomain | | XXX | UP | ovn-controller | +--------------------------------------+------------------------------+--------------------------+-------------------+-------+-------+----------------------------+
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- Confirm that all the Ansible EE pods reach a
Completedstatus:$ watch oc get pod -l app=openstackansibleee$ oc logs -l app=openstackansibleee -f --max-log-requests 20 - Wait for the data plane node set to reach the
Readystatus:$ oc wait --for condition=Ready osdpns/<networker_CR_name> --timeout=30m- Replace
<networker_CR_name>with the name of the CR that you deployed for your Networker nodes, for example,openstack-networker.
- Replace
- Verify that the Networking service (neutron) agents are running. The list of agents varies depending on the services you enabled:
$ oc exec openstackclient -- openstack network agent list +--------------------------------------+------------------------------+--------------------------+-------------------+-------+-------+----------------------------+ | ID | Agent Type | Host | Availability Zone | Alive | State | Binary | +--------------------------------------+------------------------------+--------------------------+-------------------+-------+-------+----------------------------+ | e5075ee0-9dd9-4f0a-a42a-6bbdf1a6111c | OVN Controller Gateway agent | controller-0.localdomain | | :-) | UP | ovn-controller | | f3112349-054c-403a-b00a-e219238192b8 | OVN Controller agent | compute-0.localdomain | | :-) | UP | ovn-controller | | af9dae2d-1c1c-55a8-a743-f84719f6406d | OVN Metadata agent | compute-0.localdomain | | :-) | UP | neutron-ovn-metadata-agent | | 51a11df8-a66e-47a2-aec0-52eb8589626c | OVN Controller Gateway agent | controller-1.localdomain | | :-) | UP | ovn-controller | | bb817e5e-7832-410a-9e67-934dac8c602f | OVN Controller Gateway agent | controller-2.localdomain | | :-) | UP | ovn-controller | +--------------------------------------+------------------------------+--------------------------+-------------------+-------+-------+----------------------------+
Migrate OVN gateway services to RHOCP worker nodes Copy linkLink copied!
Migrate OVN gateway services from Networker nodes to Red Hat OpenShift Container Platform (RHOCP) worker nodes to reclaim and repurpose hardware from your Red Hat OpenStack Platform (RHOSP) deployment.
Before you begin Copy linkLink copied!
- You have completed the RHOSO adoption procedure and your environment is functional.
- You have dedicated network interface cards (NICs) available on RHOCP worker nodes that are not shared with any RHOSP or RHOCP networks. If you want to configure bonding for the external bridge, you need multiple dedicated NICs.
- The switch ports for these dedicated NICs are configured with the same settings as the ports on the old Controller or Networker nodes, such as VLAN configuration.
- The old Controller or Networker nodes are not running any other non-networking services after adoption, such as Object Storage (swift) or Block Storage (cinder).
- If
neutron-dhcpis running to provide DHCP to bare-metal nodes in IPv6 deployments, or ifneutron-ovn-metadatais running to provide metadata for SR-IOV external ports, you cannot remove or repurpose those nodes.
About this task Copy linkLink copied!
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- Verify that all router gateway ports are now hosted on the new gateway chassis nodes running on RHOCP worker nodes:
$ oc exec -n openstack ovsdbserver-sb-0 -- ovn-sbctl --no-leader-only \ show | grep -e hostname -e cr-lrpExample outputhostname: master-2 Port_Binding cr-lrp-cd37a0e1-c6be-45bc-8a4d-7e58f7ae86e5 Port_Binding cr-lrp-e486080d-06af-45c8-9046-0cbea16d8007 Port_Binding cr-lrp-53a77212-d0d1-4bb1-a093-9ce81646f7e1 hostname: compute-1.localdomain hostname: master-0 Port_Binding cr-lrp-2ee38759-832f-4ca9-976f-d9a63c412b69 Port_Binding cr-lrp-8dcd5a5b-30ac-43a8-b912-b0094349e5c0 Port_Binding cr-lrp-5f87a35e-daea-45f2-be3b-89564f9e4a8c hostname: compute-0.localdomain hostname: master-1 Port_Binding cr-lrp-083dd00f-c923-45b1-9942-07e29c58e762 Port_Binding cr-lrp-21a031f7-5352-44d9-bf70-da2e5fc76a1b Port_Binding cr-lrp-5c2f5834-0f89-4a6c-bbfd-ca20572aad47In this example, all router gateway ports (
cr-lrp-*) are now bound to the RHOCP worker nodes (master-0,master-1,master-2) instead of the old Controller nodes. - Verify that the network agent list shows only the new gateway agents on RHOCP worker nodes:
$ oc exec -n openstack openstackclient -- openstack network agent list \ --agent-type ovn-controller-gatewayConfirm that only the RHOCP worker nodes appear in the output, and that the old Controller or Networker nodes are no longer listed.
- If the old Controller or Networker nodes are not being used for any other purpose, you can now release or repurpose that hardware.
Note When you run theremove-gatewaydata plane deployment, the router gateway ports are moved to new RHOCP worker nodes. Expect a brief outage of centralized data plane traffic during this migration. A similar outage occurs during RHOCP and RHOSO updates when the OVS pods restart and router gateway ports are moved between nodes.
Enable the high availability for Compute instances service Copy linkLink copied!
Enable the high availability for Compute instances (Instance HA) service.
Before you begin Copy linkLink copied!
- You have created the
fencing-secret.yamlconfiguration file. For more information, see Maintaining the Instance HA functionality after adoption. - You have disabled Pacemaker on your Compute nodes. For more information, see Preventing Pacemaker from monitoring Compute nodes.
About this task Copy linkLink copied!
Create the following resources:
- Fencing secret.
- Config map. You can create the config map manually, or the config map is created automatically when you deploy the Instance HA resource. However, you must create the config map manually if you want to disable the Instance HA service.
- Instance HA resource.
Procedure Copy linkLink copied!
What to do next Copy linkLink copied!
- After you complete the Red Hat OpenStack Services on OpenShift adoption, remove the Pacemaker components from the Compute nodes. You must run the following commands on each Compute node:
$ sudo systemctl stop pacemaker_remote $ sudo systemctl stop pcsd $ sudo systemctl stop pcsd-ruby.service $ sudo systemctl disable pacemaker_remote $ sudo systemctl disable pcsd $ sudo systemctl disable pcsd-ruby.service $ sudo dnf remove pacemaker pacemaker-remote pcs pcsd -y