Incremental upgrades are major version to major version upgrades that leverage the upstream run-upgrade.sh script provided in each release of Openstack Ansible. They are used for releases for releases Newton and on. They allow a stairstep approach to upgrading the environment.
Supported incremental upgrades (must be running on Ubuntu 16.04):
- Newton to Pike (Ocata is skipped)
- Newton to Queens
- Queens to Rocky
Supported incremental upgrades (must be running on Ubuntu 18.04):
- Rocky to Stein
- Stein to Train
- Train to Ussuri
- Ussuri to Victoria
Supported incremental upgrades (must be running on Ubuntu 20.04):
- Victoria to Wallaby
N/A
- Verify that the deployment is healthy and at the latest version.
- Perform database housekeeping to prevent unnecessary migrations.
For large environments it make be worth prestaging the apt packages that will be downloaded for infra hosts and computes ahead of time to speed up the leapfrog deployment process. This will prevent issues of slamming the mirror servers and will hopefully decrease the time of the actual maintenance since the packages may already be staged in the apt cache. Since these are incremental, make sure to run the preload for each version you will be upgrading to. This will put the needed apt files in the cache.
cd /opt/rpc-upgrades/playbooks
openstack-ansible preload-apt-packages.yml -e target_release=pike
openstack-ansible preload-apt-packages.yml -e target_release=queens
openstack-ansible preload-apt-packages.yml -e target_release=rocky
openstack-ansible preload-apt-packages.yml -e target_release=stein
This will temporarily install the apt sources for the target_release and apt download packages for infra and compute hosts. It also removes any rpco and uca repos that are currently in place as the upgrade will install those again. This can be ran in production and will not install anything, only download so it can be ran outside of a maintenance.
The first step is to checkout the rpc-upgrades repo.
git clone https://github.com/rcbops/rpc-upgrades.git /opt/rpc-upgrades
The next step is to execute the incremental upgrade script and follow the prompts:
cd /opt/rpc-upgrades/incremental
./incremental-upgrade.sh <target release>
The target release will be the destination release you want to upgrade to.
In the event you would like to simulate an incremental upgrade, follow the instructions in the testing document. Using vagrant, it will set up an AIO deployment of the desired version which can then be leapfrog upgraded. This allows you to test the scenario in the lab or development environment before actually running the upgrade on a production deployment.