Chapter 6. Upgrading the Overcloud
This process upgrades the overcloud.
Prerequisites
- You have upgraded the undercloud to the latest version.
- You have prepared your custom environment files to accommodate the changes in the upgrade.
6.1. Running the overcloud upgrade preparation
The upgrade requires running the openstack overcloud upgrade prepare
command, which performs the following tasks:
- Updates the overcloud plan to OpenStack Platform 13
- Prepares the nodes for the upgrade
Procedure
Source the
stackrc
file:$ source ~/stackrc
Run the upgrade preparation command:
$ openstack overcloud upgrade prepare \ --templates \ -e /home/stack/templates/overcloud_images.yaml \ -e <ENVIRONMENT FILE>
Include the following options relevant to your environment:
-
Custom configuration environment files (
-e
) -
The environment file with your new container image locations (
-e
). Note that the upgrade command might display a warning about using the--container-registry-file
. You can ignore this warning as this option is deprecated in favor of using-e
for the container image environment file. -
If applicable, your custom roles (
roles_data
) file using--roles-file
. -
If applicable, your composable network (
network_data
) file using--networks-file
.
-
Custom configuration environment files (
- Wait until the upgrade preparation completes.
6.2. Upgrading Controller and custom role nodes
Use the following process to upgrade all the Controller nodes, split Controller services, and other custom nodes to OpenStack Platform 13. The process involves running the openstack overcloud upgrade run
command and including the --nodes
option to restrict operations to only the selected nodes:
$ openstack overcloud upgrade run --nodes [ROLE]
Substitute [ROLE]
for the name of a role or a comma-separated list of roles.
If your overcloud uses monolithic Controller nodes, run this command against the Controller
role.
If your overcloud uses split Controller services, use the following guide to upgrade the node role in the following order:
-
All roles that use Pacemaker. For example:
ControllerOpenStack
,Database
,Messaging
, andTelemetry
. -
Networker
nodes - Any other custom roles
Do not upgrade the following nodes yet:
- Compute nodes of any type such as DPDK based or Hyper-Converged Infratructure (HCI) Compute nodes
-
CephStorage
nodes
You will upgrade these nodes at a later stage.
Procedure
Source the
stackrc
file:$ source ~/stackrc
If you use monolithic Controller nodes, run the upgrade command against the
Controller
role:$ openstack overcloud upgrade run --nodes Controller
-
If you use a custom stack name, pass the name with the
--stack
option.
-
If you use a custom stack name, pass the name with the
If you use Controller services split across multiple roles:
Run the upgrade command for roles with Pacemaker services:
$ openstack overcloud upgrade run --nodes ControllerOpenStack $ openstack overcloud upgrade run --nodes Database $ openstack overcloud upgrade run --nodes Messaging $ openstack overcloud upgrade run --nodes Telemetry
-
If you use a custom stack name, pass the name with the
--stack
option.
-
If you use a custom stack name, pass the name with the
Run the upgrade command for the
Networker
role:$ openstack overcloud upgrade run --nodes Networker
-
If you use a custom stack name, pass the name with the
--stack
option.
-
If you use a custom stack name, pass the name with the
Run the upgrade command for any remaining custom roles, except for
Compute
orCephStorage
roles:$ openstack overcloud upgrade run --nodes ObjectStorage
-
If you use a custom stack name, pass the name with the
--stack
option.
-
If you use a custom stack name, pass the name with the
6.3. Upgrading all Compute nodes
- Important
- If you are using a hyperconverged deployment, see Section 6.5, “Upgrading hyperconverged nodes” for how to upgrade.
- If you are using a mixed hyperconverged deployment, see Section 6.6, “Upgrading mixed hyperconverged nodes” for how to upgrade.
This process upgrades all remaining Compute nodes to OpenStack Platform 13. The process involves running the openstack overcloud upgrade run
command and including the --nodes Compute
option to restrict operations to the Compute nodes only.
Procedure
Source the
stackrc
file:$ source ~/stackrc
Run the upgrade command:
$ openstack overcloud upgrade run --nodes Compute
-
If you are using a custom stack name, pass the name with the
--stack
option. -
If you are using custom Compute roles, ensure that you include the role names with the
--nodes
option.
-
If you are using a custom stack name, pass the name with the
- Wait until the Compute node upgrade completes.
6.4. Upgrading all Ceph Storage nodes
- Important
- If you are using a hyperconverged deployment, see Section 6.5, “Upgrading hyperconverged nodes” for how to upgrade.
- If you are using a mixed hyperconverged deployment, see Section 6.6, “Upgrading mixed hyperconverged nodes” for how to upgrade.
This process upgrades the Ceph Storage nodes. The process involves:
-
Running the
openstack overcloud upgrade run
command and including the--nodes CephStorage
option to restrict operations to the Ceph Storage nodes only. -
Running the
openstack overcloud ceph-upgrade run
command to perform an upgrade to a containerized Red Hat Ceph Storage 3 cluster.
Procedure
Source the
stackrc
file:$ source ~/stackrc
Run the upgrade command:
$ openstack overcloud upgrade run --nodes CephStorage
-
If using a custom stack name, pass the name with the
--stack
option.
-
If using a custom stack name, pass the name with the
- Wait until the node upgrade completes.
Run the Ceph Storage upgrade command. For example:
$ openstack overcloud ceph-upgrade run \ --templates \ -e /home/stack/templates/overcloud_images.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /home/stack/templates/ceph-customization.yaml \ -e <ENVIRONMENT FILE>
Include the following options relevant to your environment:
Custom configuration environment files (
-e
). For example:-
The environment file with your container image locations (
overcloud_images.yaml
). Note that the upgrade command might display a warning about using the--container-registry-file
. You can ignore this warning as this option is deprecated in favor of using-e
for the container image environment file. - The relevant environment files for your Ceph Storage nodes.
- Any additional environment files relevant to your environment.
-
The environment file with your container image locations (
-
If using a custom stack name, pass the name with the
--stack
option. -
If applicable, your custom roles (
roles_data
) file using--roles-file
. -
If applicable, your composable network (
network_data
) file using--networks-file
.
- Wait until the Ceph Storage node upgrade completes.
6.5. Upgrading hyperconverged nodes
If you are using only hyperconverged nodes from the ComputeHCI role, and are not using dedicated compute nodes or dedicated Ceph nodes, complete the following procedure to upgrade your nodes:
Procedure
Source the stackrc file:
$ source ~/stackrc
Run the upgrade command:
$ openstack overcloud upgrade run --roles ComputeHCI
If you are using a custom stack name, pass the name to the upgrade command with the
--stack
option.Run the Ceph Storage upgrade command. For example:
$ openstack overcloud ceph-upgrade run \ --templates \ -e /home/stack/templates/overcloud_images.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /home/stack/templates/ceph-customization.yaml \ -e <ENVIRONMENT FILE>
Include the following options relevant to your environment:
Custom configuration environment files (
-e
). For example:-
The environment file with your container image locations (
overcloud_images.yaml
). Note that the upgrade command might display a warning about using the--container-registry-file
. You can ignore this warning as this option is deprecated in favor of using-e
for the container image environment file. - The relevant environment files for your Ceph Storage nodes.
-
The environment file with your container image locations (
-
If using a custom stack name, pass the name with the
--stack
option. -
If applicable, your custom roles (
roles_data
) file using--roles-file
. -
If applicable, your composable network (
network_data
) file using--networks-file
.
- Wait until the Ceph Storage node upgrade completes.
6.6. Upgrading mixed hyperconverged nodes
If you are using dedicated compute nodes or dedicated ceph nodes in addition to hyperconverged nodes like the ComputeHCI role, complete the following procedure to upgrade your nodes:
Procedure
Source the stackrc file:
$ source ~/stackrc
Run the upgrade command for the Compute node:
$ openstack overcloud upgrade run --roles Compute If using a custom stack name, pass the name with the --stack option.
- Wait until the node upgrade completes.
Run the upgrade command for the ComputeHCI node:
$ openstack overcloud upgrade run --roles ComputeHCI If using a custom stack name, pass the name with the --stack option.
- Wait until the node upgrade completes.
Run the upgrade command for the Ceph Storage node:
$ openstack overcloud upgrade run --roles CephStorage
- Wait until the Ceph Storage node upgrade completes.
Run the Ceph Storage upgrade command. For example:
$ openstack overcloud ceph-upgrade run \ --templates \ -e /home/stack/templates/overcloud_images.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /home/stack/templates/ceph-customization.yaml \ -e <ENVIRONMENT FILE>
Include the following options relevant to your environment:
Custom configuration environment files (
-e
). For example:-
The environment file with your container image locations (
overcloud_images.yaml
). Note that the upgrade command might display a warning about using the--container-registry-file
. You can ignore this warning as this option is deprecated in favor of using-e
for the container image environment file. - The relevant environment files for your Ceph Storage nodes.
- Any additional environment files relevant to your environment.
-
The environment file with your container image locations (
-
If using a custom stack name, pass the name with the
--stack
option. -
If applicable, your custom roles (
roles_data
) file using--roles-file
. -
If applicable, your composable network (
network_data
) file using--networks-file
.
- Wait until the Ceph Storage node upgrade completes.
6.7. Finalizing the upgrade
The upgrade requires a final step to update the overcloud stack. This ensures the stack’s resource structure aligns with a regular deployment of OpenStack Platform 13 and allows you to perform standard openstack overcloud deploy
functions in the future.
Procedure
Source the
stackrc
file:$ source ~/stackrc
Run the upgrade finalization command:
$ openstack overcloud upgrade converge \ --templates \ -e <ENVIRONMENT FILE>
Include the following options relevant to your environment:
-
Custom configuration environment files (
-e
). -
If using a custom stack name, pass the name with the
--stack
option. -
If applicable, your custom roles (
roles_data
) file using--roles-file
. -
If applicable, your composable network (
network_data
) file using--networks-file
.
-
Custom configuration environment files (
- Wait until the upgrade finalization completes.