Jump to: navigation, search

RpcMajorVersionUpdates

Revision as of 16:26, 17 March 2014 by Russellb (talk | contribs)

Upgrading Major Versions of RPC APIs in OpenStack

RPC APIs exposed between services in OpenStack components such as Nova are versioned. Generally changes much be backwards compatible and are accompanied by a minor version increase to reflect the change. We will occasionally make major version increases to allow us to drop code that provides backwards compatibility. This is done over a major release boundary. For example, support for a new API version is added just before the release of Icehouse and support for the old version is dropped once Juno development opens.

The details of these changes fall into two categories. In most cases, we do not allow a mixed version environment of services exposing an RPC interface. In Nova, the one case where we *do* allow a mixed version environment is with the compute service. We support doing rolling upgrades of the compute service. In that case, the update must be handled a bit differently than the rest.

Non-mixed version environments (most cases)

The update is made over 2 changes.

Change #1:

Change #2:

  • Merged once development opens up for the next major release.
  • Remove support for version N on the manager side.
  • Tag commit with "UpgradeImpact". Note that the deployment *must* have already been upgraded to include change #1.


Mixed version environments (nova-compute)