Peter Matulis c473a8f673 Refactor upgrade pages - part III
Rename some pages and change links accordingly.

Fix some already broken links.

Change-Id: Icbeadc7910a8050a80b33e68f318fb76c5b27f78
2020-12-15 21:30:48 -05:00

180 lines
5.8 KiB
ReStructuredText

=================
Upgrades overview
=================
The purpose of the Upgrades section is to show how to upgrade Charmed OpenStack
as a whole. This page provides a summary of the involved components and how
they relate to each other. The upgrade of each of the components are distinct
operations and are referred to as separate upgrade types. They are defined in
this way:
Charms upgrade
An upgrade of the charms that are used to deploy and manage Charmed
OpenStack. This includes charms that manage applications which are not
technically part of the OpenStack project such as Ceph, RabbitMQ, and Vault.
OpenStack upgrade
An upgrade of the software deployed by the OpenStack charms. Each application
is upgraded via its corresponding charm. This constitutes an upgrade from one
major OpenStack version to the next (e.g. Ussuri to Victoria).
Series upgrade
An upgrade of the Ubuntu operating system (e.g. Bionic to Focal) on the cloud
nodes. This includes containers.
.. important::
Once initiated, an upgrade type should be completed to its fullest extent
across the cloud. Operating a cloud consisting of partially upgraded
components is not tested nor supported.
Development notes
-----------------
This section includes charm development information that will better prepare
the administrator for the task of upgrading Charmed OpenStack.
* There is a single development branch for the OpenStack charms. Unless stated
otherwise, each new revision of a charm includes all the functionality of the
previous revision. This means that a charm that works for a recent
series:openstack combination will also work on an older combination. There is
also no need to switch to a different charm (or charm channel) in order to
upgrade to a new series and/or OpenStack version.
* It is possible for a charm to gain new functionality that is only supported
starting with a specific OpenStack version (e.g. gnocchi S3 support with
Stein).
* A charm may occasionally only support a maximum or minimum series (e.g.
percona-cluster ending with eoan and mysql-innodb-cluster starting with
focal). This is normally due to upstream limitations (e.g Percona XtraDB
Cluster no longer supported on Focal).
.. note::
A charm's limitations concerning OpenStack versions and application features
are stated in its README file.
Software release cycles
-----------------------
Each software component has a predictable release cycle.
.. list-table:: **Software release cycles**
:header-rows: 1
:widths: 14 12 50
* - Software
- Cycle (months)
- Schedule
* - OpenStack Charms
- 3
- https://docs.openstack.org/charm-guide/latest/release-schedule.html
* - OpenStack
- 6
- https://releases.openstack.org
* - Ubuntu
- 6
- https://wiki.ubuntu.com/Releases
Ubuntu LTS releases
~~~~~~~~~~~~~~~~~~~
One out of every four Ubuntu releases is an LTS release (i.e. 2 year cycle).
Charmed OpenStack must be LTS-based as OpenStack upgrades are dependent upon
the `Ubuntu Cloud Archive`_ (UCA), which only supports LTS releases.
The below graphic shows the release schedule of Ubuntu LTS releases and
upstream OpenStack versions. The Ubuntu project and the OpenStack project have
deliberately synchronised their respective release cycles.
.. figure:: ./media/ubuntu-openstack-release-cycle.png
:scale: 80%
:alt: Ubuntu OpenStack release cycle
.. role:: raw-html(raw)
:format: html
:raw-html:`<br />`
For example, a deployment can begin on Ubuntu 20.04 LTS (that supports
OpenStack Ussuri in its default package archive) and have the ability, over
time, to upgrade OpenStack through versions V, W, X, and Y.
.. note::
Charmed OpenStack on non-LTS Ubuntu releases is supported but should be
considered for testing purposes only.
Upgrade order
-------------
The order in which to upgrade the different software components is critical.
The generic upgrade order is:
#. charms (to latest stable revision)
#. OpenStack (to latest stable version on the current series)
#. series
#. OpenStack (to desired stable version on the new series)
An upgrade type can occur without the need for it to be followed by another
upgrade type. For instance, the charms can be upgraded without the necessity of
performing an OpenStack upgrade.
However the inverse is not true: in order to achieve an upgrade type there is a
requisite upgrade type that needs to be fulfilled. For instance, in order to
upgrade a series one needs to ensure that OpenStack has been upgraded to the
most recent available version on the current series.
.. note::
Irrespective of OpenStack or series upgrades, the charms should be upgraded
before making topological changes to the cloud, conducting charm application
migrations, or submitting bug reports.
Two example scenarios are provided next.
target: a specific Ubuntu release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Current state: OpenStack Train on Ubuntu 18.04 LTS
* Goal state: Ubuntu 20.04 LTS
Upgrade path:
#. Upgrade charms to latest stable revision
#. Upgrade OpenStack from Train to Ussuri
#. Upgrade series from bionic to focal
Final result: OpenStack Ussuri on Ubuntu 20.04 LTS
target: a specific OpenStack version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Current state: OpenStack Ussuri on Ubuntu 18.04 LTS
* Goal state: OpenStack Victoria
Upgrade path:
#. Upgrade charms to latest stable revision
#. Upgrade series from bionic to focal
#. Upgrade OpenStack from Ussuri to Victoria
Final result: OpenStack Victoria on Ubuntu 20.04 LTS
Next steps
----------
Each upgrade type is broken down into more detail on the following pages:
* :doc:`Charms upgrade <upgrade-charms>`
* :doc:`OpenStack upgrade <upgrade-openstack>`
* :doc:`Series upgrade <upgrade-series>`
.. LINKS
.. _Ubuntu Cloud Archive: https://wiki.ubuntu.com/OpenStack/CloudArchive
.. _Release schedule: https://docs.openstack.org/charm-guide/latest/release-schedule.html