We use python3-tripleoclient in the latest releases. Our update doc should direct users to update the correct package before running openstack undercloud upgrade. This change also replaced yum with dnf in the update doc. Change-Id: Ic78cb31bf9bbaa3abd3a30672ec2da8cf176b6da
5.3 KiB
Updating Undercloud Components
Note
Instack-undercloud is deprecated as of the Rocky cycle. Instack
undercloud can only be upgraded to a containerized undercloud. See ../../deployment/undercloud
for backward compatibility related information.
Note
When updating the existing containerized undercloud installation,
keep in mind the special cases described in notes-for-stack-updates
.
Before upgrading the undercloud, it is highly suggested to perform a
backup <../backup_and_restore/01_undercloud_backup>
of the undercloud and validate that a restore works fine.Remove all Delorean repositories:
Note
You may wish to backup your current repos before disabling them
mkdir -p /home/stack/REPOBACKUP sudo mv /etc/yum.repos.d/delorean* /home/stack/REPOBACKUP
sudo rm /etc/yum.repos.d/delorean*
Enable new Delorean repositories:
Clean the yum cache to ensure only the new repos are used
sudo dnf clean all sudo rm -rf /var/cache/yum
Update required package:
Validations
It is strongly recommended that you validate the state of your undercloud before starting any upgrade operations. The tripleo-validations repo has some 'pre-upgrade' validations that you can execute by following the instructions at validations to execute the "pre-upgrade" group
openstack tripleo validator run --group pre-upgrade
Newton to Ocata
The following commands need to be run before the undercloud upgrade:
sudo systemctl stop openstack-* sudo systemctl stop neutron-* sudo systemctl stop openvswitch sudo systemctl stop httpd sudo yum update instack-undercloud openstack-puppet-modules openstack-tripleo-common
Ocata to Pike
Ceph
Prior to Pike, TripleO deployed Ceph with puppet-ceph. With the Pike release it is possible to use TripleO to deploy Ceph with either ceph-ansible or puppet-ceph, though puppet-ceph is deprecated. To use ceph-ansible, the CentOS Storage SIG Ceph repository must be enabled on the undercloud and the ceph-ansible package must then be installed:
sudo yum install --enablerepo=extras centos-release-ceph-jewel sudo yum install ceph-ansible
Ceph clusters deployed with Ocata via puppet-ceph will be migrated so that all of the existing Ceph services are run inside of containers. This migration will be managed not by puppet-ceph, but by ceph-ansible, which TripleO will use to control updates to the same ceph cluster after the Ocata to Pike upgrade.
Update TripleO CLI and dependencies
sudo dnf update python3-tripleoclient* openstack-tripleo-common openstack-tripleo-heat-templates
As part of the undercloud install, an image registry is configured on port 8787. This is used to increase reliability of overcloud image pulls, and minimise overall network transfers. First it is highly suggested to perform a backup of the initial containers-prepare-parameter.yaml file. Then update the new containers-prepare-parameter.yaml file with the same modifications made in the initial one:
openstack tripleo container image prepare default \ --local-push-destination \ --output-env-file ~/containers-prepare-parameter.yaml
Note
This command is available since Rocky.
Run the undercloud upgrade command. This command will upgrade all packages and use puppet to apply new configuration and restart all OpenStack services
openstack undercloud upgrade
Note
The undercloud is containerized by default as of Rocky. Therefore, an undercloud deployed on Queens (non-containerized) will be upgraded to a containerized undercloud on Rocky, by default. To upgrade with instack undercloud in Rocky, you'll need to upgrade with
--use-heat=False
option. Note this isn't tested and not supported.Note
In order to obtain the ansible command used for the installation of the Undercloud in the artifacts directory, it is necessary to pass the option
--reproduce-command
in the Undercloud upgrade command.Note
It's possible to enable verbose logging with
--verbose
option. To cleanup an undercloud after its upgrade, you'll need to set upgrade_cleanup to True in undercloud.conf. It'll remove the rpms that were deployed by instack-undercloud, after the upgrade to a containerized undercloud.Note
If you added custom OVS ports to the undercloud (e.g. in a virtual testing environment) you may need to re-add them at this point.