Chapter 1. Preparing for a minor update Keep your Red Hat OpenStack Platform (RHOSP) 17.0 environment updated with the latest packages and containers. Use the upgrade path for the following versions: Old RHOSP Version New RHOSP Version Red Hat OpenStack Platform 17.0.z Red Hat OpenStack Platform 17.0 latest Minor update workflow A minor update of your RHOSP environment involves updating the RPM packages and containers on the undercloud and overcloud host, and the service configuration, if needed. The data plane and control plane are fully available during the minor update. You must complete each of the following steps to update your RHOSP environment: Update step Description Undercloud update Director packages are updated, containers are replaced, and the undercloud is rebooted. Optional ovn-controller update All ovn-controller containers are updated in parallel on all Compute and Controller hosts. Overcloud update of Controller nodes and composable nodes that contain Pacemaker services Nodes are removed from the Pacemaker cluster. Then, the RPMs on the host, the container configuration data, and all the containers are updated. The host is re-added to the Pacemaker cluster. Overcloud update of Compute nodes Multiple nodes are updated in parallel. The default value for running nodes in parallel is 25. Overcloud update of Ceph nodes Ceph nodes are updated one node at a time. Ceph cluster update Ceph services are updated by using cephadm . The update occurs per daemon, beginning with CephMgr , CephMon , CephOSD , and then additional daemons. Note If you have a multistack infrastructure, update each overcloud stack completely, one at a time. If you have a distributed compute node (DCN) infrastructure, update the overcloud at the central location completely, and then update the overcloud at each edge site, one at a time. Additionally, an administrator can perform the following operations during a minor update: Migrate your virtual machine Create a virtual machine network Run additional cloud operations The following operations are not supported during a minor update: Replacing a Controller node Scaling in or scaling out any role Considerations before you update your RHOSP environment To help guide you during the update process, consider the following information: Red Hat recommends backing up the undercloud and overcloud control planes. For more information about backing up nodes, see Backing up and restoring the undercloud and control plane nodes . Familiarize yourself with the known issues that might block an update. Familiarize yourself with the possible update and upgrade paths before you begin your update. For more information, see Section 1.1, "Upgrade paths for long life releases" . To identify your current maintenance release, run USD cat /etc/rhosp-release . You can also run this command after updating your environment to validate the update. Known issues that might block an update There are currently no known issues. Procedure To prepare your RHOSP environment for the minor update, complete the following procedures: Section 1.2, "Locking the environment to a Red Hat Enterprise Linux release" Section 1.3, "Checking Red Hat Openstack Platform repositories" Section 1.4, "Updating the container image preparation file" Section 1.5, "Updating the SSL/TLS configuration" Section 1.6, "Disabling fencing in the overcloud" 1.1. Upgrade paths for long life releases Familiarize yourself with the possible update and upgrade paths before you begin an update. Note You can view your current RHOSP and RHEL versions in the /etc/rhosp-release and /etc/redhat-release files. Table 1.1. Updates version path Current version Target version RHOSP 10.0.x on RHEL 7.x RHOSP 10.0 latest on RHEL 7.7 latest RHOSP 13.0.x on RHEL 7.x RHOSP 13.0 latest on RHEL 7.9 latest RHOSP 16.1.x on RHEL 8.2 RHOSP 16.1 latest on RHEL 8.2 latest RHOSP 16.1.x on RHEL 8.2 RHOSP 16.2 latest on RHEL 8.4 latest RHOSP 16.2.x on RHEL 8.4 RHOSP 16.2 latest on RHEL 8.4 latest RHOSP 17.0.x on RHEL 9.0 RHOSP 17.0 latest on RHEL 9.0 latest Table 1.2. Upgrades version path Current version Target version RHOSP 10 on RHEL 7.7 RHOSP 13 latest on RHEL 7.9 latest RHOSP 13 on RHEL 7.9 RHOSP 16.1 latest on RHEL 8.2 latest RHOSP 13 on RHEL 7.9 RHOSP 16.2 latest on RHEL 8.4 latest RHOSP 16 on RHEL 8.4 RHOSP 17.1 latest on RHEL 9.0 latest Note In RHOSP 17.0, upgrades from versions are not supported. Upgrades will be supported in RHOSP 17.1. For more information about upgrading to versions earlier than 17.0, see the following guides: * Framework for Upgrades (13 to 16.2) * Framework for Upgrades (13 to 16.1) * Fast Forward Upgrades 13 1.2. Locking the environment to a Red Hat Enterprise Linux release Red Hat OpenStack Platform (RHOSP) 17.0 is supported on Red Hat Enterprise Linux (RHEL) 9.0. Before you perform the update, lock the undercloud and overcloud repositories to the RHEL 9.0 release to avoid upgrading the operating system to a newer minor release. Procedure Log in to the undercloud host as the stack user. Source the stackrc undercloud credentials file: Edit your overcloud subscription management environment file, which is the file that contains the RhsmVars parameter. The default name for this file is usually rhsm.yml . Check if your subscription management configuration includes the rhsm_release parameter. If the rhsm_release parameter is not present, add it and set it to 9.0: Save the overcloud subscription management environment file. Create a playbook that contains a task to lock the operating system version to RHEL 9.0 on all nodes: Run the set_release.yaml playbook: USD ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/set_release.yaml --limit undercloud,Controller,Compute Replace <stack> with the name of your stack. Use the --limit option to apply the content to all RHOSP nodes. Do not run this playbook against Ceph Storage nodes because you might have a different subscription for these nodes. Note To manually lock a node to a version, log in to the node and run the subscription-manager release command: 1.3. Checking Red Hat Openstack Platform repositories Ensure that your repositories are using Red Hat OpenStack Platform (RHOSP) 17.0 packages. Procedure Log in to the undercloud host as the stack user. Source the stackrc undercloud credentials file: Edit your overcloud subscription management environment file, which is the file that contains the RhsmVars parameter. The default name for this file is usually rhsm.yml . Check the rhsm_repos parameter in your subscription management configuration to ensure that the rhsm_repos parameter is using RHOSP 17.0 repositories: parameter_defaults: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-eus-rpms - rhel-9-for-x86_64-appstream-eus-rpms - rhel-9-for-x86_64-highavailability-eus-rpms - openstack-17.0-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms Save the overcloud subscription management environment file. 1.4. Updating the container image preparation file The container preparation file is the file that contains the ContainerImagePrepare parameter. You use this file to define the rules for obtaining container images for the undercloud and overcloud. Before you update your environment, check the file to ensure that you obtain the correct image versions. Procedure Edit the container preparation file. The default name for this file is usually containers-prepare-parameter.yaml . Ensure that the tag parameter is set to 17.0 for each rule set: parameter_defaults: ContainerImagePrepare: - push_destination: true set: ... tag: '17.0' tag_from_label: '{version}-{release}' Note If you do not want to use a specific tag for the update, such as 17.0 or 17.0.1 , remove the tag key-value pair and specify tag_from_label only. This uses the installed Red Hat OpenStack Platform version to determine the value for the tag to use as part of the update process. Save this file. 1.5. Updating the SSL/TLS configuration Remove the NodeTLSData resource from the resource_registry to update your SSL/TLS configuration. Procedure Log in to the undercloud host as the stack user. Source the stackrc undercloud credentials file: Edit your custom overcloud SSL/TLS public endpoint file, which is usually named ~/templates/enable-tls.yaml . Remove the NodeTLSData resource from the resource_registry : resource_registry: OS::TripleO::NodeTLSData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/tls-cert-inject.yaml ... The overcloud deployment uses a new service in HAProxy to determine if SSL/TLS is enabled. Note If this is the only resource in the resource_registry section of the enable-tls.yaml file, remove the complete resource_registry section. Save the SSL/TLS public endpoint file. 1.6. Disabling fencing in the overcloud Before you update the overcloud, ensure that fencing is disabled. If fencing is deployed in your environment during the Controller nodes update process, the overcloud might detect certain nodes as disabled and attempt fencing operations, which can cause unintended results. If you have enabled fencing in the overcloud, you must temporarily disable fencing for the duration of the update. Procedure Log in to the undercloud host as the stack user. Source the stackrc undercloud credentials file: Log in to a Controller node and run the Pacemaker command to disable fencing: USD ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=false" Replace <controller_ip> with the IP address of a Controller node. You can find the IP addresses of your Controller nodes with the metalsmith list command. In the fencing.yaml environment file, set the EnableFencing parameter to false to ensure that fencing stays disabled during the update process. Additional Resources Fencing Controller nodes with STONITH

Commands:
source ~/stackrc
parameter_defaults: RhsmVars: ... rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd" rhsm_method: "portal" rhsm_release: "9.0"
cat > ~/set_release.yaml <<'EOF' - hosts: all gather_facts: false tasks: - name: set release to 9.0 environment: SMDEV_CONTAINER_OFF: True command: subscription-manager release --set=9.0 become: true EOF
ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/set_release.yaml --limit undercloud,Controller,Compute
sudo SMDEV_CONTAINER_OFF=True subscription-manager release --set=9.0
source ~/stackrc
parameter_defaults: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-eus-rpms - rhel-9-for-x86_64-appstream-eus-rpms - rhel-9-for-x86_64-highavailability-eus-rpms - openstack-17.0-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms
parameter_defaults: ContainerImagePrepare: - push_destination: true set: tag: '17.0' tag_from_label: '{version}-{release}'
source ~/stackrc
resource_registry: OS::TripleO::NodeTLSData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/tls-cert-inject.yaml
source ~/stackrc
ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=false"